AWS IoT ログ記録を設定する - AWS IoT Core

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

AWS IoT ログ記録を設定する

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

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

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 コンソールの Logs セクションで必要なポリシーを使用して IAM ロールを生成することもできます。

注記

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

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

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

ログ記録ロールの作成

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

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

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

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

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

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

以下のポリシードキュメントは、お客様に代わって AWS IoT から CloudWatch にログエントリを送信するためのロールポリシーと信頼ポリシーを示しています。ログエントリ AWS IoT Core for LoRaWAN の送信も許可されている場合は、両方のアクティビティをログに記録するポリシードキュメントが作成されます。

注記

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

ロールポリシー:

JSON
{ "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 アクティビティのみをログに記録する信頼ポリシー:

JSON
{ "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. [Log level] (ログレベル) を選択し、CloudWatch のログに表示するログエントリの詳細レベルを指定します。

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

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

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

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

注記

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

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

ここに示す CLI コマンドに対応する API のメソッドを使用して、 AWS 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)

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

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

モノはモノグループのメンバーにすることができます。このメンバーシップにより、モノはモノのグループに適用される設定、ポリシー、および設定を継承できます。モノのグループは、各モノを個別に処理するのではなく、複数のモノをまとめて管理および適用するために使用されます。クライアント ID がモノの名前と一致すると、 AWS IoT Core はクライアントセッションを対応するモノのリソースに自動的に関連付けます。これにより、クライアントセッションは、ログ記録レベルなど、モノが属するモノのグループに適用される設定と設定を継承できます。クライアント ID がモノの名前と一致しない場合は、排他的なモノのアタッチメントを有効にして関連付けを確立できます。詳細については、「AWS IoT モノを MQTT クライアント接続に関連付ける」を参照してください。

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

注記

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

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

ここに示す CLI コマンドに対応する API のメソッドを使用して、 AWS 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。log-target パラメータ値には、前のコマンド例で示したテキストや、次の例のような 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、INFO、ERROR、WARN 情報が含まれます。

DISABLED

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