メニュー
AWS Greengrass
開発者ガイド

AWS Greengrass ログでのモニタリング

GGC v1.0.0GGC v1.1.0
GGC v1.0.0

AWS Greengrass は、クラウドサービスと AWS Greengrass コア ソフトウェアで構成されます。AWS Greengrass コア ソフトウェアでは、ログの書き込み先として AWS Greengrass コア デバイスのローカルファイルシステムまたは CloudWatch Logs を指定できます。ログコンポーネントのイベントのログ記録先としてローカルファイルシステムを設定すると、ログファイルは次のディレクトリ構造で /greengrass/var/log の下に保存されます。

Copy
/greengrass/var - log - system - log files for each Greengrass system components - user - log files generated by each Lambda function

ファイルシステムにログを記録する場合、ログデータの量が設定済みの制限に達したときに、サイズベースのローテーションと自動クリーンアップが現在サポートされています。

GGC v1.1.0

AWS Greengrass は、クラウドサービスと AWS Greengrass コア ソフトウェアで構成されます。AWS Greengrass コア ソフトウェアでは、ログの書き込み先として AWS Greengrass コア デバイスのローカルファイルシステムまたは CloudWatch Logs を指定できます。ログコンポーネントのイベントのログ記録先としてローカルファイルシステムを設定すると、ログファイルは次のディレクトリ構造で /greengrass/ggc/var/log の下に保存されます。

Copy
/greengrass/ggc/var - crash.log - system - log files for each Greengrass system components - user - log files generated by each Lambda function

ファイルシステムにログを記録する場合、ログデータの量が設定済みの制限に達したときに、サイズベースのローテーションと自動クリーンアップが現在サポートされています。

Greengrass ログ記録の設定

ログコンポーネントは、次のようなペイロードで Greengrass ログリスト API 経由で設定できます。

Copy
{ "loggingModelList": [ { "Type": "log-storage-type", "Component": component-type, "Level": logging-level, "Space": max-storage }, { "Type": ... , "Level": ... , ... } ] }
Type

AWSCloudWatch および FileSystem. このフィールドでは、ログイベントに使用するストレージメカニズムを指定します。AWSCloudWatch を使用すると、ログイベントは CloudWatch に送信されます。インターネット接続がない場合の再試行回数は限定されます。再試行回数の上限に達すると、イベントは削除されます。FileSystem を使用すると、ログイベントはローカルファイルシステムに保存されます。

Component

サポートされている値は、GreengrassSystem および Lambda です。GreengrassSystem を使用すると、Greengrass システムコンポーネントからのログイベントは、ログレベルのしきい値に基づいてフィルタされて指定先に保存されます。指定先は Type によって異なります。Lambda を使用すると、ユーザーの Lambda 関数からのログイベントは、ログレベルに基づいてフィルタされて指定先に保存されます。この場合も、指定先は Type によって異なります。

Level

このしきい値に達しないログイベントは除外され、保存されません。

Space

ログを保存するローカルストレージの最大容量 (KB 単位)。このフィールドは、TypeFileSystem に設定した場合にのみ適用されます。

ログ記録を設定しないと、最初のデプロイまでは、AWS Greengrass コア ソフトウェアにログ記録の設定情報が含まれません。次の設定が使用されます。

Copy
[ { "Type": "FileSystem", "Component": "GreengrassSystem", "Level": "INFO", "Space": 128 } ]

最初のデプロイ後に、ログを出力しないように Greengrass ソフトウェアを明示的に設定すると、ログは出力されません。ログ記録を設定しないと、次の設定がデフォルトで使用されます。

Copy
[ { "Type": "FileSystem", "Component": "GreengrassSystem", "Level": "INFO", "Space": 128 }, { "Type": "FileSystem", "Component": "Lambda", "Level": "INFO", "Space": 128 } ]

必要な IAM アクセス権限

CloudWatch へのログ記録を有効にするには、次の CloudWatch Logs アクションが AWS Greengrass グループロールに含まれている必要があります。

  • logs:PutLogEvents

  • logs:CreateLogGroup

  • logs:CreateLogStream

  • logs:DescribeLogStreams

ログの出力

ログコンポーネントのログの書き込み先として CloudWatch を設定すると、次のロググループが表示されます。

Copy
/aws/greengrass/GreengrassSystem/GreengrassSystemComponentName /aws/greengrass/Lambda/aws-region/accountId/lambda-function-name

各ロググループの下に、次の構造でログストリームが表示されます。

Copy
date/accountId/greengrass-group-id/name-of-core-that-generated-log

AWS Greengrass コア ログは、書き込み先がローカルストレージまたは CloudWatch Logs のいずれであっても、同じように表示されます。AWS Greengrass システムログの形式は次のとおりです。

Copy
[<timestamp>][<Log level>]-<error message>

Lambda ログの形式は次のとおりです。

Copy
[<timestamp>][<Log level>]-<error message>

AWS Greengrass ログ記録の制限

1 秒あたりのトランザクション数

CloudWatch へのログ記録を有効にすると、ログイベントはログコンポーネントでローカルにバッチ処理された後で CloudWatch に送信されるため、ログストリームごとに 5 リクエスト/秒よりも高いレートでログを記録できます。

メモリ

AWS Greengrass のログの送信先として CloudWatch を設定し、Lambda 関数で長時間にわたって 5 MB/秒を超えるログを記録すると、内部処理パイプラインが最終的に満杯になります。理論的には Lambda 関数あたり 6 MB で限界に達します。

クロックスキュー

CloudWatch へのログ記録を有効にすると、ログコンポーネントは標準の署名バージョン 4 を使用して CloudWatch へのリクエストに署名します。AWS Greengrass コア デバイスのシステム時刻が同期していない時間が 15 分を超えていると、リクエストは拒否されます。

ディスク使用量

次の式を使用して、ログ記録用の最大の合計ディスク使用量を計算します。

Copy
greengrass-storage * 7 // 6 if IP Detector is not used + 128KB // localwatch internal log + lambda-storage * lambda-count // different versions of a lambda are treated as one.

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

greengrass-storage

AWS Greengrass ログ用の最大のローカルストレージ容量。

lambda-storage

Lambda ログ用の最大のローカルストレージ容量。

lambda-count

Lambda 関数のデプロイ数。

ログの損失

AWS Greengrass コア デバイスのログの記録先として CloudWatch のみを設定した場合、インターネット接続が失われると、現在メモリにあるログは取得されません。

Lambda 関数が (デプロイ時などに) 終了すると、数秒分のログは CloudWatch に書き込まれません。