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 |
|
|
resource |
|
リソースのタイプ。 |
wirelessGatewayType |
LoRaWAN |
resource が WirelessGateway の場合の、ワイヤレスゲートウェイのタイプ。常に LoRaWAN です。 |
wirelessDeviceType |
LoRaWAN または Sidewalk |
resource が WirelessDevice の場合の、ワイヤレスデバイスのタイプ。LoRaWAN または Sidewalk です。 |
wirelessGatewayId |
- | resource が WirelessGateway の場合の、ワイヤレスゲートウェイの ID。 |
wirelessDeviceId |
- | resource が WirelessDevice の場合の、ワイヤレスデバイスの ID。 |
event |
Join 、Rejoin 、Registration 、Uplink_data 、Downlink_data 、CUPS_Request 、および Certificate |
ログに記録されるイベントのタイプ。ログに記録するリソースがワイヤレスデバイスかワイヤレスゲートウェイかによって異なります。詳細については、「CloudWatch AWS IoT Wireless ログエントリの表示」を参照してください。 |
AWS IoT Wireless ログ記録 API
以下の API アクションを使用して、リソースのログ記録を設定できます。この表には、API アクションを使用するために作成する必要のあるサンプルの IAM ポリシーも示されています。以下のセクションでは、API を使用してリソースのログレベルを設定する方法について説明します。
API 名 | 説明 | サンプルの IAM ポリシー |
---|---|---|
現在のデフォルトのログレベル、またはリソースタイプ別のログレベルを返します。ワイヤレスデバイスまたはワイヤレスゲートウェイのログオプションを含めることができます。 |
|
|
指定されたリソース IDとリソースタイプに対してログレベルのオーバーライドを返します。リソースは、ワイヤレスデバイスまたはワイヤレスゲートウェイにすることができます。 |
|
|
指定されたリソース IDとリソースタイプに対してログレベルのオーバーライドを設定します。リソースは、ワイヤレスゲートウェイまたはワイヤレスデバイスにすることができます。 注記この API では、ログレベルのオーバーライドが 1 アカウントにつき 200 に制限されています。 |
|
|
ワイヤレスゲートウェイとワイヤレスデバイスの両方を含む、すべてのリソースに対するログレベルのオーバーライドを削除します。 注記この API は、 |
|
|
指定されたリソース ID とリソースタイプに対するログレベルのオーバーライドを削除します。リソースは、ワイヤレスゲートウェイまたはワイヤレスデバイスにすることができます。 |
|
|
デフォルトのログレベル、またはリソースタイプ別のログレベルを設定します。この API は、ワイヤレスデバイスまたはワイヤレスゲートウェイのログオプションに使用でき、CloudWatch に表示されるログメッセージを制御できます。 注記イベントはオプションで、イベントタイプはリソースタイプに関連付けられています。詳細については、「イベントタイプとリソースタイプ」を参照してください。 |
|
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 アクション
GetResourceLogLevel
、PutResourceLogLevel
、およびResetResourceLogLevel
は、リソース ID を使用して、指定した個々のリソースのログレベルを取得、更新、リセットできます。 -
API アクション
ResetAllResourceLogLevels
は、PutResourceLogLevel
API を使用してログレベルのオーバーライドを指定したすべてのリソースに対して、ログレベルのオーバーライドをnull
にリセットします。
CLI を使用して AWS IoT でリソース固有のログ記録を設定するには
注記
この手順は、ここに示す CLI コマンドに対応する AWS API のメソッドを使用することにより、API で行うこともできます。
-
デフォルトでは、すべてのリソースのログレベルは
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
-
すべてのリソースに使用するログレベル。有効な値は、
ERROR
、INFO
、DISABLED
です。デフォルト値はINFO
です。 - LogLevel
-
個々のリソースタイプとイベントに使用するログレベル。これらのログレベルは、LoRaWAN ゲートウェイに対するログレベル
INFO
や、2 つのイベントタイプに対するDISABLED
およびERROR
などのデフォルトのログレベルをオーバーライドします。
次のコマンドを実行すると、
Input.json
ファイルが入力としてコマンドに提供されます。このコマンドでは、出力が生成されません。aws iotwireless update-log-levels-by-resource-types \ --cli-input-json Input.json
ワイヤレスデバイスとワイヤレスゲートウェイの両方のログオプションを削除する場合は、次のコマンドを実行します。
{ "DefaultLogLevel":"DISABLED", "WirelessDeviceLogOptions": [], "WireslessGatewayLogOptions":[] }
-
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" } ] } ] }
-
個々のワイヤレスゲートウェイまたはワイヤレスデバイスリソースのログレベルを制御するには、次の CLI コマンドを使用します。
これらの CLI をいつ使用するかの例として、ログに記録されているアカウント内に多数のワイヤレスデバイスまたはワイヤレスゲートウェイがあるとします。一部のワイヤレスデバイスに対してのみエラーのトラブルシューティングを行う場合は、
DefaultLogLevel
をDISABLED
に設定してすべてのワイヤレスデバイスのログ記録を無効にし、put-resource-log-level を使用して、アカウント内のこれらのデバイスに対してのみLogLevel
をERROR
に設定できます。aws iotwireless put-resource-log-level \ --resource-identifier --resource-type WirelessDevice --log-level ERROR
この例では、コマンドによって、指定したワイヤレスデバイスのリソースに対してのみログレベルが
ERROR
に設定され、その他のすべてのリソースのログが無効になります。このコマンドでは、出力が生成されません。この情報を取得して、ログレベルが設定されたことを確認するには、get-resource-log-level コマンドを使用します。 -
前のステップでは、問題をデバッグしてエラーを解決した後、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 Core for LoRaWAN リソースのログ記録を設定する方法を学習しました。続いてログエントリのモニタリングについて学習するには、CloudWatch Logs を使用して AWS IoT Wireless をモニタリングする に移動してください。