AWS IoT Wireless リソースのログ記録の設定 - AWS IoT Core

AWS IoT Wireless リソースのログ記録の設定

AWS IoT Wireless リソースのログ記録を設定するには、API または CLI のいずれかを使用できます。AWS IoT Wireless リソースのモニタリングを開始する際、デフォルト設定を使用できます。これを行うには、このトピックをスキップして、CloudWatch Logs を使用して AWS IoT Wireless をモニタリングする に進んでログをモニタリングします。

ログのモニタリングを開始したら、CLI を使用して、ログレベルをより詳細なオプションに変更できます。例えば、INFO および ERROR の情報を指定したり、より多くのリソースに対するログ記録を有効にしたりするなどです。

AWS IoT Wireless リソースとログレベル

API または CLI を使用する前に、次の表を使用して、ログ記録を設定できるさまざまなログレベルとリソースについて学習します。この表は、リソースをモニタリングするときに CloudWatch ログに表示されるパラメータを示しています。リソースに対するログ記録の設定方法によって、コンソールに表示されるログが決まります。

サンプルの CloudWatch ログがどのように表示されるか、およびこれらのパラメータを使用して AWS IoT Wireless リソースに関する有益な情報をログ記録する方法ついては、「CloudWatch AWS IoT Wireless ログエントリの表示」を参照してください。

ログレベルとリソース
名前 使用できる値: 説明
logLevel

INFO, ERROR, または DISABLED

  • ERROR: オペレーションの失敗につながるすべてのエラーを表示します。ログに含まれるのは ERROR の情報のみです。

  • INFO: モノのフローに関する概要を提供します。ログに含まれるのは INFO および ERROR の情報です。

  • DISABLED: すべてのログ記録を無効にします。

resource

WirelessGateway、または WirelessDevice

リソースのタイプ。WirelessGateway または WirelessDevice です。

wirelessGatewayType LoRaWAN resourceWirelessGateway の場合の、ワイヤレスゲートウェイのタイプ。常に LoRaWAN です。
wirelessDeviceType LoRaWAN、または Sidewalk resourceWirelessDevice の場合の、ワイヤレスデバイスのタイプ。LoRaWAN または Sidewalk です。
wirelessGatewayId - resourceWirelessGateway の場合の、ワイヤレスゲートウェイの ID。
wirelessDeviceId - resourceWirelessDevice の場合の、ワイヤレスデバイスの ID。
event JoinRejoinRegistrationUplink_dataDownlink_dataCUPS_Request、および Certificate ログに記録されるイベントのタイプ。ログに記録するリソースがワイヤレスデバイスかワイヤレスゲートウェイかによって異なります。詳細については、「CloudWatch AWS IoT Wireless ログエントリの表示」を参照してください。

AWS IoT Wireless ログ記録 API

以下の API アクションを使用して、リソースのログ記録を設定できます。この表には、API アクションを使用するために作成する必要のあるサンプルの IAM ポリシーも示されています。以下のセクションでは、API を使用してリソースのログレベルを設定する方法について説明します。

API アクションのログ記録
API 名 説明 サンプルの IAM ポリシー

GetLogLevelsByResourceTypes

現在のデフォルトのログレベル、またはリソースタイプ別のログレベルを返します。ワイヤレスデバイスまたはワイヤレスゲートウェイのログオプションを含めることができます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:GetLogLevelsByResourceTypes" ], "Resource": [ "*" ] } ] }

GetResourceLogLevel

指定されたリソース IDとリソースタイプに対してログレベルのオーバーライドを返します。リソースは、ワイヤレスデバイスまたはワイヤレスゲートウェイにすることができます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:GetResourceLogLevel" ], "Resource": [ "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/012bc537-ab12-cd3a-d00e-1f0e20c1204a", ] } ] }

PutResourceLogLevel

指定されたリソース IDとリソースタイプに対してログレベルのオーバーライドを設定します。リソースは、ワイヤレスゲートウェイまたはワイヤレスデバイスにすることができます。

注記

この API では、ログレベルのオーバーライドが 1 アカウントにつき 200 に制限されています。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:PutResourceLogLevel" ], "Resource": [ "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/012bc537-ab12-cd3a-d00e-1f0e20c1204a", ] } ] }

ResetAllResourceLogLevels

ワイヤレスゲートウェイとワイヤレスデバイスの両方を含む、すべてのリソースに対するログレベルのオーバーライドを削除します。

注記

この API は、UpdateLogLevelsByResourceTypes API を使用して設定されたログレベルには影響しません。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:ResetAllResourceLogLevels" ], "Resource": [ "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/*", "arn:aws:iotwireless:us-east-1:123456789012:WirelessGateway/* ] } ] }

ResetResourceLogLevel

指定されたリソース ID とリソースタイプに対するログレベルのオーバーライドを削除します。リソースは、ワイヤレスゲートウェイまたはワイヤレスデバイスにすることができます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:ResetResourceLogLevel" ], "Resource": [ "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/012bc537-ab12-cd3a-d00e-1f0e20c1204a", ] } ] }

UpdateLogLevelsByResourceTypes

デフォルトのログレベル、またはリソースタイプ別のログレベルを設定します。この API は、ワイヤレスデバイスまたはワイヤレスゲートウェイのログオプションに使用でき、CloudWatch に表示されるログメッセージを制御できます。

注記

イベントはオプションで、イベントタイプはリソースタイプに関連付けられています。詳細については、「」を参照してくださいイベントタイプとリソースタイプ

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:UpdateLogLevelsByResourceTypes" ], "Resource": [ "*" ] } ] }

CLI を使用してリソースのログレベルを設定する

このセクションでは、API または AWS CLI を使用して AWS IoT Wireless リソースのログレベルを設定する方法について説明します。

CLI を使用する前に、以下を行ってください。
  • 前述のように、CLI コマンドを実行する API の IAM ポリシーを作成していることを確認します。

  • 使用するロールの Amazon リソースネーム (ARN) が必要です。ログ記録に使用するロールを作成する必要がある場合は、「AWS IoT Wireless 用のログ記録ロールとポリシーを作成する」を参照してください。

AWS CLI を使用する理由

デフォルトでは、「AWS IoT Wireless 用のログ記録ロールとポリシーを作成する」で説明されているように IAM ロール IoTWirelessLogsRole を作成した場合、デフォルトのログレベル ERROR を持つ CloudWatch ログが AWS Management Console に表示されます。すべてのリソースまたは特定のリソースのデフォルトのログレベルを変更するには、AWS IoT Wireless ログ記録 API または CLI を使用します。

AWS CLI の使用方法

API アクションは、すべてのリソースと特定のリソースのどちらに対してログレベルを設定するかに応じて、次のタイプに分類できます。

  • API アクション GetLogLevelsByResourceTypes および UpdateLogLevelsByResourceTypes は、ワイヤレスゲートウェイ、LoRaWAN または Sidewalk デバイスなど、特定のタイプのアカウント内のすべてのリソースのログレベルを取得および更新できます。

  • API アクション GetResourceLogLevelPutResourceLogLevel、および ResetResourceLogLevel は、リソース ID を使用して、指定した個々のリソースのログレベルを取得、更新、リセットできます。

  • API アクション ResetAllResourceLogLevels は、PutResourceLogLevel API を使用してログレベルのオーバーライドを指定したすべてのリソースに対して、ログレベルのオーバーライドを null にリセットします。

CLI を使用して AWS IoT でリソース固有のログ記録を設定するには
注記

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

  1. デフォルトでは、すべてのリソースのログレベルは ERROR に設定されています。アカウント内のすべてのリソースについて、デフォルトのログレベル、またはリソースタイプ別のログレベルを設定するには、update-log-levels-by-resource-types コマンドを使用します。次の例は、JSON ファイル Input.json を作成して、入力として CLI コマンドに提供する方法を示しています。このコマンドを使用すると、特定のタイプのリソースおよびイベントに対して、選択的にログ記録を無効にしたり、デフォルトのログレベルをオーバーライドしたりできます。

    { "DefaultLogLevel": "INFO", "WirelessDeviceLogOptions": [ { "Type": "Sidewalk", "LogLevel": "INFO", "Events": [ { "Event": "Registration", "LogLevel": "DISABLED" } ] }, { "Type": "LoRaWAN", "LogLevel": "INFO", "Events": [ { "Event": "Join", "LogLevel": "DISABLED" }, { "Event": "Rejoin", "LogLevel": "ERROR" } ] } ], "WirelessGatewayLogOptions": [ { "Type": "LoRaWAN", "LogLevel": "INFO", "Events": [ { "Event": "CUPS_Request", "LogLevel": "DISABLED" }, { "Event": "Certificate", "LogLevel": "ERROR" } ] } ] }

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

    WirelessDeviceLogOptions

    ワイヤレスデバイスのログオプションのリスト。各ログオプションには、ワイヤレスデバイスのタイプ (Sidewalk または LoRaWAN) と、ワイヤレスデバイスのイベントログオプションのリストが含まれます。各ワイヤレスデバイスのイベントログオプションには、必要に応じて、イベントタイプとそのログレベルを含めることができます。

    WirelessGatewayLogOptions

    ワイヤレスゲートウェイのログオプションのリスト。各ログオプションには、ワイヤレスゲートウェイのタイプ (LoRaWAN) と、ワイヤレスゲートウェイのイベントログオプションのリストが含まれます。各ワイヤレスゲートウェイのイベントログオプションには、必要に応じて、イベントタイプとそのログレベルを含めることができます。

    DefaultLogLevel

    すべてのリソースに使用するログレベル。有効な値は、ERRORINFODISABLED です。デフォルト値は INFO です。

    LogLevel

    個々のリソースタイプとイベントに使用するログレベル。これらのログレベルは、LoRaWAN ゲートウェイに対するログレベル INFO や、2 つのイベントタイプに対する DISABLED および ERROR などのデフォルトのログレベルをオーバーライドします。

    次のコマンドを実行すると、Input.json ファイルが入力としてコマンドに提供されます。このコマンドでは、出力が生成されません。

    aws iotwireless update-log-levels-by-resource-types \ --cli-input-json file://input.json

    ワイヤレスデバイスとワイヤレスゲートウェイの両方のログオプションを削除する場合は、次のコマンドを実行します。

    { "DefaultLogLevel":"DISABLED", "WirelessDeviceLogOptions": [], "WirelessGatewayLogOptions":[] }
  2. update-log-levels-by-resource-types コマンドは出力を返しません。リソース固有のログ記録情報を取得するには、get-log-levels-by-resource-types コマンドを使用します。このコマンドは、デフォルトのログレベルと、ワイヤレスデバイスおよびワイヤレスゲートウェイのログオプションを返します。

    注記

    get-log-levels-by-resource-types コマンドは、CloudWatch コンソールでログレベルを直接取得することはできません。get-log-levels-by-resource-types コマンドは、update-log-levels-by-resource-types コマンドを使用してリソースに対して指定した最新のログレベルの情報を取得するために使用できます。

    aws iotwireless get-log-levels-by-resource-types

    次のコマンドを実行すると、update-log-levels-by-resource-types を使用して指定した最新のログ記録情報が返されます。例えば、ワイヤレスデバイスのログオプションを削除した場合、get-log-levels-by-resource-types を実行すると、この値が null として返されます。

    { "DefaultLogLevel": "INFO", "WirelessDeviceLogOptions": null, "WirelessGatewayLogOptions": [ { "Type": "LoRaWAN", "LogLevel": "INFO", "Events": [ { "Event": "CUPS_Request", "LogLevel": "DISABLED" }, { "Event": "Certificate", "LogLevel": "ERROR" } ] } ] }
  3. 個々のワイヤレスゲートウェイまたはワイヤレスデバイスリソースのログレベルを制御するには、次の CLI コマンドを使用します。

    これらの CLI をいつ使用するかの例として、ログに記録されているアカウント内に多数のワイヤレスデバイスまたはワイヤレスゲートウェイがあるとします。一部のワイヤレスデバイスに対してのみエラーのトラブルシューティングを行う場合は、DefaultLogLevelDISABLED に設定してすべてのワイヤレスデバイスのログ記録を無効にし、put-resource-log-level を使用して、アカウント内のこれらのデバイスに対してのみ LogLevelERROR に設定できます。

    aws iotwireless put-resource-log-level \ --resource-identifier --resource-type WirelessDevice --log-level ERROR

    この例では、コマンドによって、指定したワイヤレスデバイスのリソースに対してのみログレベルが ERROR に設定され、その他のすべてのリソースのログが無効になります。このコマンドでは、出力が生成されません。この情報を取得して、ログレベルが設定されたことを確認するには、get-resource-log-level コマンドを使用します。

  4. 前のステップでは、問題をデバッグしてエラーを解決した後、reset-resource-log-level コマンドを実行して、そのリソースのログレベルを null にリセットできます。put-resource-log-level コマンドを使用して、複数のワイヤレスデバイスまたはワイヤレスゲートウェイリソースに対してログレベルのオーバーライドを設定した場合 (複数のデバイスのエラーのトラブルシューティングなど)、reset-all-resource-log-levels コマンドを使用して、これらのすべてのリソースに対して、ログレベルのオーバーライドを null にリセットできます。

    aws iotwireless reset-all-resource-log-levels

    このコマンドでは、出力が生成されません。リソースのログ記録情報を取得するには、get-resource-log-level コマンドを実行します。

次のステップ

ログ記録ロールを作成し、AWS IoT Wireless API を使用して AWS IoT Wireless リソースのログ記録を設定する方法を学習しました。続いてログエントリのモニタリングについて学習するには、CloudWatch Logs を使用して AWS IoT Wireless をモニタリングする に移動してください。