AWS IoT Greengrass Version 1 は 2023 年 6 月 30 日に延長ライフフェーズに参加しました。詳細については、「AWS IoT Greengrass V1 メンテナンスポリシー」を参照してください。この日以降、 AWS IoT Greengrass V1 は機能、機能強化、バグ修正、またはセキュリティパッチを提供する更新をリリースしません。で実行されるデバイスは中断 AWS IoT Greengrass V1 されず、引き続き動作し、クラウドに接続します。に移行することを強くお勧めします。 AWS IoT Greengrass Version 2これにより、重要な新機能が追加され、プラットフォーム のサポートが追加されます。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS IoT Greengrass ログでのモニタリング
AWS IoT Greengrass は、クラウドサービスと AWS IoT Greengrass Core ソフトウェアで設定されます。AWS IoT Greengrass Core ソフトウェアは、Amazon CloudWatch とコアデバイスのローカルファイルシステムにログを書き込むことができます。コアで実行されている Lambda 関数とコネクタは、 CloudWatch Logs とローカルファイルシステムにログを書き込むこともできます。問題をトラブルシューティングするには、ログを使用してイベントをモニタリングします。AWS IoT Greengrass ログエントリにはすべて、タイムスタンプ、ログレベル、イベントに関する情報が含まれています。ログ設定の変更は、グループをデプロイした後に有効になります。
ログ記録は、グループレベルで設定されます。Greengrass グループのログ記録を設定する方法を示すステップについては、AWS IoT Greengrass のログ記録の設定 を参照してください。
CloudWatch ログへのアクセス
CloudWatch ログ記録を設定すると、Amazon CloudWatch コンソールのログページでログを表示できます。AWS IoT Greengrass ログのロググループは、次の命名規則を使用します。
/aws/greengrass/GreengrassSystem/greengrass-system-component-name
/aws/greengrass/Lambda/aws-region
/account-id
/lambda-function-name
各ロググループには、次の命名規則を使用するログストリームが含まれています。
date
/account-id
/greengrass-group-id
/name-of-core-that-generated-log
CloudWatch Logs を使用する場合は、次の考慮事項が適用されます。
-
インターネット接続がない場合、ログは制限された再試行回数で CloudWatch Logs に送信されます。再試行回数の上限に達すると、イベントは削除されます。
-
トランザクション、メモリ、その他の制限が適用されます。詳細については、「ログ記録の制限」を参照してください。
-
Greengrass グループロールでは、 AWS IoT Greengrassが CloudWatch ログに書き込むことを許可する必要があります。アクセス許可を付与するには、グループロールに次のインラインポリシーを組み込みます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
注記
詳細なアクセス権をログリソースに付与することができます。詳細については、「Amazon CloudWatch ユーザーガイド」の CloudWatch 「 ログにアイデンティティベースのポリシー (IAM ポリシー) を使用する」を参照してください。
グループロールは、ユーザーが作成して Greengrass グループにアタッチした IAM ロールです。コンソールまたは AWS IoT Greengrass API を使用して、グループロールを管理できます。
- コンソールの使用
-
AWS IoT コンソールのナビゲーションペインの [Manage](管理)で、[Greengrass devices](Greengrass デバイス)を展開して、[Group (V1)](グループ (V1))を選択します。
ターゲットグループを選択します。
-
[View Settings] (設定を表示) をクリックします。[Group role] (グループロール) では、グループロールを表示、関連付けまたは関連付けの解除ができます。
グループロールをアタッチする手順については、「グループロール」を参照してください。
- CLI の使用
-
-
グループロールを検索するには、 get-associated-role コマンドを使用します。
-
グループロールをアタッチするには、 associate-role-to-group コマンドを使用します。
-
グループロールを削除するには、 disassociate-role-from-group コマンドを使用します。
これらのコマンドで使用するグループ ID を取得する方法については、「グループ ID の取得」を参照してください。
-
ファイルシステムログへのアクセス
ファイルシステムのログ記録を設定すると、ログファイルは、コアデバイスの
に保存されます。高レベルのディレクトリ構造を以下に示します。greengrass-root
/ggc/var/log
greengrass-root
/ggc/var/log
- crash.log
- system
- log files for each Greengrass system component
- user
- region
- account-id
- log files generated by each user-defined Lambda function
- aws
- log files generated by each connector
注記
デフォルトでは、greengrass-root
は /greengrass
ディレクトリです。書き込みディレクトリが設定されている場合には、ログはこのディレクトリにあります。
以下の考慮事項は、ファイルシステムログを使用する場合に適用されます。
-
ファイルシステムの AWS IoT Greengrass ログを確認するには、ルート権限が必要です。
-
AWS IoT Greengrass には、ログデータの量が設定済みの制限に達したときに、サイズベースのローテーションと自動クリーンアップがサポートされています。
-
crash.log
ファイルは、ファイルシステムログでのみ使用できます。このログは CloudWatch Logs に書き込まれません。 -
ディスク使用量の制限が適用されます。詳細については、「ログ記録の制限」を参照してください。
注記
AWS IoT Greengrass Core ソフトウェア v1.0 のログは、
ディレクトリに保存されます。greengrass-root
/var/log
デフォルトのログ記録設定
ログ記録設定が明示的に設定されていない場合は、AWS IoT Greengrass は、最初のグループのデプロイ後に以下の既定のログ記録設定を使用します。
- AWS IoT Greengrass システムコンポーネント
-
-
タイプ -
FileSystem
-
コンポーネント -
GreengrassSystem
-
レベル -
INFO
-
スペース -
128 KB
-
- ユーザー定義 Lambda 関数
-
-
タイプ -
FileSystem
-
コンポーネント -
Lambda
-
レベル -
INFO
-
スペース -
128 KB
-
注記
最初のデプロイ前に、ユーザー定義の Lambda 関数がデプロイされていないため、システムコンポーネントだけがファイルシステムにログを書き込みます。
AWS IoT Greengrass のログ記録の設定
AWS IoT コンソールまたは AWS IoT Greengrass APIs を使用して、AWS IoT Greengrass ログ記録を設定できます。
注記
AWS IoT Greengrass が CloudWatch ログにログを書き込むことを許可するには、グループロールが必要な CloudWatch ログアクション を許可する必要があります。
ログ記録の設定 (コンソール)
グループの [設定] ページでログ記録を設定できます。
AWS IoT コンソールのナビゲーションペインの [Manage](管理)で、[Greengrass devices](Greengrass デバイス)を展開して、[Group (V1)](グループ (V1))を選択します。
-
ログ記録を設定するグループを選択します。
-
グループの設定ページで、[Logs] (ログ) タブを選択します。
-
次のようにログ記録の場所を選択します。
-
CloudWatch ログ記録を設定するには、CloudWatch ログ設定 で の編集 を選択します。
-
ファイルシステムログ記録を設定するには、[Local logs configuration] (ローカルログ設定) の、[Edit] (編集) を選択します。
1 つの場所または両方の場所のログ記録を設定できます。
-
-
ログの編集設定モーダルで、[Greengrass system log level] (Greengrass システムのログレベル) または [User Lambda functions log level] (ユーザーの Lambda 関数のログレベル) を選択します。1 つのコンポーネントまたは両方のコンポーネントを選択することができます。
-
ログに記録するイベントの最低レベルを選択します。このしきい値に達しないイベントは除外され、保存されません。
-
[保存] を選択します。変更は、グループをデプロイした後に有効になります。
ログ記録の設定 (API)
AWS IoT Greengrass ロガー API を使用して、プログラムでログ記録を設定できます。例えば、CreateLoggerDefinition
アクションを使用して、LoggerDefinitionVersion
ペイロードに基づくロガー定義を作成します。これは、次の構文を使用します。
{ "Loggers": [ { "Id": "string", "Type": "FileSystem|AWSCloudWatch", "Component": "GreengrassSystem|Lambda", "Level": "DEBUG|INFO|WARN|ERROR|FATAL", "Space": "integer" }, { "Id": "string", ... } ] }
LoggerDefinitionVersion
は、次のプロパティを持つ 1 つ以上の Logger
オブジェクトの配列です。
Id
-
ロガーの識別子。
Type
-
ログイベントのストレージメカニズム。
AWSCloudWatch
を使用すると、ログイベントが CloudWatch ログに送信されます。FileSystem
を使用すると、ログイベントはローカルファイルシステムに保存されます。有効な値:
AWSCloudWatch
、FileSystem
Component
-
ログイベントのソース。
GreengrassSystem
を使用すると、Greengrass システムコンポーネントのイベントがログに記録されます。Lambda
を使用すると、ユーザー定義の Lambda 関数のイベントがログに記録されます。有効な値:
GreengrassSystem
、Lambda
Level
-
ログレベルのしきい値。このしきい値に達しないログイベントは除外され、保存されません。
有効な値:
DEBUG
、INFO
(推奨)、WARN
、ERROR
、FATAL
Space
-
ログを保存するローカルストレージの最大容量 (KB 単位)。このフィールドは、
Type
をFileSystem
に設定した場合にのみ適用されます。
設定例
次の LoggerDefinitionVersion
の例では、次のようなログ記録設定を指定しています。
-
AWS IoT Greengrass システムコンポーネントのファイルシステム
ERROR
以上のログ記録を有効にします。 -
ユーザー定義の Lambda 関数のファイルシステム
INFO
(以上) のログ記録を有効にします。 -
ユーザー定義の Lambda 関数の (およびそれ以上) ログ記録をオンに CloudWatch
INFO
します。
{ "Name": "LoggingExample", "InitialVersion": { "Loggers": [ { "Id": "1", "Component": "GreengrassSystem", "Level": "ERROR", "Space": 10240, "Type": "FileSystem" }, { "Id": "2", "Component": "Lambda", "Level": "INFO", "Space": 10240, "Type": "FileSystem" }, { "Id": "3", "Component": "Lambda", "Level": "INFO", "Type": "AWSCloudWatch" } ] } }
ロガー定義バージョンを作成した後、そのバージョン ARN を使用して、グループをデプロイする前にグループバージョンを作成できます。
ログ記録の制限
AWS IoT Greengrass には次のログ記録の制限があります。
1 秒あたりのトランザクション
へのログ記録を有効にすると、ログ記録コンポーネント CloudWatch はログイベントを に送信する前にローカルでバッチ処理するため CloudWatch、ログストリームごとに 1 秒あたり 5 リクエストを超えるレートでログを記録できます。
「メモリ」
AWS IoT Greengrass が にログを送信するように設定 CloudWatch され、Lambda 関数が長時間 5 MB/秒を超えるログを記録する場合、内部処理パイプラインは最終的にいっぱいになります。理論的には Lambda 関数あたり 6 MB で限界に達します。
クロックスキュー
へのログ記録が有効になっている場合、ログ記録コンポーネント CloudWatch は通常の署名バージョン 4 の署名プロセスを使用して への CloudWatchリクエストに署名します。AWS IoT Greengrass コアデバイスのシステム時刻が同期していない時間が 15 分を超えていると、リクエストは拒否されます。
ディスク使用量
次の式を使用して、ログ記録用の最大の合計ディスク使用量を計算します。
greengrass-system-component-space
* 8 // 7 if automatic IP detection is disabled
+ 128KB // the internal log for the local logging component
+ lambda-space
* lambda-count
// different versions of a Lambda function are treated as one
実行する条件は以下のとおりです。
greengrass-system-component-space
-
AWS IoT Greengrass システムコンポーネントログのローカルストレージの最大量。
lambda-space
-
Lambda 関数のログ用の最大のローカルストレージ容量。
lambda-count
-
Lambda 関数のデプロイ数。
ログの損失
AWS IoT Greengrass コアデバイスが にのみログ記録するように設定 CloudWatch されていて、インターネット接続がない場合、現在メモリ内にあるログを取得する方法はありません。
Lambda 関数が終了すると (デプロイ中など)、数秒分のログは に書き込まれません CloudWatch。
CloudTrail ログ
AWS IoT Greengrass は AWS CloudTrail と統合されています。これは、ユーザー、ロール、または AWS IoT Greengrass の AWS サービスによって実行されたアクションを記録するサービスです。詳細については、「AWS IoT Greengrass による AWS CloudTrail API コールのログ記録」を参照してください。