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。 最初のログを確認したら、デフォルトのログレベルを WARN や などのより少ない詳細レベルに変更ERRORし、注意の必要なリソースに対してより詳細なリソース固有のログレベルを設定できます。ログレベルはいつでも変更できます。

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

AWS IoT でログ記録を有効にする前に、IAM ロールとポリシーを作成する必要があります。これらは、ユーザーに代わって AWS アクティビティを監視するためのアクセス許可を AWS IoT に付与するために使用します。

注記

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

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

ログ記録ロールの作成

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

AWS IoT Core コンソールIAMを使用して のログ記録ロールを作成するには

  1. コンソールIAMの [ロール] ハブを開き、[ロールの作成] を選択します。

  2. のログ記録ロールを作成するには AWS IoT Core

    1. [Select type of trusted entity (信頼されたエンティティのタイプを選択)] で、[AWS Service (AWS サービス)]、[] の順に選択しますIoT

    2. [ユースケースの選択] で、[]、[] IoT の順に選択します。Next: Permissions.

    3. サービスロールに自動的にアタッチされているポリシーを表示するページ。

    4. [] を選択します。Next: Tags[] を選択し、[] を選択します。Next: Review.

    5. ロールの [ロール名] と [ロールの説明] を入力し、[ Create role.

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

  3. のログ記録ロールを作成するには AWS IoT Core for LoRaWAN

    1. Select type of trusted entity] で、[Another AWS account.] を選択します。

    2. [アカウント ID] に AWS アカウント ID を入力し、[ Next: Permissions.

    3. 検索ボックスに「」と入力します。AWSIoTWirelessLogging.

    4. [] AWSIoTWirelessLogging という名前のポリシーの横にあるボックスを選択し、[] を選択します。Next: Tags.

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

    6. [ロール名] に「」と入力しIoTWirelessLogsRole、[] を選択します。Create role.

    7. 確認メッセージで、[] を選択しますIoTWirelessLogsRole

    8. ロールの [Summary] ページで、[Trust relationships] タブを選択し、[] を選択します。Edit trust relationship.

    9. Principal エントリを編集し、 が含まれるようにします。

      "Service": "iotwireless.amazonaws.com"

      次の例に示すように、

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iotwireless.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {} } ] }
    10. [] を選択します。Update Trust Policy。 のログ記録AWS IoT Core for LoRaWANが設定されました。

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

次のポリシードキュメントはAWS IoT、 およびオプションで がAWS IoT Core for LoRaWANユーザーに代わって にログエントリCloudWatchを送信できるようにするロールポリシーと信頼ポリシーを提供します。

注記

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

ロールポリシー:

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

AWS IoT Core for LoRaWAN アクティビティのみをログ記録するためのロールポリシー:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/iotwireless*" } ] }

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

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

AWS IoT Core とAWS IoT Core for LoRaWANアクティビティをログに記録する信頼ポリシー:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "iot.amazonaws.com", "iotwireless.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. 左のナビゲーションペインの [設定.] を選択します。[設定] ページの [ログ] セクションで、[編集] を選択します。

    ログ] セクションには、すべての AWS IoT. で使用されるログ記録ロールと詳細レベルが表示されます。

  3. [Configure role setting (ロール設定の設定)] ページで、ログに表示するログエントリの詳細レベルを説明する [Level of verbosity (詳細CloudWatchレベル)] を選択します。

  4. [選択] を選択して、「」で作成したロールを指定するかログ記録ロールの作成、[ロールの作成] を選択してログ記録に使用する新しいロールを作成します。

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

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

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

ここでは、CLI を使用して AWS IoT 全体のログ記録を設定する方法について説明します。

注記

使用するロールの 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

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

    --default-log-level

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

    --no-disable-all-logs

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

    --disable-all-logs

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

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

    aws iot get-v2-logging-options

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

注記

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

AWS IoT でリソース固有のログ記録を設定する (CLI)

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

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

注記

使用するロールの 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

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

    --default-log-level

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

    --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。 log-target パラメータの値は、前述のコマンド例に示すようにテキストにすることも、次の例のような JSON 文字列にすることもできます。

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

    指定されたリソースのログを生成する際に使用されるログ記録レベル。有効な値はDEBUG、、、INFOERROR、および WARNです。 DISABLED

  3. 現在設定されているログ記録レベルを一覧表示するには、 list-v2-logging-levels コマンドを使用します。

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

    aws iot delete-v2-logging-level \ --targetType "THING_GROUP" \ --targetName "thing_group_name"
    --targetType

    target_type 値は である必要があります。 THING_GROUP

    --targetName

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

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

ログレベル

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

ERROR

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

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

WARN

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

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

INFO

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

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

DEBUG

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

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

DISABLED

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