「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」
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 IoT アクティビティを監視するためのアクセス許可を AWS に付与するために使用します。
AWS IoT ログ記録を有効にする前に、CloudWatch Logs アクセス権限を理解しておく必要があります。CloudWatch Logs に対するアクセス権限のあるユーザーはデバイスからのデバッグ情報を表示できます。詳細については、「CloudWatch Logs の認証とアクセスコントロール」を参照してください。
ログ記録ロールの作成
IAM コンソール
コンソールAWS IoT Coreを使用して のログ記録ロールを作成するにはIAM
-
コンソールのロールハブを開き、[IAMロールの作成
] を選択します。 -
のログ記録ロールを作成するにはAWS IoT Core
-
[信頼されたエンティティの種類を選択] で、[AWS のサービス]、[IoT] の順に選択します。
-
[ユースケースの選択] で、[IoT]、[] の順に選択します。Next: Permissions.
-
サービスロールに自動的にアタッチされるポリシーを表示するページ。
-
選択 Next: Tagsを選択し、次に Next: Review.
-
ロールの [ロール名] と [ロールの説明] を入力し、[] を選択します。Create role.
-
[ロール] のリストで、作成したロールを見つけて開き、[ロールの ARN] (
logging-role-arn
) を選択します。AWS IoT でデフォルトのログ記録を設定する (コンソール)
-
-
のログ記録ロールを作成するにはAWS IoT Core for LoRaWAN
-
[Select type of trusted entity] で、[Another AWS account] を選択します。
-
[アカウント ID] に AWS アカウント ID を入力し、[] を選択します。Next: Permissions.
-
検索ボックスに「
AWSIoTWirelessLogging
」と入力します。 -
[AWSIoTWirelessLogging] という名前のポリシーの横にあるボックスを選択し、[] を選択します。Next: Tags.
-
選択 Next: Review.
-
[ロール名] に「
IoTWirelessLogsRole
」と入力し、[] を選択します。Create role. -
確認メッセージで、[IoTWirelessLogsRole] を選択します。
-
ロールの [概要] ページで、[信頼関係] タブを選択し、次に Edit trust relationship.
-
エントリを編集して
Principal
"Service": "iotwireless.amazonaws.com"
例は次のとおりです。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iotwireless.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": {} } ] }
-
選択 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", "Service": "iotwireless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
AWS IoT でデフォルトのログ記録を設定する (コンソール)
ここでは、AWS IoT コンソールを使用してすべての AWS IoT に対するログ記録を設定する方法について説明します。特定のモノグループのみを対象にしてログ記録を設定するには、CLI または API を使用する必要があります。特定のモノグループのログ記録の設定については、「AWS IoT でリソース固有のログ記録を設定する (CLI)」を参照してください。
AWS IoT コンソールを使用して、すべての AWS IoT に対するデフォルトのログ記録を設定するには
-
AWS IoT コンソールにサインインします。詳細については、「コンソールAWS IoTを開きます。」を参照してください。
-
左のナビゲーションペインの [設定] を選択します。[設定] ページの [ログ] セクションで、[編集] を選択します。
[ログ] セクションには、すべての AWS IoT で使用されるログ記録ロールと詳細レベルが表示されます。
-
[ロール設定の構成] ページで、[詳細レベル] を選択します。これは、 ログに表示されるログエントリの詳細度CloudWatchを表します。
-
[選択] を選択し、「ログ記録ロールの作成」で作成したロールを指定するか、[ロールの作成] を選択してログ記録に使用するロールを作成します。
-
[更新] を選択して変更を保存します。
ログ記録を有効にしたら、「CloudWatch コンソールでの AWS IoT ログの表示」にアクセスして、ログエントリの表示方法の詳細を確認します。
AWS IoT でデフォルトのログ記録を設定する (CLI)
ここでは、CLI を使用して AWS IoT 全体のログ記録を設定する方法について説明します。
使用するロールの Amazon リソースネーム (ARN) が必要です。ログ記録に使用するロールを作成する必要がある場合は、先へ進む前に「ログ記録ロールの作成」を参照してください。
API を呼び出すためにに使用されるプリンシパルには、ログ記録ロール用のロールのアクセス権限の適用が必要です。
この手順は、ここに示す CLI コマンドに対応する AWS API のメソッドを使用することにより、API で行うこともできます。
CLI を使用して AWS IoT のデフォルトログ記録を設定するには
-
set-v2-logging-options
コマンドを使用して、アカウントのログ記録オプションを設定します。 aws iot set-v2-logging-options \ --role-arn
logging-role-arn
\ --default-log-levellog-level
各パラメータの意味は次のとおりです。
- --role-arn
-
CloudWatch Logs でログに書き込むアクセス許可を AWS IoT に付与するロール ARN。
- --default-log-level
-
使用するログレベル。有効な値は次のとおりです。
ERROR
,WARN
,INFO
,DEBUG
, またはDISABLED
- --no-disable-all-logs
-
すべての AWS IoT ログ記録を有効にするオプションのパラメータ。このパラメータは、現在無効になっているログ記録を有効にする場合に使用します。
- --disable-all-logs
-
すべての AWS IoT ログ記録を無効にするオプションのパラメータ。このパラメータは、現在有効になっているログ記録を無効にする場合に使用します。
-
現在のログ記録オプションを取得するには、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 でリソース固有のログ記録を設定する方法について説明します。リソース固有のログ記録では、特定のモノのグループに特定のログ記録レベルを指定できます。
モノグループには別のモノグループを含めて、階層的な関係を作成することができます。この手順では、単一のモノグループのログ記録を設定する方法について説明します。階層内の親モノグループにこの手順を適用することにより、階層内のすべてのモノグループに対してログ記録を設定することもできます。この手順を子モノグループに適用して、親のログ記録設定をオーバーライドすることもできます。
使用するロールの Amazon リソースネーム (ARN) が必要です。ログ記録に使用するロールを作成する必要がある場合は、先へ進む前に「ログ記録ロールの作成」を参照してください。
API を呼び出すためにに使用されるプリンシパルには、ログ記録ロール用のロールのアクセス権限の適用が必要です。
この手順は、ここに示す CLI コマンドに対応する AWS API のメソッドを使用することにより、API で行うこともできます。
CLI を使用して AWS IoT でリソース固有のログ記録を設定するには
-
set-v2-logging-options
コマンドを使用して、アカウントのログ記録オプションを設定します。 aws iot set-v2-logging-options \ --role-arn
logging-role-arn
\ --default-log-levellog-level
各パラメータの意味は次のとおりです。
- --role-arn
-
CloudWatch Logs でログに書き込むアクセス許可を AWS IoT に付与するロール ARN。
- --default-log-level
-
使用するログレベル。有効な値は次のとおりです。
ERROR
,WARN
,INFO
,DEBUG
, またはDISABLED
- --no-disable-all-logs
-
すべての AWS IoT ログ記録を有効にするオプションのパラメータ。このパラメータは、現在無効になっているログ記録を有効にする場合に使用します。
- --disable-all-logs
-
すべての AWS IoT ログ記録を無効にするオプションのパラメータ。このパラメータは、現在有効になっているログ記録を無効にする場合に使用します。
-
モノグループのリソース固有のログ記録を設定するには、set-v2-logging-level
コマンドを使用します。 aws iot set-v2-logging-level \ --log-target targetType=THING_GROUP,targetName=
thing_group_name
\ --log-levellog_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-levellog_level
- --log-level
-
指定されたリソースのログを生成する際に使用されるログ記録レベル。有効な値は次のとおりです。DEBUG, INFO, ERROR, WARN, およびDISABLED
-
現在設定されているログ記録レベルを一覧表示するには、list-v2-logging-levels
コマンドを使用します。 aws iot list-v2-logging-levels
-
リソース固有のログ記録レベルを削除するには、 delete-v2-logging-level
コマンドを使用します。 aws iot delete-v2-logging-level \ --targetType "THING_GROUP" \ --targetName "
thing_group_name
"- --targetType
-
target_type
の値はTHING_GROUP
にする必要があります - --targetName
-
ログ記録レベルを削除するモノグループの名前。
ログ記録を有効にしたら、「CloudWatch コンソールでの AWS IoT ログの表示」にアクセスして、ログエントリの表示方法の詳細を確認します。
ログレベル
以下のログレベルは、ログにどのイベントを記録するかを決定します。デフォルトおよびリソース固有のログレベルに適用されます。
- ERROR
-
オペレーションの失敗につながるすべてのエラー。
ログには ERROR 情報のみが含まれます。
- WARN
-
オペレーションの失敗につながるわけではないが、システムの不整合を引き起こす可能性のあるすべての要因。
ログには ERROR および WARN 情報が含まれます。
- INFO
-
モノのフローに関する概要。
ログには INFO、ERROR および WARN 情報が含まれます。
- DEBUG
-
問題のデバッグに役立つ場合のある情報。
ログには DEBUG、INFO、ERROR、WARN 情報が含まれます。
- DISABLED
-
すべてのロギングが無効です。