翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
警告
Log Manager v2.3.5 以降にアップグレードすることをお勧めします。バージョン 2.3.5 は Log Manager 設定の書き込みが最適化され、IO オペレーションを減らし、ログアップロード速度、全体的なデバイスパフォーマンスを向上させ、デバイスの寿命が延びます。
ログマネージャーコンポーネント (aws.greengrass.LogManager
) は、 AWS IoT Greengrass コアデバイスから Amazon CloudWatch Logs にログをアップロードします。Greengrass nucleus、他の Greengrass コンポーネント、Greengrass コンポーネントではない他のアプリケーションとサービスからログをアップロードできます。CloudWatch Logs とローカルファイルシステムのログのモニタリング方法に関する詳細については、「AWS IoT Greengrass ログのモニタリング」を参照してください。
次の考慮事項は、ログマネージャーコンポーネントを使用して CloudWatch Logs に書き込むときに適用されます。
-
ログ遅延
ログマネージャーコンポーネントバージョン 2.2.8 (およびそれ以前) は、ローテーションされたログファイルからのみ、ログを処理およびアップロードします。デフォルトでは、 AWS IoT Greengrass Core ソフトウェアは 1 時間ごと、または 1,024 KB のログファイルをローテーションします。その結果、ログマネージャーコンポーネントは、 AWS IoT Greengrass Core ソフトウェアまたは Greengrass コンポーネントが 1,024 KB を超えるログを書き込んだ後にのみログをアップロードします。ログファイルの容量上限を低く設定して、ログファイルのローテーション頻度を上げることができます。これにより、ログマネージャーコンポーネントが CloudWatch Logs にログをアップロードする頻度が高くなります。
ログマネージャーコンポーネントバージョン 2.3.0 (およびそれ以降) は、すべてのログを処理およびアップロードします。新しいログを書き込むと、ログマネージャーバージョン 2.3.0 (およびそれ以降) は、ローテーションを待つことなく、そのアクティブなログファイルを処理して直接アップロードします。そのため、5 分以内に新しいログを表示することができます。
ログマネージャーコンポーネントは、新しいログを定期的にアップロードします。デフォルトで、ログマネージャーコンポーネントは 5 分ごとに新しいログをアップロードします。
periodicUploadIntervalSec
を設定することで、ログマネージャーコンポーネントがより頻繁に CloudWatch Logs にログをアップロードするように、より短いアップロード間隔を設定できます。この定期的な間隔を設定する方法の詳細については、「設定」を参照してください。ログは、同じ Greengrass ファイルシステムからほぼリアルタイムでアップロードできます。ログをリアルタイムで監視する必要がある場合、ファイルシステムログの使用を検討してください。
注記
ログの書き込み先として別のファイルシステムを使用している場合、ログマネージャーは、ログマネージャーコンポーネントバージョン 2.2.8 以前の動作に戻ります。ファイルシステムログへのアクセスについては、「ファイルシステムログをアクセス」を参照してください。
-
クロックスキュー
ログマネージャーコンポーネントは、標準の署名バージョン 4 の署名プロセスを使用して、CloudWatch Logs への API 要求を作成します。コアデバイスのシステム時刻が同期していない時間が 15 分を超えると、CloudWatch Logs は要求を拒否します。詳細については、「AWS 全般のリファレンス」の「署名バージョン 4 の署名プロセス」を参照してください。
このコンポーネントがログをアップロードするロググループとログストリームの情報については、「使用方法」を参照してください。
バージョン
このコンポーネントには、次のバージョンがあります。
-
2.3.x
-
2.2.x
-
2.1.x
-
2.0.x
タイプ
このコンポーネントはプラグインコンポーネント (aws.greengrass.plugin
) です。Greengrass nucleus は、nucleus と同じ Java バーチャルマシン (JVM) でこのコンポーネントを実行します。コアデバイスでこのコンポーネントのバージョンを変更するとき、nucleus が再起動します。
このコンポーネントは、Greengrass nucleus と同じログファイルを使用します。詳細については、「AWS IoT Greengrass ログのモニタリング」を参照してください。
詳細については、「コンポーネントタイプ」を参照してください。
オペレーティングシステム
このコンポーネントは、次のオペレーティングシステムを実行するコアデバイスにインストールできます。
リナックス
Windows
要件
このコンポーネントには次の要件があります。
-
次の IAM ポリシーの例で示されているように、Greengrass デバイスのロールは、
logs:CreateLogGroup
、logs:CreateLogStream
、logs:PutLogEvents
、logs:DescribeLogStreams
アクションを許可する必要があります。{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Effect": "Allow", "Resource": "arn:aws:logs:*:*:*" } ] }
注記
AWS IoT Greengrass Core ソフトウェアのインストール時に作成する Greengrass デバイスロールには、このポリシー例のアクセス許可がデフォルトで含まれています。
詳細については、「Amazon CloudWatch Logs ユーザーガイド」の「CloudWatch Logs 用アイデンティティベースのポリシー (IAM ポリシー) の使用」を参照してください。
-
ログマネージャーコンポーネントは、VPC での実行がサポートされるようになりました。このコンポーネントを VPC にデプロイするには、以下が必要です。
-
ログマネージャーコンポーネントには、VPC エンドポイントが
com.amazonaws.us-east-1.logs
であるlogs.region.amazonaws.com
への接続が必要です。
-
エンドポイントおよびポート
このコンポーネントは、基本的な操作に必要なエンドポイントとポートに加えて、次のエンドポイントとポートに対し、アウトバウンドリクエストを実行できる必要があります。詳細については、「プロキシまたはファイアウォールを介したデバイストラフィックを許可する」を参照してください。
エンドポイント | ポート | 必要 | 説明 |
---|---|---|---|
|
443 | いいえ |
ログを CloudWatch Logs に書き込む場合に必要です。 |
依存関係
コンポーネントをデプロイすると、 はその依存関係の互換性のあるバージョン AWS IoT Greengrass もデプロイします。つまり、コンポーネントを正常にデプロイするには、コンポーネントとその依存関係のすべての要件を満たす必要があります。このセクションでは、このコンポーネントのリリースされたバージョンの依存関係と、各依存関係に対するコンポーネントのバージョンを定義するセマンティックバージョン制約をリスト表示しています。コンポーネントの各バージョンの依存関係は、AWS IoT Greengrass コンソール
次の表に、このコンポーネントのバージョン 2.3.9 の依存関係を示します。
依存関係 | 互換性のあるバージョン | 依存関係タイプ |
---|---|---|
Greengrass nucleus | >=2.1.0 <2.15.0 | ソフト |
コンポーネントの依存関係の詳細については、「コンポーネント recipe のリファレンス」を参照してください。
設定
このコンポーネントには、コンポーネントのデプロイ時にカスタマイズできる次の設定パラメータが用意されています。
logsUploaderConfiguration
-
(オプション) ログマネージャーコンポーネントがアップロードするログの設定。このオブジェクトには、次の情報が含まれます。
-
systemLogsConfiguration
-
(オプション) Greengrass nucleus とプラグインコンポーネントからのログを含む Core AWS IoT Greengrass ソフトウェアシステムログの設定。ログマネージャーコンポーネントがシステムログを管理できるようにするため、この設定を指定します。このオブジェクトには、次の情報が含まれます。
uploadToCloudWatch
-
(オプション) CloudWatch Logs にシステムログをアップロードできます。
デフォルト:
false
minimumLogLevel
-
(オプション) アップロードするログメッセージの最小レベル。この最小レベルは、Greengrass nucleus コンポーネントが JSON 形式のログを出力するように設定した場合のみ、適用されます。JSON 形式のログを有効にするには、ログ形式パラメータ (
logging.format
) のJSON
を指定します。こちらにレベル順に一覧表示されているログレベルから選択します。
-
DEBUG
-
INFO
-
WARN
-
ERROR
デフォルト:
INFO
-
diskSpaceLimit
-
(オプション) Greengrass システムログファイルの最大合計サイズ (
diskSpaceLimitUnit
で指定する単位)。Greengrass システムログファイルの合計サイズがこの最大合計サイズを超えると、 AWS IoT Greengrass Core ソフトウェアは最も古い Greengrass システムログファイルを削除します。このパラメータは、Greengrass nucleus コンポーネントのログサイズ上限パラメータ (
totalLogsSizeKB
) と同等です。 AWS IoT Greengrass Core ソフトウェアは、Greengrass システムログの最大合計サイズとして 2 つの値の最小値を使用します。 diskSpaceLimitUnit
-
(オプション)
diskSpaceLimit
の単位。次のオプションから選択します。-
KB
- キロバイト -
MB
- メガバイト -
GB
- ギガバイト
デフォルト:
KB
-
deleteLogFileAfterCloudUpload
-
(オプション) ログマネージャーコンポーネントが CloudWatch Logs にログをアップロードしたら、ログファイルを削除できます。
デフォルト:
false
-
componentLogsConfigurationMap
-
(オプション) コアデバイスのコンポーネント用ログ設定のマップ。このマップにある各
componentName
オブジェクトは、コンポーネントまたはアプリケーションのログ設定を定義します。ログマネージャーコンポーネントは、これらのコンポーネントのログを CloudWatch Logs にアップロードします。重要
コンポーネントごとに 1 つの設定キーを使用することを強くお勧めします。
logFileRegex
を使用するときは、アクティブに書き込まれているログファイルが 1 つしかないファイルのグループのみに的を絞ってください。この推奨事項に従わない場合、重複したログが CloudWatch にアップロードされる可能性があります。単一の正規表現で複数のアクティブなログファイルを対象とする場合は、ログマネージャーを v2.3.1 以降にアップグレードし、設定例を使用した設定変更のご検討をお勧めします。注記
v2.2.0 より前のバージョンのログマネージャーからアップグレードする場合、
componentLogsConfigurationMap
ではなく、componentLogsConfiguration
リストを使い続けることができます。ただし、マージとリセットの更新を使用して特定コンポーネントの設定を修正できるように、マップ形式を使用することを強くお勧めします。componentLogsConfiguration
パラメータの情報については、このコンポーネントの v2.1.x の設定パラメータを参照してください。componentName
-
コンポーネントのログ設定またはこのログ設定のアプリケーション。Greengrass コンポーネントの名前または別の値を指定して、このロググループを識別できます。componentName
各オブジェクトには、次の情報が含まれます:
minimumLogLevel
-
(オプション) アップロードするログメッセージの最小レベル。この最小レベルは、このコンポーネントのログが特定の JSON 形式を使用している場合にのみ適用されます。JSON 形式については、GitHub の AWS IoT Greengrass ログモジュール
リポジトリで確認できます。 こちらにレベル順に一覧表示されているログレベルから選択します。
-
DEBUG
-
INFO
-
WARN
-
ERROR
デフォルト:
INFO
-
diskSpaceLimit
-
(オプション) このコンポーネントにおけるすべてのログファイルの最大合計サイズ (
diskSpaceLimitUnit
で指定する単位)。このコンポーネントのログファイルの合計サイズがこの最大合計サイズを超えると、 AWS IoT Greengrass Core ソフトウェアはこのコンポーネントの最も古いログファイルを削除します。このパラメータは、Greengrass nucleus コンポーネントのログサイズ上限パラメータ (
totalLogsSizeKB
) に関連しています。 AWS IoT Greengrass Core ソフトウェアは、このコンポーネントの最大合計ログサイズとして 2 つの値の最小値を使用します。 diskSpaceLimitUnit
-
(オプション)
diskSpaceLimit
の単位。次のオプションから選択します。-
KB
- キロバイト -
MB
- メガバイト -
GB
- ギガバイト
デフォルト:
KB
-
logFileDirectoryPath
-
(オプション) このコンポーネントのログファイルを含むフォルダへのパス。
標準出力 (stdout) と標準エラー (stderr) に出力する Greengrass コンポーネントには、このパラメータを指定する必要はありません。
デフォルト:
。
/logs/greengrass/v2
logFileRegex
-
(オプション) コンポーネントまたはアプリケーションが使用するログファイル名の形式を指定する正規表現。ログマネージャーコンポーネントは、この正規表現を使用して
logFileDirectoryPath
のフォルダのログファイルを識別します。標準出力 (stdout) と標準エラー (stderr) に出力する Greengrass コンポーネントには、このパラメータを指定する必要はありません。
コンポーネントまたはアプリケーションがログファイルをローテーションする場合、ローテーションされたログファイル名と一致する正規表現を指定します。例えば、
hello_world\\\\w*.log
が Hello World アプリケーションにログをアップロードするように指定します。\\\\w*
パターンは、英数字とアンダースコアを含むゼロ以上の単語文字と一致します。この正規表現は、名前のタイムスタンプの有無にかかわらず、ログファイルを照合します。この例では、ログマネージャーは次のログファイルをアップロードします。-
hello_world.log
- Hello World アプリケーションの最新ログファイル。 -
hello_world_2020_12_15_17_0.log
- Hello World アプリケーションの古いログファイル。
デフォルト:
componentName
がこのログ設定におけるコンポーネントの名前である場合の
。componentName
\\\\w*.log -
deleteLogFileAfterCloudUpload
-
(オプション) ログマネージャーコンポーネントが CloudWatch Logs にログをアップロードしたら、ログファイルを削除できます。
デフォルト:
false
multiLineStartPattern
-
(オプション) 新しい行のログメッセージが新しいログメッセージであるときに識別する正規表現。正規表現が新しい行と一致しない場合、ログマネージャーコンポーネントは新しい行を前の行のログメッセージに追加します。
デフォルトでは、ログマネージャーコンポーネントは、行が空白文字 (タブまたはスペースなど) で始まるかどうかについてチェックします。そうでない場合、ログマネージャーはその行を新しいログメッセージとして処理します。それ以外の場合、その行を現在のログメッセージに追加します。この動作により、ログマネージャーコンポーネントが複数行 (スタックトレースなど) にまたがるメッセージを分割しないようにします。
-
-
periodicUploadIntervalSec
-
(オプション) ログマネージャーコンポーネントがアップロードする新しいログファイルをチェックする期間 (秒)。
デフォルト:
300
(5 分)最小:
0.000001
(1 マイクロ秒) deprecatedVersionSupport
-
ログマネージャーが v2.3.5 で導入されたロギング速度の向上を使用するかどうかを示します。値を
false
に設定してこの機能強化を使用します。ログマネージャー v2.3.1 以前からアップグレードするときにこの値を
false
に設定すると、重複したログエントリがアップロードされる場合があります。デフォルト:
true
。
例: 設定マージの更新
次の設定例では、システムログと com.example.HelloWorld
コンポーネントログを CloudWatch Logs にアップロードすることを指定しています。
{
"logsUploaderConfiguration": {
"systemLogsConfiguration": {
"uploadToCloudWatch": "true",
"minimumLogLevel": "INFO",
"diskSpaceLimit": "10",
"diskSpaceLimitUnit": "MB",
"deleteLogFileAfterCloudUpload": "false"
},
"componentLogsConfigurationMap": {
"com.example.HelloWorld": {
"minimumLogLevel": "INFO",
"diskSpaceLimit": "20",
"diskSpaceLimitUnit": "MB",
"deleteLogFileAfterCloudUpload": "false"
}
}
},
"periodicUploadIntervalSec": "300",
"deprecatedVersionSupport": "false"
}
例: ログマネージャー v2.3.1 を使用して、複数のアクティブなログファイルをアップロードための設定
複数のアクティブなログファイルを対象にする場合は、次の設定例が推奨されます。この設定例では、CloudWatch にアップロードするアクティブなログファイルを指定します。この設定例を使用すると、logFileRegex
に一致するローテーションファイルもアップロードされます。この設定例は、ログマネージャー v2.3.1 でサポートされています。
{
"logsUploaderConfiguration": {
"componentLogsConfigurationMap": {
"com.example.A": {
"logFileRegex": "com.example.A\\w*.log",
"deleteLogFileAfterCloudUpload": "false"
}
"com.example.B": {
"logFileRegex": "com.example.B\\w*.log",
"deleteLogFileAfterCloudUpload": "false"
}
}
},
"periodicUploadIntervalSec": "10"
}
使用方法
ログマネージャーコンポーネントは、次のロググループとログストリームにアップロードされます。
- ロググループ名
-
/aws/greengrass/
componentType
/region
/componentName
ロググループ名は、次の変数を使用します。
-
componentType
- 次のいずれかに該当するコンポーネントのタイプ。-
GreengrassSystemComponent
- このロググループには、Greengrass nucleus と同じ JVM で実行される nucleus とプラグインコンポーネントのログが含まれます。コンポーネントは Greengrass nucleus の一部です。 -
UserComponent
- このロググループには、ジェネリックコンポーネント、Lambda コンポーネント、デバイスの他のアプリケーションのログが含まれます。コンポーネントは Greengrass nucleus の一部ではありません。
詳細については、「コンポーネントタイプ」を参照してください。
-
-
region
– コアデバイスが使用する AWS リージョン。 -
componentName
- コンポーネントの名前。システムログの場合、この値はSystem
です。
-
- ログストリーム名
-
/
date
/thing/thingName
ログストリーム名は次の変数を使用します。
-
date
-2020/12/15
など、ログの日付。ログマネージャーコンポーネントはyyyy/MM/dd
形式を使用します。 -
thingName
- コアデバイスの名前。
注記
モノの名前にコロン (
:
) が含まれている場合、ログマネージャーはコロンをプラス (+
) に置き換えます。 -
ログエントリのフォーマット。
Greengrass nucleus は、文字列または JSON 形式でログファイルを書きます。システムログの場合、logging
エントリーの format
フィールドを設定することでフォーマットを制御します。Greengrass nucleus コンポーネントの設定ファイルに logging
エントリが記載されています。詳細については、Greengrass nucleus 設定を参照してください。
テキスト形式は自由形式で、任意の文字列を受け付けます。次のフリート状況サービスメッセージは、文字列形式のロギングの例です:
2023-03-26T18:18:27.271Z [INFO] (pool-1-thread-2)
com.aws.greengrass.status.FleetStatusService: fss-status-update-published.
Status update published to FSS. {trigger=CADENCE, serviceName=FleetStatusService,
currentState=RUNNING}
Greengrass CLI のログコマンドでログを表示したり、プログラムでログを操作する場合は、JSON 形式を使用する必要があります。次の例では、JSON の形状の概要を説明します:
{
"loggerName": <string>,
"level": <"DEBUG" | "INFO" | "ERROR" | "TRACE" | "WARN">,
"eventType": <string, optional>,
"cause": <string, optional>,
"contexts": {},
"thread": <string>,
"message": <string>,
"timestamp": <epoch time> # Needs to be epoch time
}
コンポーネントのログの出力を制御するために、minimumLogLevel
設定オプションを使用することができます。このオプションを使用するには、コンポーネントが JSON 形式でログエントリーを書き込む必要があります。システムログファイルと同じ形式を使用する必要があります。
ローカルログファイル
このコンポーネントは、Greengrass nucleus コンポーネントと同じログファイルを使用します。
/logs/greengrass.log
/greengrass/v2
このコンポーネントのログを確認するには
-
コアデバイスに次のコマンドを実行して、このコンポーネントのログファイルをリアルタイムに確認します。
または/greengrass/v2
C:\greengrass\v2
を AWS IoT Greengrass ルートフォルダへのパスに置き換えます。sudo tail -f
/logs/greengrass.log/greengrass/v2
変更ログ
次の表は、コンポーネントの各バージョンにおける変更を示します。
バージョン |
変更 |
---|---|
2.3.9 |
Greengrass nucleus バージョン 2.14.0 のリリース用にバージョンが更新されました。 |
2.3.8 |
Greengrass nucleus バージョン 2.13.0 のリリース用にバージョンが更新されました。 |
2.3.7 |
Greengrass nucleus バージョン 2.12.0 のリリース用にバージョンが更新されました。 |
2.3.6 |
|
2.3.5 |
|
2.3.4 |
|
2.3.3 |
Greengrass nucleus バージョン 2.10.0 のリリース用にバージョンが更新されました。 |
2.3.2 |
|
2.3.1 |
|
2.3.0 |
注記ログマネージャー 2.3.0 にアップグレードする場合は、Greengrass nucleus 2.9.1 にアップグレードすることをお勧めします。
|
2.2.8 |
Greengrass nucleus バージョン 2.9.0 のリリース用にバージョンが更新されました。 |
2.2.7 |
Greengrass nucleus バージョン 2.8.0 のリリース用にバージョンが更新されました。 |
2.2.6 |
Greengrass nucleus バージョン 2.7.0 のリリース用にバージョンが更新されました。 |
2.2.5 |
Greengrass nucleus バージョン 2.6.0 のリリース用にバージョンが更新されました。 |
2.2.4 |
|
2.2.3 |
|
2.2.2 |
|
2.2.1 |
Greengrass nucleus バージョン 2.5.0 のリリース用にバージョンが更新されました。 |
2.2.0 |
|
2.1.3 |
Greengrass nucleus バージョン 2.4.0 のリリース用にバージョンが更新されました。 |
2.1.2 |
Greengrass nucleus バージョン 2.3.0 のリリース用にバージョンが更新されました。 |
2.1.1 |
|
2.1.0 |
|
2.0.x |
当初のバージョン |