AWS IoT ログ記録の設定 - AWS IoT Core

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS IoT ログ記録の設定

AWS IoT アクティビティをモニタリングしてログ記録APIする前に、 AWS IoT コンソールCLI、、または を使用してログ記録を有効にする必要があります。

すべて AWS IoT または特定のモノのグループのログ記録を有効にできます。 AWS IoT コンソール、、または を使用して AWS IoT ログ記録を設定できますAPIが、特定のモノのグループのログ記録APIを設定するにはCLI、 CLIまたは を使用する必要があります。

AWS IoT ログ記録の設定方法を検討する場合、特に指定がない限り、デフォルトのログ記録設定によって AWS IoT アクティビティのログ記録方法が決まります。最初は、デフォルトのログレベル (INFO または DEBUG) を使用して、詳細なログを取得できます。初期ログを確認した後、デフォルトのログレベルから WARNERROR などの低い詳細レベルに変更し、注意が必要なリソースに対しては、詳細レベルを高くしてリソース固有のログレベルを設定できます。ログレベルはいつでも変更できます。

このトピックでは、 でのクラウド側のログ記録について説明します AWS IoT。デバイス側のログ記録とモニタリングの詳細については、「デバイス側のログを にアップロード CloudWatchする」を参照してください。

のログ記録とモニタリングの詳細については AWS IoT Greengrass、「 のログ記録とモニタリング AWS IoT Greengrass」を参照してください。2023 年 6 月 30 日現在、 AWS IoT Greengrass Core ソフトウェアは に移行されています AWS IoT Greengrass Version 2。

ログ記録ロールとポリシーの構成

でのログインを有効にする前に AWS IoT、ユーザーに代わって AWS IoT アクティビティをモニタリングする AWS アクセス許可を付与するIAMロールとポリシーを作成する必要があります。コンソールの ログ セクション AWS IoTで必要なポリシーを使用してIAMロールを生成することもできます。

注記

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

負荷テスト AWS IoT Core により のトラフィックパターンが高くなることが予想される場合は、スロットリングを防ぐために IoT ログ記録をオフにすることを検討してください。大量のトラフィックが検出された場合、当社のサービスはアカウントでのログ記録を無効にする場合があります。

以下は、 AWS IoT Core リソースのログ記録ロールとポリシーを作成する方法を示しています。

ログ記録ロールの作成

ログ記録ロールを作成するには、IAMコンソールのロールハブを開き、ロールの作成 を選択します。

  1. [Select trusted entity] (信頼されたエンティティを選択) で、[AWS Service] (AWS サービス) を選択します。次に、[Use case] (ユースケース) で [IoT] を選択します。[IoT] が表示されない場合は、[他の AWS サービスのユースケース] ドロップダウンメニューで [IoT] と入力して検索してください。[次へ] を選択します。

  2. [Add permissions] (権限の追加) ページでは、サービスロールに自動的に付加されるポリシーが表示されます。[Next (次へ)] を選択します。

  3. [Name, review, and create] (名前、確認、作成) ページで、ロールの [Role name] (ロール名) と [Role description] (ロールの説明) を入力し、次に [Create role] (ロールの作成) を選択します。

  4. ロール のリストで、作成したロールを見つけて開き、ロール ARN (logging-role-arn) は、 のときに使用しますAWS IoT でデフォルトのログ記録を設定する (コンソール)

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

次のポリシードキュメントは、 が CloudWatch ユーザーに代わってログエントリ AWS IoT を に送信できるようにするロールポリシーと信頼ポリシーを提供します。 AWS IoT Core に LoRaWANログエントリの送信も許可した場合、両方のアクティビティをログに記録するポリシードキュメントが作成されます。

注記

これらのドキュメントは、ログ記録ロールを作成したときに作成されたものです。ドキュメントには変数があります。${partition}, ${region} および ${accountId}、 を値に置き換える必要があります。

ロールポリシー:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "iot:GetLoggingOptions", "iot:SetLoggingOptions", "iot:SetV2LoggingOptions", "iot:GetV2LoggingOptions", "iot:SetV2LoggingLevel", "iot:ListV2LoggingLevels", "iot:DeleteV2LoggingLevel" ], "Resource": [ "arn:${partition}:logs:${region}:${accountId}:log-group:AWSIotLogsV2:*" ] } ] }

AWS IoT Core アクティビティのみを記録する信頼ポリシー:

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

AWS IoT でデフォルトのログ記録を設定する (コンソール)

このセクションでは、 AWS IoT コンソールを使用してすべての のログ記録を設定する方法について説明します AWS IoT。特定のモノのグループのみのログ記録を設定するには、 CLIまたは を使用する必要がありますAPI。特定のモノグループのログ記録の設定については、「リソース固有のログイン AWS IoT を設定する (CLI)」を参照してください。

AWS IoT コンソールを使用してすべての のデフォルトログ記録を設定するには AWS IoT
  1. AWS IoT コンソールにサインインします。詳細については、「AWS IoT コンソールを開く」を参照してください。

  2. 左のナビゲーションペインの [設定] を選択します。[Settings] (設定) ページの [Logs] (ログ) セクションで、[Manage logs] (ログの管理) を選択します。

    [ログ] ページには、すべての AWS IoTで使用されるログ記録ロールと詳細レベルが表示されます。

    ログロールと詳細度を示すログページ。
  3. [Logs] (ログ) ページで、[Select role] (ログの選択) を選択し、ログ記録ロールの作成 で作成したロールを指定するか、[Create Role] (ロールの作成) を選択してログ記録に使用するロールを作成します。

    ログロールとログレベルを表示するログページ。
  4. ログに表示するログエントリの詳細レベルログレベルを説明する CloudWatch ログレベルを選択します。

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

ログ記録を有効にしたら、 CloudWatch コンソールでの AWS IoT ログの表示 にアクセスして、ログエントリの表示方法の詳細を確認します。

デフォルトのログインを設定する AWS IoT (CLI)

このセクションでは、 AWS IoT を使用して のグローバルログ記録を設定する方法について説明しますCLI。

注記

使用するロールの Amazon リソースネーム (ARN) が必要です。ログ記録に使用するロールを作成する必要がある場合は、先へ進む前に「ログ記録ロールの作成」を参照してください。

を呼び出すために使用されるプリンシパルは、ログ記録ロールロールのアクセス許可を渡すに API が必要です。

この手順は、ここに示すCLIコマンドに対応する AWS APIの メソッドAPIを使用して で実行することもできます。

を使用して CLI のデフォルトのログ記録を設定するには AWS IoT
  1. set-v2-logging-options コマンドを使用して、アカウントのログ記録オプションを設定します。

    aws iot set-v2-logging-options \ --role-arn logging-role-arn \ --default-log-level log-level

    各パラメータの意味は次のとおりです。

    --role-arn

    CloudWatch Logs でログに書き込む AWS IoT アクセス許可を付与ARNするロール。

    --default-log-level

    使用するログレベル。有効な値は ERRORWARNINFODEBUGDISABLED です。

    --no-disable-all-logs

    すべての AWS IoT ログ記録を有効にするオプションのパラメータ。このパラメータは、現在無効になっているログ記録を有効にする場合に使用します。

    --disable-all-logs

    すべての AWS IoT ログ記録を無効にするオプションのパラメータ。このパラメータは、現在有効になっているログ記録を無効にする場合に使用します。

  2. 現在のログ記録オプションを取得するには、get-v2-logging-options コマンドを使用します。

    aws iot get-v2-logging-options

ログ記録を有効にしたら、 CloudWatch コンソールでの AWS IoT ログの表示 にアクセスして、ログエントリの表示方法の詳細を確認します。

注記

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

リソース固有のログイン AWS IoT を設定する (CLI)

このセクションでは、 を使用して AWS IoT のリソース固有のログ記録を設定する方法について説明しますCLI。リソース固有のログ記録では、特定のモノのグループに特定のログ記録レベルを指定できます。

モノグループには別のモノグループを含めて、階層的な関係を作成することができます。この手順では、単一のモノグループのログ記録を設定する方法について説明します。階層内の親モノグループにこの手順を適用することにより、階層内のすべてのモノグループに対してログ記録を設定することもできます。この手順を子モノグループに適用して、親のログ記録設定をオーバーライドすることもできます。

モノグループに加えて、デバイスのクライアント ID、ソース IP、プリンシパル ID などのターゲットをログに記録することもできます。

注記

使用するロールの Amazon リソースネーム (ARN) が必要です。ログ記録に使用するロールを作成する必要がある場合は、先へ進む前に「ログ記録ロールの作成」を参照してください。

を呼び出すために使用されるプリンシパルは、ログ記録ロールロールのアクセス許可を渡すに API が必要です。

この手順は、ここに示すCLIコマンドに対応する AWS APIの メソッドAPIを使用して で実行することもできます。

を使用して CLI のリソース固有のログ記録を設定するには AWS IoT
  1. set-v2-logging-options コマンドを使用して、アカウントのログ記録オプションを設定します。

    aws iot set-v2-logging-options \ --role-arn logging-role-arn \ --default-log-level log-level

    各パラメータの意味は次のとおりです。

    --role-arn

    CloudWatch Logs でログに書き込む AWS IoT アクセス許可を付与ARNするロール。

    --default-log-level

    使用するログレベル。有効な値は ERRORWARNINFODEBUGDISABLED です。

    --no-disable-all-logs

    すべての AWS IoT ログ記録を有効にするオプションのパラメータ。このパラメータは、現在無効になっているログ記録を有効にする場合に使用します。

    --disable-all-logs

    すべての AWS IoT ログ記録を無効にするオプションのパラメータ。このパラメータは、現在有効になっているログ記録を無効にする場合に使用します。

  2. モノグループのリソース固有のログ記録を設定するには、set-v2-logging-level コマンドを使用します。

    aws iot set-v2-logging-level \ --log-target targetType=THING_GROUP,targetName=thing_group_name \ --log-level log_level
    --log-target

    ログ記録を設定するリソースの名前とタイプ。target_typeの値は次のいずれかである必要があります : THING_GROUP | CLIENT_ID | SOURCE_IP | PRINCIPAL_ID。ログターゲットパラメータ値は、前のコマンド例に示すようにテキストでも、次の例のようなJSON文字列でもかまいません。

    aws iot set-v2-logging-level \ --log-target '{"targetType": "THING_GROUP","targetName": "thing_group_name"}' \ --log-level log_level
    --log-level

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

    aws iot set-v2-logging-level \ --log-target targetType=CLIENT_ID,targetName=ClientId1 \ --log-level DEBUG
  3. 現在設定されているログ記録レベルを一覧表示するには、list-v2-logging-levels コマンドを使用します。

    aws iot list-v2-logging-levels
  4. 次の例のように、リソース固有のログ記録レベルを削除するには、delete-v2-logging-level コマンドを使用します。

    aws iot delete-v2-logging-level \ --target-type "THING_GROUP" \ --target-name "thing_group_name"
    aws iot delete-v2-logging-level \ --target-type=CLIENT_ID --target-name=ClientId1
    --targetType

    target_typeの値は次のいずれかである必要があります : THING_GROUP | CLIENT_ID | SOURCE_IP | PRINCIPAL_ID

    --targetName

    ログ記録レベルを削除するモノグループの名前。

ログ記録を有効にしたら、 CloudWatch コンソールでの AWS IoT ログの表示 にアクセスして、ログエントリの表示方法の詳細を確認します。

ログレベル

以下のログレベルは、ログにどのイベントを記録するかを決定します。デフォルトおよびリソース固有のログレベルに適用されます。

ERROR

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

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

WARN

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

ログには ERRORと WARN 情報が含まれます。

INFO

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

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

DEBUG

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

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

DISABLED

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