AWS IoT
開発者ガイド

CloudWatch Logs によるモニタリング

AWS IoT は、各メッセージがメッセージブローカーとルールエンジンを経由してデバイスから渡されるときに、各メッセージに関する進行状況イベントを送信します。これらのログを表示するには、AWS IoT で使用されるログを生成するように CloudWatch を構成する必要があります。

CloudWatch Logs の詳細については、「CloudWatch Logs」を参照してください。サポートされている AWS IoT CloudWatch Logs については、「CloudWatch のログエントリ形式」を参照してください。

AWS IoT ログ記録を有効にするには、IAM ロールを作成し、AWS IoT でロールを登録してから、AWS IoT ログ記録を構成する必要があります。

注記

AWS IoT ログ記録を有効にする前に、CloudWatch Logs アクセス権限を理解しておく必要があります。CloudWatch Logs に対するアクセス権限のあるユーザーはデバイスからのデバッグ情報を表示できます。詳細については、「Amazon CloudWatch Logs に対する認証とアクセスコントロール」を参照してください。

ログ記録ロールを作成する

IAM コンソールを使用して、ログ記録用のロールを作成します。

  1. ナビゲーションペインから [ロール] を選択し、[ロールの作成] を選択します。

  2. [このロールを使用するサービスを選択] の下で、[AWS サービス] を選択します。

  3. [ユースケースの選択] で、[IoT]、[次のステップ: アクセス権限] の順に選択します。

  4. サービスロールに自動的にアタッチされるポリシーを表示するページで、[次のステップ: タグ] を選択します。

  5. [Next: Review] を選択します。

  6. ロールの名前と説明を入力し、[Create role (ロールの作成)] を選択します。

ログ記録ロールのポリシー

以下のポリシードキュメントには、AWS IoT がお客様に代わって CloudWatch にログを送信できるようにするロールポリシーと信頼ポリシーが用意されています。

注記

これらのドキュメントは、ログ記録ロールを作成したときに作成されたものです。

ロールポリシー:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy" ], "Resource": [ "*" ] } ] }

信頼ポリシー:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

ログレベル

ログレベルでは、生成されるログのタイプを指定します。

ERROR

オペレーションの失敗につながるすべてのエラー。

ログには ERROR 情報のみが含まれます。

WARN

オペレーションの失敗につながるわけではないが、システムの不整合を引き起こす可能性のあるすべての要因。

ログには ERROR および WARN 情報が含まれます。

INFO

モノのフローに関する概要。

ログには INFO、ERROR および WARN 情報が含まれます。

DEBUG

問題のデバッグに役立つ場合のある情報。

ログには DEBUG、INFO、ERROR、WARN 情報が含まれます。

DISABLED

すべてのロギングが無効です。

AWS IoT ロギングの構成

AWS IoT コンソール、set-v2-logging-options CLI コマンド、または SetV2LoggingOptions API を使用して、ログを有効化できます。API コールを行うために使用されるプリンシパルには、ロギングロールのための ロールのアクセス権限の適用 が必要です。ロギングのロールは set-v2-logging-options または SetV2LoggingOptionsroleARN パラメータとして渡されます。

グローバルログ記録にまたは詳細ログ記録に設定することができます。グローバルログ記録は、どのリソースがログをトリガーしても、すべてのログのログレベルを 1 つ設定します。詳細ログ記録では、特定のリソースまたはリソースのセットでログレベルを設定することができます。現在は、モノのグループのみサポートされます。グローバルログ記録を有効にするには、AWS IoT コンソール、 CLI、または API を使用できます。詳細ログ記録を有効にするには、CLI または API を使用する必要があります。

グローバルログ記録

set-v2-logging-options CLI コマンドを使用して、アカウントのログ記録オプションを設定します。set-v2-logging-options は 3 つの引数を取ります。

--role-arn

ログ記録ロールの ARN。ログ記録ロールは、CloudWatch Logs でログに書き込むアクセス許可を AWS IoT に付与します。

--default-log-level

使用するログレベル。有効な値は、ERROR、WARN、INFO、DEBUG、または DISABLED

--disable-all-logs | --no-disable-all-logs

true (--disable-all-logs) に設定すると、すべてのログが無効になります。デフォルト (パラメータを使用しない) は false です。

次に例を示します。

aws iot set-v2-logging-options \ --role-arn arn:aws:iam::<your-aws-account-num>:role/<IoTLoggingRole> \ --default-log-level <INFO>

get-v2-logging-options CLI コマンドを使用して、アカウントの現在のログ記録オプションを設定できます。

注記

AWS IoT は、アカウントのグローバルログ記録を設定および取得する古いコマンド (set-logging-options および get-logging-options) を引き続きサポートします。これらのコマンドを使用すると、作成されるログには JSON ペイロードではなくプレーンテキストが含まれ、一般的にログ記録のレイテンシーが高くなることに注意してください。これらの古いコマンドの実装は今後強化されません。「v2」バージョンを使用してログ記録オプションを設定し、可能な場合は、古いバージョンを使用するレガシーアプリケーションを変更することをお勧めします。

AWS IoT コンソールを使用してグローバルログ記録を設定するには

  1. AWS IoT コンソールにサインインします。詳細については、「AWS IoT コンソールにサインインする」を参照してください。

  2. 左のナビゲーションペインの [設定] を選択します。

  3. [設定] ページの [ログ] セクションで、[編集] を選択します。[ログ] セクションには、ロールと詳細レベルの設定が表示されます。

  4. [Configure role (設定の構成)] ページで、CloudWatch ログに表示する詳細レベルを表す詳細レベルを選択します。

  5. [Select (選択)] を選択し、前に作成したロールを指定するか、 [Create Role (ロールの作成)] を選択してロギングに使用するロールを作成します。

  6. [更新] を選択して変更を保存します。

    CloudWatch ログを確認して、収集した情報のレベルに満足できるかどうかを確認してください。満足できない場合は、後でログレベルをいつでも変更できます。

きめ細かいログ記録

きめ細かなログ記録では、ターゲットのログ記録レベルを指定できます。ターゲットはリソースタイプとリソース名で定義されます。現在、AWS IoT はターゲットとしてグループをサポートしています。きめ細かなログ記録では、特定のモノのグループのログ記録レベルを指定できます。たとえば、いろいろな種類の電話を表すモノを含む「Phones」というグループがあるとします。次に、「MobilePhones」という別のグループを作成し、それを「Phones」のグループの子にします。きめ細かなログ記録では、「Phones」グループ (および任意の子グループ) 内のすべてのモノに対して 1 つのログ記録レベルを設定し、「MobilePhones」グループ内のモノに別のログ記録レベルを設定できます。この例では、「携帯電話」グループのログ記録レベルと「携帯電話」のグループのログ記録レベルの 2 つの異なるログ記録レベルを「MobilePhones」グループに割り当てましたが、子のモノのグループに指定されたログ記録レベルは、親のモノのグループに指定されたログ記録レベルを上書きします。——

詳細なロギングを有効にしてデフォルトのログレベルを設定するには、set-v2-logging-options CLI コマンドを使用します。コマンドは次のオプションの引数をとります。

--role-arn

IAM から AWS IoT へのアクセスを許可する CloudWatch Logs ロール。指定しない場合、AWS IoT はアカウントに関連付けられたログ記録用のロールを使用します。ログ記録用のロールは、作成時にアカウントに関連付けられます。詳細については、「ログ記録ロールを作成する」を参照してください。

--default-log-level

指定されていない場合に使用されるログレベル。有効な値は、DEBUGINFOERRORWARNDISABLED です。

--disable-all-logs | --no-disable-all-logs

true (--disable-all-logs) に設定すると、すべてのログが無効になります。デフォルト (パラメータを使用しない) は false です。

get-v2-logging-options CLI コマンドは、設定済みの IAM ログ記録用のロール、デフォルトのロギングレベル、および disableAllLogs の値を返します。

ターゲットのログ記録を細かく設定するには、set-v2-logging-level CLI コマンドを使用します。コマンドは次のオプションの引数をとります。

--log-target

ログ記録を設定するエンティティのリソースタイプ (フィールド targetType) と名前 (フィールド targetName) を含む JSON オブジェクト。AWS IoT は現在、リソースタイプの THING_GROUP をサポートしています。最大 10 個のログ記録ターゲットを設定できます。

--log-level

指定されたリソースのログを生成する際に使用されるログ記録レベル。有効な値: DEBUGINFOERRORWARNDISABLED

現在設定されているきめ細かなログ記録レベルのリストを取得するには、list-v2-logging-levels CLI コマンドを使用します。ログ記録レベルを削除するには、delete-v2-logging-level CLI コマンドを呼び出します。きめ細かなログ記録レベルを削除するには、delete-v2-logging-level CLI コマンドを使用します。

CloudWatch のログエントリ形式

AWS IoT の各コンポーネントは、独自のログを生成します。各ログエントリには、どのオペレーションによってログが生成されたかを示す eventType があります。このセクションでは、次の AWS IoT コンポーネントによって生成されるログについて説明します。

すべて CloudWatch Logs には次の共通属性があります。

timestamp

AWS IoT メッセージブローカーに接続した時刻のクライアントの UNIX タイムスタンプ。

logLevel

使用されているログレベル。詳細については、「ログレベル」を参照してください。

traceId

特定のリクエストのすべてのログを関連付けるために使用できる、ランダムに生成された識別子。

accountId

AWS アカウント ID。

status

リクエストのステータス。

eventType

ログが生成されたイベントタイプ。各イベントのイベントタイプの値は、次のセクションにリストされています。

メッセージブローカーログ

AWS IoT メッセージブローカーは、次のイベントログを生成します。

Connect Logmore info (1)
Connect Log

AWS IoT メッセージブローカーは、MQTT クライアントが接続するときに Connect ログを生成します。

more info (1)

次に例を示します。

{ "timestamp": "2017-08-10 15:37:23.476", "logLevel": "INFO", "traceId": "20b23f3f-d7f1-feae-169f-82263394fbdb", "accountId": "123456789012", "status": "Success", "eventType": "Connect", "protocol": "MQTT", "clientId": "abf27092886e49a8a5c1922749736453", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "sourceIp": "205.251.233.181", "sourcePort": 13490 }

すべての CloudWatch Logs に共通の属性に加えて、Connect ログ項目には次の属性が含まれています。

eventType

接続ログの Connect

プロトコル

リクエストを行うときに使用されるプロトコル。有効な値は MQTT または HTTP です。

clientId

リクエストを実行するクライアントの ID。

principalId

リクエストを実行するプリンシパルの ID。

sourceIp

リクエストが発生した IP アドレス。

sourcePort

リクエストが発生したポート。

Subscribe Logmore info (2)
Subscribe Log

AWS IoT メッセージブローカーは、MQTT クライアントがトピックにサブスクライブするときに Subscribe ログを生成します。

more info (2)

次に例を示します。

{ "timestamp": "2017-08-10 15:39:04.413", "logLevel": "INFO", "traceId": "7aa5c38d-1b49-3753-15dc-513ce4ab9fa6", "accountId": "123456789012", "status": "Success", "eventType": "Subscribe", "protocol": "MQTT", "topicName": "$aws/things/MyThing/shadow/#", "clientId": "abf27092886e49a8a5c1922749736453", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "sourceIp": "205.251.233.181", "sourcePort": 13490 }

すべての CloudWatch Logs に共通の属性に加えて、Subscribe ログ項目には次の属性が含まれています。

eventType

サブスクリプションログの Subscribe

プロトコル

リクエストを行うときに使用されるプロトコル。有効な値は MQTT または HTTP です。

topicName

サブスクライブされたトピックの名前。

clientId

リクエストを実行するクライアントの ID。

principalId

リクエストを実行するプリンシパルの ID。

sourceIp

リクエストが発生した IP アドレス。

sourcePort

リクエストが発生したポート。

Publish-In Logmore info (3)
Publish-In Log

AWS IoT メッセージブローカーが MQTT メッセージを受信すると、Publish-In ログを生成します。

more info (3)

次に例を示します。

{ "timestamp": "2017-08-10 15:39:30.961", "logLevel": "INFO", "traceId": "672ec480-31ce-fd8b-b5fb-22e3ac420699", "accountId": "123456789012", "status": "Success", "eventType": "Publish-In", "protocol": "MQTT", "topicName": "$aws/things/MyThing/shadow/get", "clientId": "abf27092886e49a8a5c1922749736453", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "sourceIp": "205.251.233.181", "sourcePort": 13490 }

すべての CloudWatch Logs に共通の属性に加えて、Publish-In ログ項目には次の属性が含まれています。

eventType

メッセージブローカーがメッセージを受け取ったときの Publish-In

status

リクエストのステータス。

プロトコル

リクエストを行うときに使用されるプロトコル。有効な値は MQTT または HTTP です。

topicName

サブスクライブされたトピックの名前。

clientId

リクエストを実行するクライアントの ID。

principalId

リクエストを実行するプリンシパルの ID。

sourceIp

リクエストが発生した IP アドレス。

sourcePort

リクエストが発生したポート。

Publish-Out Logmore info (4)
Publish-Out Log

メッセージブローカーが MQTT メッセージを発行すると、Publish-Out ログを生成します。

more info (4)

次に例を示します。

{ "timestamp": "2017-08-10 15:39:30.961", "logLevel": "INFO", "traceId": "672ec480-31ce-fd8b-b5fb-22e3ac420699", "accountId": "123456789012", "status": "Success", "eventType": "Publish-Out", "protocol": "MQTT", "topicName": "$aws/things/MyThing/shadow/get", "clientId": "abf27092886e49a8a5c1922749736453", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "sourceIp": "205.251.233.181", "sourcePort": 13490 }

すべての CloudWatch Logs に共通の属性に加えて、Publish-Out ログ項目には次の属性が含まれています。

eventType

メッセージブローカーがメッセージを公開したときの Publish-Out

status

リクエストのステータス。

プロトコル

リクエストを行うときに使用されるプロトコル。有効な値は MQTT または HTTP です。

topicName

サブスクライブされたトピックの名前。

clientId

リクエストを実行するクライアントの ID。

principalId

リクエストを実行するプリンシパルの ID。

sourceIp

リクエストが発生した IP アドレス。

sourcePort

リクエストが発生したポート。

Disconnect Logmore info (5)
Disconnect Log

AWS IoT メッセージブローカーは、MQTT クライアントがログを切断すると Disconnect ログを生成します。

more info (5)

次に例を示します。

{ "timestamp": "2017-08-10 15:37:23.476", "logLevel": "INFO", "traceId": "20b23f3f-d7f1-feae-169f-82263394fbdb", "accountId": "123456789012", "status": "Success", "eventType": "Disconnect", "protocol": "MQTT", "clientId": "abf27092886e49a8a5c1922749736453", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "sourceIp": "205.251.233.181", "sourcePort": 13490 }

すべての CloudWatch Logs に共通の属性に加えて、Disconnect ログ項目には次の属性が含まれています。

eventType

接続ログの Disconnect

プロトコル

リクエストを行うときに使用されるプロトコル。有効な値は MQTT または HTTP です。

clientId

リクエストを実行するクライアントの ID。

principalId

リクエストを実行するプリンシパルの ID。

sourceIp

リクエストが発生した IP アドレス。

sourcePort

リクエストが発生したポート。

Device Shadow のログ

AWS IoT Device Shadow サービスは、以下のイベントのログを生成します。

GetThingShadow Logsmore info (6)
GetThingShadow Logs

Device Shadow サービスは、シャドウの取得リクエストが受け取られると、GetThingShadow ログを生成します。

more info (6)

次に例を示します。

{ "timestamp": "2017-08-09 17:56:30.941", "logLevel": "INFO", "traceId": "b575f19a-97a2-cf72-0ed0-c64a783a2504", "accountId": "123456789012", "status": "Success", "eventType": "GetThingShadow", "protocol": "MQTT", "deviceShadowName": "MyThing", "topicName": "$aws/things/MyThing/shadow/get" }

すべての CloudWatch Logs に共通の属性に加えて、GetThingShadow ログ項目には次の属性が含まれています。

eventType

GetThingShadow ログの GetThingShadow

プロトコル

リクエストを行うときに使用されるプロトコル。有効な値は MQTT または HTTP です。

deviceShadowName

リクエストした Shadow の名前。

topicName

公開されたリクエストのトピックの名前。

UpdateThingShadow Logsmore info (7)
UpdateThingShadow Logs

Device Shadow サービスは、デバイスのシャドウの更新リクエストが受け取られると、UpdateThingShadow ログを生成します。

more info (7)

次に例を示します。

{ "timestamp": "2017-08-07 18:43:59.436", "logLevel": "INFO", "traceId": "d0074ba8-0c4b-a400-69df-76326d414c28", "accountId": "123456789012", "status": "Success", "eventType": "UpdateThingShadow", "protocol": "MQTT", "deviceShadowName": "Jack", "topicName": "$aws/things/Jack/shadow/update" }

すべての CloudWatch Logs に共通の属性に加えて、UpdateThingShadow ログ項目には次の属性が含まれています。

eventType

シャドウログ更新のための UpdateThingShadow

プロトコル

リクエストを行うときに使用されるプロトコル。有効な値は MQTT または HTTP です。

deviceShadowName

更新する Shadow の名前。

topicName

公開されたリクエストのトピックの名前。

DeleteThingShadow Logsmore info (8)
DeleteThingShadow Logs

Device Shadow サービスは、デバイスのシャドウの削除リクエストが受け取られると、DeleteThingShadow ログを生成します。

more info (8)

次に例を示します。

{ "timestamp": "2017-08-07 18:47:56.664", "logLevel": "INFO", "traceId": "1a60d02e-15b9-605b-7096-a9f584a6ad3f", "accountId": "123456789012", "status": "Success", "eventType": "DeleteThingShadow", "protocol": "MQTT", "deviceShadowName": "Jack", "topicName": "$aws/things/Jack/shadow/delete" }

すべての CloudWatch Logs に共通の属性に加えて、DeleteThingShadow ログ項目には次の属性が含まれています。

eventType

DeleteThingShadow ログの DeleteThingShadow

プロトコル

リクエストを行うときに使用されるプロトコル。有効な値は MQTT または HTTP です。

deviceShadowName

更新する Shadow の名前。

topicName

公開されたリクエストのトピックの名前。

Rules Engine ログ

AWS IoT Rules Engine サービスは、以下のイベントのログを生成します。

Rule Match Logsmore info (9)
Rule Match Logs

AWS IoT ルールエンジンは、ルールブローカーがルールに一致するメッセージを受信すると、RuleMatch ログを生成します。

more info (9)

次に例を示します。

{ "timestamp": "2017-08-10 16:32:46.002", "logLevel": "INFO", "traceId": "30aa7ccc-1d23-0b97-aa7b-76196d83537e", "accountId": "123456789012", "status": "Success", "eventType": "RuleMatch", "clientId": "abf27092886e49a8a5c1922749736453", "topicName": "rules/test", "ruleName": "JSONLogsRule", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167" }

すべての CloudWatch Logs に共通の属性に加えて、RuleMatch ログ項目には次の属性が含まれています。

eventType

ルール一致ログの RuleMatch

clientId

リクエストを実行するクライアントの ID。

topicName

サブスクライブされたトピックの名前。

ruleName

一致ルールの名前。

principalId

リクエストを実行するプリンシパルの ID。

Function Execution Logsmore info (10)
Function Execution Logs

ルールエンジンは、ルールの SQL クエリが外部関数を呼び出すと、FunctionExecution ログを生成します。ルールのアクションが AWS IoT または別の Web サービス (たとえば、get_thing_shadow または machinelearning_predict の呼び出し) に対して HTTP リクエストを行うと、外部関数が呼び出されます。

more info (10)

FunctionExecution ログは次のようになります。

{ "timestamp": "2017-07-13 18:33:51.903", "logLevel": "DEBUG", "traceId": "180532b7-0cc7-057b-687a-5ca1824838f5", "status": "Success", "eventType": "FunctionExecution", "clientId": "N/A", "topicName":"rules/test", "ruleName": "ruleTestPredict", "ruleAction": "MachinelearningPredict", "resources": { "ModelId": "predict-model" }, "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167" }

すべての CloudWatch Logs に共通の属性に加えて、FunctionExecution ログ項目には次の属性が含まれています。

eventType

ルール一致ログの FunctionExecution

clientId

N/A ログの FunctionExecution

topicName

サブスクライブされたトピックの名前。

ruleName

一致ルールの名前。

リソース

ルールのアクションによって使用されるリソースの集合。

principalId

リクエストを実行するプリンシパルの ID。

Starting Execution Logsmore info (11)
Starting Execution Logs

AWS IoT ルールエンジンがルールのアクションをトリガーし始めたときに StartingExecution ログを生成します。

more info (11)

次に例を示します。

{ "timestamp": "2017-08-10 16:32:46.002", "logLevel": "DEBUG", "traceId": "30aa7ccc-1d23-0b97-aa7b-76196d83537e", "accountId": "123456789012", "status": "Success", "eventType": "StartingRuleExecution", "clientId": "abf27092886e49a8a5c1922749736453", "topicName": "rules/test", "ruleName": "JSONLogsRule", "ruleAction": "RepublishAction", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167" }

すべての CloudWatch Logs に共通の属性に加えて、StartingExecution ログ項目には次の属性が含まれています。

eventType

ルール実行ログ開始の StartingRuleExecution

clientId

リクエストを実行するクライアントの ID。

topicName

サブスクライブされたトピックの名前。

ruleName

一致ルールの名前。

ruleAction

トリガーされるアクションの名前。

principalId

リクエストを実行するプリンシパルの ID。

Rule Execution Logsmore info (12)
Rule Execution Logs

AWS IoT ルールエンジンがルールのアクションをトリガーし始めたときに RuleExecution ログを生成します。

more info (12)

次に例を示します。

{ "timestamp": "2017-08-10 16:32:46.070", "logLevel": "INFO", "traceId": "30aa7ccc-1d23-0b97-aa7b-76196d83537e", "accountId": "123456789012", "status": "Success", "eventType": "RuleExecution", "clientId": "abf27092886e49a8a5c1922749736453", "topicName": "rules/test", "ruleName": "JSONLogsRule", "ruleAction": "RepublishAction", "resources": { "RepublishTopic": "rules/republish" }, "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167" }

すべての CloudWatch Logs に共通の属性に加えて、RuleExecution ログ項目には次の属性が含まれています。

eventType

Rule Execution ログの RuleExecution

clientId

リクエストを実行するクライアントの ID。

topicName

サブスクライブされたトピックの名前。

ruleName

一致ルールの名前。

ruleAction

トリガーされるアクションの名前。

リソース

ルールのアクションによって使用されるリソースの集合。

principalId

リクエストを実行するプリンシパルの ID。

Rule Not Found Logsmore info (13)
Rule Not Found Logs

AWS IoT ルールエンジンは、指定された名前のルールが見つからない場合に RuleNotFound エラーログを生成します。

more info (13)

次に例を示します。

{ "timestamp": "2017-10-04 19:25:46.070", "logLevel": "ERROR", "traceId": "30aa7ccc-1d23-0b97-aa7b-76196d83537e", "accountId": "123456789012", "status": "Failure", "eventType": "RuleNotFound", "clientId": "abf27092886e49a8a5c1922749736453", "topicName": "$aws/rules/example_rule", "ruleName": "example_rule", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "reason": "RuleNotFound", "details": "Rule example_rule not found" }

すべての CloudWatch Logs に共通の属性に加えて、RuleNotFound ログ項目には次の属性が含まれています。

eventType

ルールが見つからないというログでは RuleNotFound

clientId

リクエストを実行するクライアントの ID。

topicName

発行されたトピックの名前。

ruleName

見つからなかったルールの名前。

principalId

リクエストを実行するプリンシパルの ID。

理由

文字列 "RuleNotFound"。

details

エラーの簡単な説明。

Rule Message Throttled Logsmore info (14)
Rule Message Throttled Logs

AWS IoT ルールエンジンは、メッセージがスロットリングされた場合に RuleMessageThrottled エラーログを生成します。

more info (14)

次に例を示します。

{ "timestamp": "2017-10-04 19:25:46.070", "logLevel": "ERROR", "traceId": "30aa7ccc-1d23-0b97-aa7b-76196d83537e", "accountId": "123456789012", "status": "Failure", "eventType": "RuleMessageThrottled", "clientId": "abf27092886e49a8a5c1922749736453", "topicName": "$aws/rules/example_rule", "ruleName": "example_rule", "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a932167", "reason": "RuleExecutionThrottled", "details": "Message for Rule example_rule throttled" }

すべての CloudWatch Logs に共通の属性に加えて、RuleMessageThrottled ログ項目には次の属性が含まれています。

eventType

ルールメッセージがスロットリングされたというログでは RuleMessageThrottled

clientId

リクエストを実行するクライアントの ID。

topicName

発行されたトピックの名前。

ruleName

トリガーされるルールの名前。

principalId

リクエストを実行するプリンシパルの ID。

理由

文字列 "RuleMessageThrottled"。

details

エラーの簡単な説明。

Job ログ

AWS IoT Job サービスは、以下のイベントのログを生成します。ログは、MQTT または HTTP リクエストがデバイスから受信されたときに生成されます。

Get Pending Job Execution Logsmore info (16)
Get Pending Job Execution Logs

AWS IoT Job サービスがジョブの実行リクエストを受け取ると、GetJobExecution ログを生成します。

more info (16)

次に例を示します。

{ "timestamp": "2018-06-13 17:45:17.197", "logLevel": "DEBUG", "accountId": "123456789012", "status": "Success", "eventType": "GetPendingJobExecution", "protocol": "MQTT", "clientId": "299966ad-54de-40b4-99d3-4fc8b52da0c5", "topicName": "$aws/things/299966ad-54de-40b4-99d3-4fc8b52da0c5/jobs/get", "clientToken": "24b9a741-15a7-44fc-bd3c-1ff2e34e5e82", "details": "The request status is SUCCESS." }

すべての CloudWatch Logs に共通の属性に加えて、GetPendingJobExecution ログ項目には次の属性が含まれています。

eventType

保留中のジョブの実行のログを取得するための GetPendingJobExecution

プロトコル

リクエストを行うときに使用されるプロトコル。有効な値は MQTT または HTTP です。

clientId

リクエストを実行するクライアントの ID。

topicName

サブスクライブされたトピックの名前。

clientToken

リクエストのべき等のための一意の識別子 (大文字と小文字を区別)。詳細については、べき等を確実にする方法について参照してください。

details

Jobs サービスからの追加情報。

Describe Job Execution Logsmore info (17)
Describe Job Execution Logs

AWS IoT Jobs サービスがジョブ実行の説明リクエストを受け取ると、DescribeJobExecution ログを生成します。

more info (17)

次に例を示します。

{ "timestamp": "2017-08-10 19:13:22.841", "logLevel": "DEBUG", "accountId": "123456789012", "status": "Success", "eventType": "DescribeJobExecution", "protocol": "MQTT", "clientId": "thingOne", "jobId": "002", "topicName": "$aws/things/thingOne/jobs/002/get", "clientToken": "myToken", "details": "The request status is SUCCESS." }

すべての CloudWatch Logs に共通の属性に加えて、GetJobExecution ログ項目には次の属性が含まれています。

eventType

Job Execution ログ説明の DescribeJobExecution

プロトコル

リクエストを行うときに使用されるプロトコル。有効な値は MQTT または HTTP です。

clientId

リクエストを実行するクライアントの ID。

jobId

ジョブ実行のジョブ ID。

topicName

リクエストを行うために使用されるトピック。

clientToken

リクエストのべき等のための一意の識別子 (大文字と小文字を区別)。詳細については、べき等を確実にする方法について参照してください。

details

Jobs サービスからの追加情報。

Update Job Execution Logsmore info (18)
Update Job Execution Logs

AWS IoT Jobs サービスがジョブ実行の更新リクエストを受け取ると、UpdateJobExecution ログを生成します。

more info (18)

次に例を示します。

{ "timestamp": "2017-08-10 19:25:14.758", "logLevel": "DEBUG", "accountId": "123456789012", "status": "Success", "eventType": "UpdateJobExecution", "protocol": "MQTT", "clientId": "thingOne", "jobId": "002", "topicName": "$aws/things/thingOne/jobs/002/update", "clientToken": "myClientToken", "versionNumber": "1", "details": "The destination status is IN_PROGRESS. The request status is SUCCESS." }

すべての CloudWatch Logs に共通の属性に加えて、UpdateJobExecution ログ項目には次の属性が含まれています。

eventType

Job Execution ログ更新の UpdateJobExecution

プロトコル

リクエストを行うときに使用されるプロトコル。有効な値は MQTT または HTTP です。

clientId

リクエストを実行するクライアントの ID。

jobId

ジョブ実行のジョブ ID。

topicName

リクエストを行うために使用されるトピック。

clientToken

リクエストのべき等のための一意の識別子 (大文字と小文字を区別)。詳細については、べき等を確実にする方法について参照してください。

versionNumber

ジョブ実行のバージョン。

details

Jobs サービスからの追加情報。

Start Next Pending Job Execution Logsmore info (19)
Start Next Pending Job Execution Logs

AWS IoT Jobs サービスが次に保留中のジョブ実行の開始リクエストを受け取ると、StartNextPendingJobExecution ログを生成します。

more info (19)

次に例を示します。

{ "timestamp": "2018-06-13 17:49:51.036", "logLevel": "DEBUG", "accountId": "123456789012", "status": "Success", "eventType": "StartNextPendingJobExecution", "protocol": "MQTT", "clientId": "95c47808-b1ca-4794-bc68-a588d6d9216c", "topicName": "$aws/things/95c47808-b1ca-4794-bc68-a588d6d9216c/jobs/start-next", "clientToken": "bd7447c4-3a05-49f4-8517-dd89b2c68d94", "details": "The request status is SUCCESS." }

すべての CloudWatch Logs に共通の属性に加えて、StartNextPendingJobExecution ログ項目には次の属性が含まれています。

eventType

次に保留中のジョブ実行ログを開始する StartNextPendingJobExecution

プロトコル

リクエストを行うときに使用されるプロトコル。有効な値は MQTT または HTTP です。

clientId

リクエストを実行するクライアントの ID。

topicName

リクエストを行うために使用されるトピック。

clientToken

リクエストのべき等のための一意の識別子 (大文字と小文字を区別)。詳細については、べき等を確実にする方法について参照してください。

details

Jobs サービスからの追加情報。

Report Final Job Execution Count Logsmore info (20)
Report Final Job Execution Count Logs

AWS IoT Jobs サービスは、ジョブが完了すると ReportFinalJobExecutionCount ログを生成します。

more info (20)

次に例を示します。

{ "timestamp": "2017-08-10 19:44:16.776", "logLevel": "INFO", "accountId": "123456789012", "status": "Success", "eventType": "ReportFinalJobExecutionCount", "jobId": "002", "details": "Job 002 completed. QUEUED job execution count: 0 IN_PROGRESS job execution count: 0 FAILED job execution count: 0 SUCCEEDED job execution count: 1 CANCELED job execution count: 0 REJECTED job execution count: 0 REMOVED job execution count: 0" }

すべての CloudWatch Logs に共通の属性に加えて、ReportFinalJobExecutionCount ログ項目には次の属性が含まれています。

eventType

ジョブの最終実行回数を報告する ReportFinalJobExecutionCount

jobId

ジョブ実行のジョブ ID。

details

Jobs サービスからの追加情報。