翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS IoT アクティビティをモニタリングおよびログ記録APIする前に、 AWS IoT コンソールCLI、、または を使用してログ記録を有効にする必要があります。
すべてのモノのグループ AWS IoT または特定のモノのグループのログ記録を有効にできます。 AWS IoT コンソール、CLI、または を使用して AWS IoT ログ記録を設定できますAPIが、 CLIまたは を使用して特定のモノのグループのログ記録APIを設定する必要があります。
AWS IoT ログ記録の設定方法を検討する場合、特に指定がない限り、デフォルトのログ記録設定によって AWS IoT アクティビティのログ記録方法が決まります。最初は、デフォルトのログレベル (INFO
または DEBUG
) を使用して、詳細なログを取得できます。初期ログを確認した後、デフォルトのログレベルから WARN
や ERROR
などの低い詳細レベルに変更し、注意が必要なリソースに対しては、詳細レベルを高くしてリソース固有のログレベルを設定できます。ログレベルはいつでも変更できます。
このトピックでは、クラウド側のログインについて説明します AWS IoT。デバイス側のログ記録とモニタリングの詳細については、「デバイス側のログを にアップロードする CloudWatch」を参照してください。
ログ記録とモニタリングの詳細については AWS IoT Greengrass、「 でのログ記録とモニタリング AWS IoT Greengrass」を参照してください。2023 年 6 月 30 日現在、 AWS IoT Greengrass Core ソフトウェアは に移行されています AWS IoT Greengrass Version 2。
ログ記録ロールとポリシーの構成
ログインを有効にする前に AWS IoT、 IAMロールと、ユーザーに代わって AWS IoT アクティビティをモニタリングする AWS アクセス許可を付与するポリシーを作成する必要があります。コンソールの「ログ」セクションで必要なポリシーを使用して AWS IoT
注記
AWS IoT ログ記録を有効にする前に、必ず CloudWatch Logs アクセス許可を理解してください。 CloudWatch Logs にアクセスできるユーザーは、デバイスからのデバッグ情報を表示できます。詳細については、「Amazon CloudWatch Logs の認証とアクセスコントロール」を参照してください。
負荷テスト AWS IoT Core により でトラフィックパターンが高くなることが予想される場合は、スロットリングを防ぐために IoT ログ記録をオフにすることを検討してください。大量のトラフィックが検出された場合、当社のサービスはアカウントでのログ記録を無効にする場合があります。
以下は、 AWS IoT Core リソースのログ記録ロールとポリシーを作成する方法を示しています。
ログ記録ロールの作成
ログ記録ロールを作成するには、IAMコンソールのロールハブ
-
[Select trusted entity] (信頼されたエンティティを選択) で、[AWS Service] (AWS サービス) を選択します。次に、[Use case] (ユースケース) で [IoT] を選択します。[IoT] が表示されない場合は、[他の AWS サービスのユースケース] ドロップダウンメニューで [IoT] と入力して検索してください。[次へ] を選択します。
-
[Add permissions] (権限の追加) ページでは、サービスロールに自動的に付加されるポリシーが表示されます。[Next (次へ)] を選択します。
-
[Name, review, and create] (名前、確認、作成) ページで、ロールの [Role name] (ロール名) と [Role description] (ロールの説明) を入力し、次に [Create role] (ロールの作成) を選択します。
-
ロールのリストで、作成したロールを見つけて開き、 時に使用するロール ARN (
logging-role-arn
) をコピーしますAWS IoT でデフォルトのログ記録を設定する (コンソール)。
ログ記録ロールのポリシー
次のポリシードキュメントは、 が CloudWatch ユーザーに代わって AWS IoT にログエントリを送信できるようにするロールポリシーと信頼ポリシーを提供します。 AWS IoT Core に LoRaWANログエントリの送信も許可した場合、両方のアクティビティをログに記録するポリシードキュメントが作成されます。
注記
これらのドキュメントは、ログ記録ロールを作成したときに作成されたものです。ドキュメントには変数 ${partition}
,
と があり${region}
、 を値に置き換える必要があります。${accountId}
ロールポリシー:
{
"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 アクティビティのみをログに記録する信頼ポリシー:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "iot.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
AWS IoT
でデフォルトのログ記録を設定する (コンソール)
このセクションでは、 AWS IoT コンソールを使用してすべての のログ記録を設定する方法について説明します AWS IoT。特定のモノのグループのログ記録のみを設定するには、 CLIまたは を使用する必要がありますAPI。特定のモノグループのログ記録の設定については、「(CLI) で AWS IoT リソース固有のログ記録を設定する」を参照してください。
AWS IoT コンソールを使用してすべての のデフォルトログ記録を設定するには AWS IoT
-
AWS IoT コンソールにサインインします。詳細については、「AWS IoT コンソールを開く」を参照してください。
-
左のナビゲーションペインの [設定] を選択します。[Settings] (設定) ページの [Logs] (ログ) セクションで、[Manage logs] (ログの管理) を選択します。
[ログ] ページには、すべての AWS IoTで使用されるログ記録ロールと詳細レベルが表示されます。
-
[Logs] (ログ) ページで、[Select role] (ログの選択) を選択し、ログ記録ロールの作成 で作成したロールを指定するか、[Create Role] (ロールの作成) を選択してログ記録に使用するロールを作成します。
-
ログに表示するログエントリの詳細レベルを記述する CloudWatch ログレベルを選択します。 ログレベル
-
[更新] を選択して変更を保存します。
ログ記録を有効にしたら、 CloudWatch コンソールでの AWS IoT ログの表示 にアクセスして、ログエントリの表示方法の詳細を確認します。
デフォルトのログインを設定する AWS IoT (CLI)
このセクションでは、 AWS IoT を使用して のグローバルログ記録を設定する方法について説明しますCLI。
注記
使用するロールの 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」バージョンを使用してログ記録オプションを設定し、可能な場合は、古いバージョンを使用するレガシーアプリケーションを変更することをお勧めします。
(CLI) で AWS IoT リソース固有のログ記録を設定する
このセクションでは、 AWS IoT を使用して のリソース固有のログ記録を設定する方法について説明しますCLI。リソース固有のログ記録では、特定のモノのグループに特定のログ記録レベルを指定できます。
モノグループには別のモノグループを含めて、階層的な関係を作成することができます。この手順では、単一のモノグループのログ記録を設定する方法について説明します。階層内の親モノグループにこの手順を適用することにより、階層内のすべてのモノグループに対してログ記録を設定することもできます。この手順を子モノグループに適用して、親のログ記録設定をオーバーライドすることもできます。
モノはモノのグループのメンバーにすることができます。このメンバーシップにより、モノはモノのグループに適用される設定、ポリシー、および設定を継承できます。モノのグループは、各モノを個別に処理するのではなく、複数のモノにまとめて設定を管理および適用するために使用されます。クライアント ID がモノの名前と一致すると、 AWS IoT Core はクライアントセッションを対応するモノのリソースに自動的に関連付けます。これにより、クライアントセッションは、ログ記録レベルなど、モノが属するモノのグループに適用される設定と設定を継承できます。クライアント ID がモノの名前と一致しない場合は、排他的なモノのアタッチメントを有効にして関連付けを確立できます。詳細については、「AWS IoT モノを MQTT クライアント接続に関連付ける」を参照してください。
モノグループに加えて、デバイスのクライアント ID、ソース IP、プリンシパル ID などのターゲットをログに記録することもできます。
注記
使用するロールの 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
|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-levellog_level
- --log-level
-
指定されたリソースのログを生成する際に使用されるログ記録レベル。有効な値は、DEBUG、INFO、ERROR、WARN、DISABLED です。
aws iot set-v2-logging-level \ --log-target targetType=CLIENT_ID,targetName=
ClientId1
\ --log-levelDEBUG
-
現在設定されているログ記録レベルを一覧表示するには、list-v2-logging-levels
コマンドを使用します。 aws iot list-v2-logging-levels
-
次の例のように、リソース固有のログ記録レベルを削除するには、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
-
すべてのロギングが無効です。