本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
日誌管理器
日誌管理器元件 (aws.greengrass.LogManager
) 會將日誌從 AWS IoT Greengrass 核心裝置上傳到 Amazon CloudWatch 日誌。您可以從 Greengrass 核心、其他 Greengrass 元件,以及其他不是 Greengrass 元件的應用程式和服務上傳記錄檔。如需如何在記錄檔和本機檔案系統中監視 CloudWatch 記錄的詳細資訊,請參閱監控AWS IoT Greengrass日誌。
當您使用記錄檔管理員元件寫入 CloudWatch 記錄檔時,需要考量下列事項:
-
記錄延遲
我們建議您升級至記錄檔管理員 2.3.0 版,以減少輪換和使用中記錄檔的記錄延遲。當您升級至記錄檔管理員 2.3.0 時,我們建議您也升級至 Greengrass 核心 2.9.1。
記錄管理員元件 2.2.8 版 (及更早版本) 只會從輪換的記錄檔處理和上傳記錄檔。根據預設, AWS IoT Greengrass 核心軟體會每小時或在 1,024 KB 之後輪換記錄檔。因此,記錄管理員元件只會在 AWS IoT Greengrass 核心軟體或 Greengrass 元件寫入超過 1,024 KB 的記錄檔之後上傳記錄檔。您可以設定較低的記錄檔大小限制,使記錄檔更頻繁地旋轉。這會導致記錄檔管理員元件更頻繁地將記錄檔上傳至 CloudWatch 記錄檔。
記錄管理員元件 2.3.0 版 (及更新版本) 會處理並上傳所有記錄檔。當您寫入新的記錄檔時,記錄檔管理員 2.3.0 版 (及更新版本) 會處理並直接上傳該使用中的記錄檔,而不是等待輪換。這意味著您可以在 5 分鐘或更短的時間內查看新日誌。
記錄管理員元件會定期上傳新的記錄檔。根據預設,記錄管理員元件會每 5 分鐘上傳一次新的記錄檔。您可以設定較低的上傳間隔,如此一來,記錄管理員元件會將記錄檔上傳至 CloudWatch 記錄檔的頻率,方法是設定periodicUploadIntervalSec
. 如需如何設定此週期間隔的相關資訊,請參閱組態。
日誌可以從相同的 Greengrass 文件系統以近乎即時的方式上傳。如果您需要即時觀察記錄,請考慮使用檔案系統記錄檔。
如果您使用不同的檔案系統來寫入記錄檔,記錄檔管理員會還原為記錄檔管理員元件 2.2.8 及更早版本中的行為。如需存取檔案系統記錄檔的相關資訊,請參閱存取檔案系統記錄。
-
時鐘偏斜
記錄管理員元件會使用標準的簽章第 4 版簽署程序來建立對 CloudWatch 記錄檔的API要求。如果核心裝置上的系統時間不同步超過 15 分鐘,則 CloudWatch Logs 會拒絕要求。如需詳細資訊,請參閱 AWS 一般參考 中的 Signature 第 4 版簽署程序。
如需有關此元件上傳記錄檔的記錄群組和記錄資料流的資訊,請參閱用量。
版本
此元件具有下列版本:
-
2.3.x 版本
-
2.2.x 版本
-
2.1.x
-
2.0.x
Type
這個組件是一個插件組件(aws.greengrass.plugin
)。Greengrass 核在與核相同的 Java 虛擬機器(JVM)中運行此組件。當您在核心裝置上變更此元件的版本時,核心會重新啟動。
此組件使用與 Greengrass 核相同的日誌文件。如需詳細資訊,請參閱監控AWS IoT Greengrass日誌。
如需詳細資訊,請參閱元件類型。
作業系統
要求
此元件具有下列需求:
-
Greengrass 裝置角色必須允許logs:CreateLogGroup
、logs:CreateLogStream
、和logs:DescribeLogStreams
動作logs:PutLogEvents
,如下列範例原則所示。IAM
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"
],
"Effect": "Allow",
"Resource": "arn:aws:logs:*:*:*"
}
]
}
如需詳細資訊,請參閱 Amazon CloudWatch 日誌使用者指南中的對 CloudWatch 日誌使用以身分識別為基礎的IAM政策 (政策)。
-
支援日誌管理員元件在VPC. 若要在中部署此元件VPC,需要下列項目。
端點和連接埠
除了基本作業所需的端點和連接埠之外,此元件還必須能夠對下列端點和連接埠執行輸出要求。如需詳細資訊,請參閱允許裝置流量透過 Proxy 或防火牆。
端點 |
連線埠 |
必要 |
描述 |
logs.region .amazonaws.com
|
443 |
否 |
如果您將記錄寫入記錄檔,則為 CloudWatch 必要項
|
相依性
部署元件時, AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的需求,才能成功部署元件。本節列出此元件之已發行版本的相依性,以及定義每個相依性之元件版本的語意版本條件約束。您也可以在AWS IoT Greengrass 主控台中檢視元件每個版本的相依性。在元件詳細資料頁面上,尋找 [相依性] 清單。
- 2.3.8
-
下表列出此元件 2.3.8 版的相依性。
- 2.3.7
-
下表列出此元件 2.3.7 版的相依性。
- 2.3.5 and 2.3.6
-
下表列出此元件 2.3.5 和 2.3.6 版的相依性。
- 2.3.3 – 2.3.4
-
下表列出此元件 2.3.3 至 2.3.4 版的相依性。
- 2.2.8 – 2.3.2
-
下表列出此元件 2.2.8 至 2.3.2 版本的相依性。
- 2.2.7
-
下表列出此元件 2.2.7 版的相依性。
- 2.2.6
-
下表列出此元件 2.2.6 版的相依性。
- 2.2.5
-
下表列出此元件 2.2.5 版的相依性。
- 2.2.1 - 2.2.4
-
下表列出此元件 2.2.1-2.2.4 版的相依性。
- 2.1.3 and 2.2.0
-
下表列出此元件 2.1.3 和 2.2.0 版本的相依性。
- 2.1.2
-
下表列出此元件 2.1.2 版的相依性。
- 2.1.1
-
下表列出此元件 2.1.1 版的相依性。
- 2.1.0
-
下表列出此元件 2.1.0 版的相依性。
- 2.0.x
-
下表列出此元件 2.0.x 版的相依性。
如需有關元件相依性的詳細資訊,請參閱元件方案參考。
組態
此元件提供下列組態參數,您可以在部署元件時自訂這些參數。
- v2.3.6 – v2.3.7
-
logsUploaderConfiguration
-
(選擇性) 記錄檔管理員元件上傳的記錄檔組態。此物件包含下列資訊:
-
systemLogsConfiguration
-
(選擇性) AWS IoT Greengrass 核心軟體系統記錄的組態,其中包括 Greengrass 核心核心和外掛程式元件的記錄。指定此組態可讓記錄管理員元件管理系統記錄檔管理員。此物件包含下列資訊:
uploadToCloudWatch
-
(選擇性) 您可以將系統記錄上傳至 CloudWatch 記錄檔。
預設:false
minimumLogLevel
-
(選擇性) 要上傳的記錄訊息的最低層級。只有當您將 Greengrass 核心元件設定為輸出格式記錄時,才會套用此最低層級。JSON若要啟用JSON格式記錄檔,JSON
請指定記錄格式參數 (logging.format
)。
從下列記錄層級中進行選擇,依照層級順序列出:
預設:INFO
diskSpaceLimit
-
(選擇性) Greengrass 系統記錄檔的大小上限 (以您在中指定的單位表示)。diskSpaceLimitUnit
在 Greengrass 系統記錄檔的總大小超過此總大小上限之後, AWS IoT Greengrass 核心軟體會刪除最舊的 Greengrass 系統記錄檔。
此參數相當於 Greengrass 核元件的記錄檔大小限制參數 (totalLogsSizeKB
)。 AWS IoT Greengrass 核心軟體使用兩個值中的最小值做為 Greengrass 系統記錄檔大小的最大總計。
diskSpaceLimitUnit
-
(選擇性) 的單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
deleteLogFileAfterCloudUpload
-
(選擇性) 您可以在記錄管理員元件將記錄檔上傳至「記錄檔」之後刪除 CloudWatch 記錄檔。
預設:false
-
componentLogsConfigurationMap
-
(選擇性) 核心裝置上元件的記錄組態對映。此對映中的每個componentName
物件都會定義元件或應用程式的記錄組態。記錄管理員元件會將這些元件記錄檔上傳至 CloudWatch 記錄檔。
我們強烈建議每個元件使用單一組態金鑰。您應該只鎖定只有一個記錄檔的檔案群組,這些記錄檔在使用logFileRegex
. 不遵循此建議可能會導致重複的記錄檔上傳至 CloudWatch。如果您使用單一規則運算式鎖定多個使用中記錄檔,建議您升級至 log Manager v2.3.1 或更新版本,並考慮使用範例組態變更組態。
如果您要從 v2.2.0 之前的日誌管理器版本升級,則可以繼續使用該componentLogsConfiguration
列表而不是。componentLogsConfigurationMap
但是,我們強烈建議您使用對映格式,以便您可以使用合併和重設更新來修改特定零組件的模型組態。如需有關componentLogsConfiguration
參數的資訊,請參閱此元件 v2.1.x 的組態參數。
componentName
-
的記錄檔組態 componentName
此日誌配置的組件或應用程序。您可以指定 Greengrass 元件的名稱或其他值來識別此記錄群組。
每個物件都包含下列資訊:
minimumLogLevel
-
(選擇性) 要上傳的記錄訊息的最低層級。此最低層級僅適用於此元件的記錄檔使用特定JSON格式 (您可以在上的AWS IoT Greengrass
記錄模組儲存庫中找到) GitHub。
從下列記錄層級中進行選擇,依照層級順序列出:
預設:INFO
diskSpaceLimit
-
(選擇性) 此元件的所有記錄檔總大小上限 (以您在中指定的單位表示) diskSpaceLimitUnit
。在此元件的記錄檔總大小超過此最大總大小之後, AWS IoT Greengrass Core 軟體就會刪除此元件最舊的記錄檔。
此參數與 Greengrass 核元件的記錄檔大小限制參數 (totalLogsSizeKB
) 有關。 AWS IoT Greengrass 核心軟體使用兩個值中的最小值做為此元件的最大總記錄大小。
diskSpaceLimitUnit
-
(選擇性) 的單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
logFileDirectoryPath
-
(選擇性) 包含此元件記錄檔之資料夾的路徑。
您不需要為打印到標準輸出(標準輸出)和標準錯誤(stderr)的 Greengrass 組件指定此參數。
預設:/greengrass/v2
/logs
。
logFileRegex
-
(選擇性) 規則運算式,指定元件或應用程式使用的記錄檔名稱格式。記錄管理員元件會使用此規則運算式來識別資料夾中的記錄檔logFileDirectoryPath
。
您不需要為打印到標準輸出(標準輸出)和標準錯誤(stderr)的 Greengrass 組件指定此參數。
如果您的組件或應用程序旋轉日誌文件,請指定與旋轉的日誌文件名稱匹配的正則表達式。例如,您可hello_world\\\\w*.log
以指定為 Hello World 應用程式上傳記錄檔。該\\\\w*
模式匹配零個或多個單詞字符,其中包括字母數字字符和底線。這個正則表達式匹配名稱中有和沒有時間戳的日誌文件。在此範例中,記錄管理員會上傳下列記錄檔:
預設值:componentName
\\\\w*.log
,其中 componentName
是此記錄組態的元件名稱。
deleteLogFileAfterCloudUpload
-
(選擇性) 您可以在記錄管理員元件將記錄檔上傳至「記錄檔」之後刪除 CloudWatch 記錄檔。
預設:false
multiLineStartPattern
-
(選擇性) 識別新行上的記錄訊息何時是新記錄訊息的規則運算式。如果規則運算式不符合新行,則記錄管理員元件會將新行附加至上一行的記錄檔訊息。
根據預設,記錄管理員元件會檢查該行是否以空白字元開頭,例如索引標籤或空格。如果沒有,日誌管理器處理該行作為新的日誌消息。否則,它會將該行附加到當前日誌消息中。此行為可確保記錄檔管理員元件不會分割跨越多行的郵件,例如堆疊追蹤。
-
periodicUploadIntervalSec
-
(選擇性) 記錄管理員元件檢查要上傳之新記錄檔的期間 (以秒為單位)。
預設值:300
(5 分鐘)
最小值:0.000001
(1 微秒)
deprecatedVersionSupport
-
指出記錄檔管理員是否應該使用記錄檔管理員 v2.3.5 中引入的記錄速度改進。將值設定為以false
使用改良功能。
如果您將此值設定為false
當您從記錄管理員 v2.3.1 升級或更早版本的重複記錄項目時,可能會上傳。
預設值為 true
。
範例:組態合併更新
下列範例組態指定將系統記錄檔和com.example.HelloWorld
元件記錄檔上傳至 CloudWatch 記錄檔。
{
"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"
}
- v2.3.x
-
logsUploaderConfiguration
-
(選擇性) 記錄檔管理員元件上傳的記錄檔組態。此物件包含下列資訊:
-
systemLogsConfiguration
-
(選擇性) AWS IoT Greengrass 核心軟體系統記錄的組態,其中包括 Greengrass 核心核心和外掛程式元件的記錄。指定此組態可讓記錄管理員元件管理系統記錄檔管理員。此物件包含下列資訊:
uploadToCloudWatch
-
(選擇性) 您可以將系統記錄上傳至 CloudWatch 記錄檔。
預設:false
minimumLogLevel
-
(選擇性) 要上傳的記錄訊息的最低層級。只有當您將 Greengrass 核心元件設定為輸出格式記錄時,才會套用此最低層級。JSON若要啟用JSON格式記錄檔,JSON
請指定記錄格式參數 (logging.format
)。
從下列記錄層級中進行選擇,依照層級順序列出:
預設:INFO
diskSpaceLimit
-
(選擇性) Greengrass 系統記錄檔的大小上限 (以您在中指定的單位表示)。diskSpaceLimitUnit
在 Greengrass 系統記錄檔的總大小超過此總大小上限之後, AWS IoT Greengrass 核心軟體會刪除最舊的 Greengrass 系統記錄檔。
此參數相當於 Greengrass 核元件的記錄檔大小限制參數 (totalLogsSizeKB
)。 AWS IoT Greengrass 核心軟體使用兩個值中的最小值做為 Greengrass 系統記錄檔大小的最大總計。
diskSpaceLimitUnit
-
(選擇性) 的單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
deleteLogFileAfterCloudUpload
-
(選擇性) 您可以在記錄管理員元件將記錄檔上傳至「記錄檔」之後刪除 CloudWatch 記錄檔。
預設:false
-
componentLogsConfigurationMap
-
(選擇性) 核心裝置上元件的記錄組態對映。此對映中的每個componentName
物件都會定義元件或應用程式的記錄組態。記錄管理員元件會將這些元件記錄檔上傳至 CloudWatch 記錄檔。
我們強烈建議每個元件使用單一組態金鑰。您應該只鎖定只有一個記錄檔的檔案群組,這些記錄檔在使用logFileRegex
. 不遵循此建議可能會導致重複的記錄檔上傳至 CloudWatch。如果您使用單一規則運算式鎖定多個使用中記錄檔,建議您升級至 log Manager v2.3.1,並考慮使用範例設定來變更組態。
如果您要從 v2.2.0 之前的日誌管理器版本升級,則可以繼續使用該componentLogsConfiguration
列表而不是。componentLogsConfigurationMap
但是,我們強烈建議您使用對映格式,以便您可以使用合併和重設更新來修改特定零組件的模型組態。如需有關componentLogsConfiguration
參數的資訊,請參閱此元件 v2.1.x 的組態參數。
componentName
-
的記錄檔組態 componentName
此日誌配置的組件或應用程序。您可以指定 Greengrass 元件的名稱或其他值來識別此記錄群組。
每個物件都包含下列資訊:
minimumLogLevel
-
(選擇性) 要上傳的記錄訊息的最低層級。此最低層級僅適用於此元件的記錄檔使用特定JSON格式 (您可以在上的AWS IoT Greengrass
記錄模組儲存庫中找到) GitHub。
從下列記錄層級中進行選擇,依照層級順序列出:
預設:INFO
diskSpaceLimit
-
(選擇性) 此元件的所有記錄檔總大小上限 (以您在中指定的單位表示) diskSpaceLimitUnit
。在此元件的記錄檔總大小超過此最大總大小之後, AWS IoT Greengrass Core 軟體就會刪除此元件最舊的記錄檔。
此參數與 Greengrass 核元件的記錄檔大小限制參數 (totalLogsSizeKB
) 有關。 AWS IoT Greengrass 核心軟體使用兩個值中的最小值做為此元件的最大總記錄大小。
diskSpaceLimitUnit
-
(選擇性) 的單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
logFileDirectoryPath
-
(選擇性) 包含此元件記錄檔之資料夾的路徑。
您不需要為打印到標準輸出(標準輸出)和標準錯誤(stderr)的 Greengrass 組件指定此參數。
預設:/greengrass/v2
/logs
。
logFileRegex
-
(選擇性) 規則運算式,指定元件或應用程式使用的記錄檔名稱格式。記錄管理員元件會使用此規則運算式來識別資料夾中的記錄檔logFileDirectoryPath
。
您不需要為打印到標準輸出(標準輸出)和標準錯誤(stderr)的 Greengrass 組件指定此參數。
如果您的組件或應用程序旋轉日誌文件,請指定與旋轉的日誌文件名稱匹配的正則表達式。例如,您可hello_world\\\\w*.log
以指定為 Hello World 應用程式上傳記錄檔。該\\\\w*
模式匹配零個或多個單詞字符,其中包括字母數字字符和底線。這個正則表達式匹配名稱中有和沒有時間戳的日誌文件。在此範例中,記錄管理員會上傳下列記錄檔:
預設值:componentName
\\\\w*.log
,其中 componentName
是此記錄組態的元件名稱。
deleteLogFileAfterCloudUpload
-
(選擇性) 您可以在記錄管理員元件將記錄檔上傳至「記錄檔」之後刪除 CloudWatch 記錄檔。
預設:false
multiLineStartPattern
-
(選擇性) 識別新行上的記錄訊息何時是新記錄訊息的規則運算式。如果規則運算式不符合新行,則記錄管理員元件會將新行附加至上一行的記錄檔訊息。
根據預設,記錄管理員元件會檢查該行是否以空白字元開頭,例如索引標籤或空格。如果沒有,日誌管理器處理該行作為新的日誌消息。否則,它會將該行附加到當前日誌消息中。此行為可確保記錄檔管理員元件不會分割跨越多行的郵件,例如堆疊追蹤。
-
periodicUploadIntervalSec
-
(選擇性) 記錄管理員元件檢查要上傳之新記錄檔的期間 (以秒為單位)。
預設值:300
(5 分鐘)
最小值:0.000001
(1 微秒)
範例:組態合併更新
下列範例組態指定將系統記錄檔和com.example.HelloWorld
元件記錄檔上傳至 CloudWatch 記錄檔。
{
"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"
}
範例:使用記錄管理員 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"
}
- v2.2.x
-
logsUploaderConfiguration
-
(選擇性) 記錄檔管理員元件上傳的記錄檔組態。此物件包含下列資訊:
-
systemLogsConfiguration
-
(選擇性) AWS IoT Greengrass 核心軟體系統記錄的組態,其中包括 Greengrass 核心核心和外掛程式元件的記錄。指定此組態可讓記錄管理員元件管理系統記錄檔管理員。此物件包含下列資訊:
uploadToCloudWatch
-
(選擇性) 您可以將系統記錄上傳至 CloudWatch 記錄檔。
預設:false
minimumLogLevel
-
(選擇性) 要上傳的記錄訊息的最低層級。只有當您將 Greengrass 核心元件設定為輸出格式記錄時,才會套用此最低層級。JSON若要啟用JSON格式記錄檔,JSON
請指定記錄格式參數 (logging.format
)。
從下列記錄層級中進行選擇,依照層級順序列出:
預設:INFO
diskSpaceLimit
-
(選擇性) Greengrass 系統記錄檔的大小上限 (以您在中指定的單位表示)。diskSpaceLimitUnit
在 Greengrass 系統記錄檔的總大小超過此總大小上限之後, AWS IoT Greengrass 核心軟體會刪除最舊的 Greengrass 系統記錄檔。
此參數相當於 Greengrass 核元件的記錄檔大小限制參數 (totalLogsSizeKB
)。 AWS IoT Greengrass 核心軟體使用兩個值中的最小值做為 Greengrass 系統記錄檔大小的最大總計。
diskSpaceLimitUnit
-
(選擇性) 的單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
deleteLogFileAfterCloudUpload
-
(選擇性) 您可以在記錄管理員元件將記錄檔上傳至「記錄檔」之後刪除 CloudWatch 記錄檔。
預設:false
-
componentLogsConfigurationMap
-
(選擇性) 核心裝置上元件的記錄組態對映。此對映中的每個componentName
物件都會定義元件或應用程式的記錄組態。記錄管理員元件會將這些元件記錄檔上傳至 CloudWatch 記錄檔。
如果您要從 v2.2.0 之前的日誌管理器版本升級,則可以繼續使用該componentLogsConfiguration
列表而不是。componentLogsConfigurationMap
但是,我們強烈建議您使用對映格式,以便您可以使用合併和重設更新來修改特定零組件的模型組態。如需有關componentLogsConfiguration
參數的資訊,請參閱此元件 v2.1.x 的組態參數。
componentName
-
的記錄檔組態 componentName
此日誌配置的組件或應用程序。您可以指定 Greengrass 元件的名稱或其他值來識別此記錄群組。
每個物件都包含下列資訊:
minimumLogLevel
-
(選擇性) 要上傳的記錄訊息的最低層級。此最低層級僅適用於此元件的記錄檔使用特定JSON格式 (您可以在上的AWS IoT Greengrass
記錄模組儲存庫中找到) GitHub。
從下列記錄層級中進行選擇,依照層級順序列出:
預設:INFO
diskSpaceLimit
-
(選擇性) 此元件的所有記錄檔總大小上限 (以您在中指定的單位表示) diskSpaceLimitUnit
。在此元件的記錄檔總大小超過此最大總大小之後, AWS IoT Greengrass Core 軟體就會刪除此元件最舊的記錄檔。
此參數與 Greengrass 核元件的記錄檔大小限制參數 (totalLogsSizeKB
) 有關。 AWS IoT Greengrass 核心軟體使用兩個值中的最小值做為此元件的最大總記錄大小。
diskSpaceLimitUnit
-
(選擇性) 的單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
logFileDirectoryPath
-
(選擇性) 包含此元件記錄檔之資料夾的路徑。
您不需要為打印到標準輸出(標準輸出)和標準錯誤(stderr)的 Greengrass 組件指定此參數。
預設:/greengrass/v2
/logs
。
logFileRegex
-
(選擇性) 規則運算式,指定元件或應用程式使用的記錄檔名稱格式。記錄管理員元件會使用此規則運算式來識別資料夾中的記錄檔logFileDirectoryPath
。
您不需要為打印到標準輸出(標準輸出)和標準錯誤(stderr)的 Greengrass 組件指定此參數。
如果您的組件或應用程序旋轉日誌文件,請指定與旋轉的日誌文件名稱匹配的正則表達式。例如,您可hello_world\\\\w*.log
以指定為 Hello World 應用程式上傳記錄檔。該\\\\w*
模式匹配零個或多個單詞字符,其中包括字母數字字符和底線。這個正則表達式匹配名稱中有和沒有時間戳的日誌文件。在此範例中,記錄管理員會上傳下列記錄檔:
預設值:componentName
\\\\w*.log
,其中 componentName
是此記錄組態的元件名稱。
deleteLogFileAfterCloudUpload
-
(選擇性) 您可以在記錄管理員元件將記錄檔上傳至「記錄檔」之後刪除 CloudWatch 記錄檔。
預設:false
multiLineStartPattern
-
(選擇性) 識別新行上的記錄訊息何時是新記錄訊息的規則運算式。如果規則運算式不符合新行,則記錄管理員元件會將新行附加至上一行的記錄檔訊息。
根據預設,記錄管理員元件會檢查該行是否以空白字元開頭,例如索引標籤或空格。如果沒有,日誌管理器處理該行作為新的日誌消息。否則,它會將該行附加到當前日誌消息中。此行為可確保記錄檔管理員元件不會分割跨越多行的郵件,例如堆疊追蹤。
-
periodicUploadIntervalSec
-
(選擇性) 記錄管理員元件檢查要上傳之新記錄檔的期間 (以秒為單位)。
預設值:300
(5 分鐘)
最小值:0.000001
(1 微秒)
範例:組態合併更新
下列範例組態指定將系統記錄檔和com.example.HelloWorld
元件記錄檔上傳至 CloudWatch 記錄檔。
{
"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"
}
- v2.1.x
-
logsUploaderConfiguration
-
(選擇性) 記錄檔管理員元件上傳的記錄檔組態。此物件包含下列資訊:
-
systemLogsConfiguration
-
(選擇性) AWS IoT Greengrass 核心軟體系統記錄的組態,其中包括 Greengrass 核心核心和外掛程式元件的記錄。指定此組態可讓記錄管理員元件管理系統記錄檔管理員。此物件包含下列資訊:
uploadToCloudWatch
-
(選擇性) 您可以將系統記錄上傳至 CloudWatch 記錄檔。
預設:false
minimumLogLevel
-
(選擇性) 要上傳的記錄訊息的最低層級。只有當您將 Greengrass 核心元件設定為輸出格式記錄時,才會套用此最低層級。JSON若要啟用JSON格式記錄檔,JSON
請指定記錄格式參數 (logging.format
)。
從下列記錄層級中進行選擇,依照層級順序列出:
預設:INFO
diskSpaceLimit
-
(選擇性) Greengrass 系統記錄檔的大小上限 (以您在中指定的單位表示)。diskSpaceLimitUnit
在 Greengrass 系統記錄檔的總大小超過此總大小上限之後, AWS IoT Greengrass 核心軟體會刪除最舊的 Greengrass 系統記錄檔。
此參數相當於 Greengrass 核元件的記錄檔大小限制參數 (totalLogsSizeKB
)。 AWS IoT Greengrass 核心軟體使用兩個值中的最小值做為 Greengrass 系統記錄檔大小的最大總計。
diskSpaceLimitUnit
-
(選擇性) 的單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
deleteLogFileAfterCloudUpload
-
(選擇性) 您可以在記錄管理員元件將記錄檔上傳至「記錄檔」之後刪除 CloudWatch 記錄檔。
預設:false
-
componentLogsConfiguration
-
(選擇性) 核心裝置上元件的記錄組態清單。此清單中的每個組態都會定義元件或應用程式的記錄組態。記錄管理員元件會將這些元件記錄檔上傳至 CloudWatch 記錄
每個物件都包含下列資訊:
componentName
-
此記錄組態的元件或應用程式名稱。您可以指定 Greengrass 元件的名稱或其他值來識別此記錄群組。
minimumLogLevel
-
(選擇性) 要上傳的記錄訊息的最低層級。此最低層級僅適用於此元件的記錄檔使用特定JSON格式 (您可以在上的AWS IoT Greengrass
記錄模組儲存庫中找到) GitHub。
從下列記錄層級中進行選擇,依照層級順序列出:
預設:INFO
diskSpaceLimit
-
(選擇性) 此元件的所有記錄檔總大小上限 (以您在中指定的單位表示) diskSpaceLimitUnit
。在此元件的記錄檔總大小超過此最大總大小之後, AWS IoT Greengrass Core 軟體就會刪除此元件最舊的記錄檔。
此參數與 Greengrass 核元件的記錄檔大小限制參數 (totalLogsSizeKB
) 有關。 AWS IoT Greengrass 核心軟體使用兩個值中的最小值做為此元件的最大總記錄大小。
diskSpaceLimitUnit
-
(選擇性) 的單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
logFileDirectoryPath
-
(選擇性) 包含此元件記錄檔之資料夾的路徑。
您不需要為打印到標準輸出(標準輸出)和標準錯誤(stderr)的 Greengrass 組件指定此參數。
預設:/greengrass/v2
/logs
。
logFileRegex
-
(選擇性) 規則運算式,指定元件或應用程式使用的記錄檔名稱格式。記錄管理員元件會使用此規則運算式來識別資料夾中的記錄檔logFileDirectoryPath
。
您不需要為打印到標準輸出(標準輸出)和標準錯誤(stderr)的 Greengrass 組件指定此參數。
如果您的組件或應用程序旋轉日誌文件,請指定與旋轉的日誌文件名稱匹配的正則表達式。例如,您可hello_world\\\\w*.log
以指定為 Hello World 應用程式上傳記錄檔。該\\\\w*
模式匹配零個或多個單詞字符,其中包括字母數字字符和底線。這個正則表達式匹配名稱中有和沒有時間戳的日誌文件。在此範例中,記錄管理員會上傳下列記錄檔:
預設值:componentName
\\\\w*.log
,其中 componentName
是此記錄組態的元件名稱。
deleteLogFileAfterCloudUpload
-
(選擇性) 您可以在記錄管理員元件將記錄檔上傳至「記錄檔」之後刪除 CloudWatch 記錄檔。
預設:false
multiLineStartPattern
-
(選擇性) 識別新行上的記錄訊息何時是新記錄訊息的規則運算式。如果規則運算式不符合新行,則記錄管理員元件會將新行附加至上一行的記錄檔訊息。
根據預設,記錄管理員元件會檢查該行是否以空白字元開頭,例如索引標籤或空格。如果沒有,日誌管理器處理該行作為新的日誌消息。否則,它會將該行附加到當前日誌消息中。此行為可確保記錄檔管理員元件不會分割跨越多行的郵件,例如堆疊追蹤。
-
periodicUploadIntervalSec
-
(選擇性) 記錄管理員元件檢查要上傳之新記錄檔的期間 (以秒為單位)。
預設值:300
(5 分鐘)
最小值:0.000001
(1 微秒)
範例:組態合併更新
下列範例組態指定將系統記錄檔和com.example.HelloWorld
元件記錄檔上傳至 CloudWatch 記錄檔。
{
"logsUploaderConfiguration": {
"systemLogsConfiguration": {
"uploadToCloudWatch": "true",
"minimumLogLevel": "INFO",
"diskSpaceLimit": "10",
"diskSpaceLimitUnit": "MB",
"deleteLogFileAfterCloudUpload": "false"
},
"componentLogsConfiguration": [
{
"componentName": "com.example.HelloWorld",
"minimumLogLevel": "INFO",
"diskSpaceLimit": "20",
"diskSpaceLimitUnit": "MB",
"deleteLogFileAfterCloudUpload": "false"
}
]
},
"periodicUploadIntervalSec": "300"
}
- v2.0.x
-
logsUploaderConfiguration
-
(選擇性) 記錄檔管理員元件上傳的記錄檔組態。此物件包含下列資訊:
systemLogsConfiguration
-
(選擇性) AWS IoT Greengrass Core 軟體系統記錄檔的組態。指定此組態可讓記錄管理員元件管理系統記錄檔管理員。此物件包含下列資訊:
uploadToCloudWatch
-
(選擇性) 您可以將系統記錄上傳至 CloudWatch 記錄檔。
預設:false
minimumLogLevel
-
(選擇性) 要上傳的記錄訊息的最低層級。只有當您將 Greengrass 核心元件設定為輸出格式記錄時,才會套用此最低層級。JSON若要啟用JSON格式記錄檔,JSON
請指定記錄格式參數 (logging.format
)。
從下列記錄層級中進行選擇,依照層級順序列出:
預設:INFO
diskSpaceLimit
-
(選擇性) Greengrass 系統記錄檔的大小上限 (以您在中指定的單位表示)。diskSpaceLimitUnit
在 Greengrass 系統記錄檔的總大小超過此總大小上限之後, AWS IoT Greengrass 核心軟體會刪除最舊的 Greengrass 系統記錄檔。
此參數相當於 Greengrass 核元件的記錄檔大小限制參數 (totalLogsSizeKB
)。 AWS IoT Greengrass 核心軟體使用兩個值中的最小值做為 Greengrass 系統記錄檔大小的最大總計。
diskSpaceLimitUnit
-
(選擇性) 的單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
deleteLogFileAfterCloudUpload
-
(選擇性) 您可以在記錄管理員元件將記錄檔上傳至「記錄檔」之後刪除 CloudWatch 記錄檔。
預設:false
componentLogsConfiguration
-
(選擇性) 核心裝置上元件的記錄組態清單。此清單中的每個組態都會定義元件或應用程式的記錄組態。記錄管理員元件會將這些元件記錄檔上傳至 CloudWatch 記錄
每個物件都包含下列資訊:
componentName
-
此記錄組態的元件或應用程式名稱。您可以指定 Greengrass 元件的名稱或其他值來識別此記錄群組。
minimumLogLevel
-
(選擇性) 要上傳的記錄訊息的最低層級。此最低層級僅適用於此元件的記錄檔使用特定JSON格式 (您可以在上的AWS IoT Greengrass
記錄模組儲存庫中找到) GitHub。
從下列記錄層級中進行選擇,依照層級順序列出:
預設:INFO
diskSpaceLimit
-
(選擇性) 此元件的所有記錄檔總大小上限 (以您在中指定的單位表示) diskSpaceLimitUnit
。在此元件的記錄檔總大小超過此最大總大小之後, AWS IoT Greengrass Core 軟體就會刪除此元件最舊的記錄檔。
此參數與 Greengrass 核元件的記錄檔大小限制參數 (totalLogsSizeKB
) 有關。 AWS IoT Greengrass 核心軟體使用兩個值中的最小值做為此元件的最大總記錄大小。
diskSpaceLimitUnit
-
(選擇性) 的單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
logFileDirectoryPath
-
包含此元件記錄檔之資料夾的路徑。
若要上傳 Greengrass 元件的記錄檔,請指定/greengrass/v2
/logs
並取代/greengrass/v2
為 Greengrass 根資料夾。
logFileRegex
-
規則運算式;指定元件或應用程式使用的記錄檔名稱格式。記錄管理員元件會使用此規則運算式來識別資料夾中的記錄檔logFileDirectoryPath
。
若要上傳 Greengrass 元件的記錄檔,請指定符合旋轉記錄檔名稱的正則運算式。例如,您可com.example.HelloWorld\\w*.log
以指定為 Hello World 元件上傳記錄檔。該\\w*
模式匹配零個或多個單詞字符,其中包括字母數字字符和底線。這個正則表達式匹配名稱中有和沒有時間戳的日誌文件。在此範例中,記錄管理員會上傳下列記錄檔:
deleteLogFileAfterCloudUpload
-
(選擇性) 您可以在記錄管理員元件將記錄檔上傳至「記錄檔」之後刪除 CloudWatch 記錄檔。
預設:false
multiLineStartPattern
-
(選擇性) 識別新行上的記錄訊息何時是新記錄訊息的規則運算式。如果規則運算式不符合新行,則記錄管理員元件會將新行附加至上一行的記錄檔訊息。
根據預設,記錄管理員元件會檢查該行是否以空白字元開頭,例如索引標籤或空格。如果沒有,日誌管理器處理該行作為新的日誌消息。否則,它會將該行附加到當前日誌消息中。此行為可確保記錄檔管理員元件不會分割跨越多行的郵件,例如堆疊追蹤。
periodicUploadIntervalSec
-
(選擇性) 記錄管理員元件檢查要上傳之新記錄檔的期間 (以秒為單位)。
預設值:300
(5 分鐘)
最小值:0.000001
(1 微秒)
範例:組態合併更新
下列範例組態指定將系統記錄檔和com.example.HelloWorld
元件記錄檔上傳至 CloudWatch 記錄檔。
{
"logsUploaderConfiguration": {
"systemLogsConfiguration": {
"uploadToCloudWatch": "true",
"minimumLogLevel": "INFO",
"diskSpaceLimit": "10",
"diskSpaceLimitUnit": "MB",
"deleteLogFileAfterCloudUpload": "false"
},
"componentLogsConfiguration": [
{
"componentName": "com.example.HelloWorld",
"minimumLogLevel": "INFO",
"logFileDirectoryPath": "/greengrass/v2/logs",
"logFileRegex": "com.example.HelloWorld\\w*.log",
"diskSpaceLimit": "20",
"diskSpaceLimitUnit": "MB",
"deleteLogFileAfterCloudUpload": "false"
}
]
},
"periodicUploadIntervalSec": "300"
}
用量
記錄管理員元件會上傳至下列記錄群組和記錄資料流。
- 2.1.0 and later
-
- 記錄群組名稱
-
/aws/greengrass/componentType
/region
/componentName
記錄群組名稱會使用下列變數:
- 記錄串流名稱
-
/date
/thing/thingName
記錄資料流名稱會使用下列變數:
如果物件名稱包含冒號 (:
),則記錄管理員會以加號 (+
) 取代冒號。
- 2.0.x
-
- 記錄群組名稱
-
/aws/greengrass/componentType
/region
/componentName
記錄群組名稱會使用下列變數:
- 記錄串流名稱
-
/date
/deploymentTargets
/thingName
記錄資料流名稱會使用下列變數:
-
date
— 記錄的日期,例如2020/12/15
。記錄管理員元件會使用此yyyy/MM/dd
格式。
-
deploymentTargets
— 其部署包含元件的物件。記錄管理員元件會以斜線分隔每個目標。如果元件因為本機部署而在核心裝置上執行,則此值為LOCAL_DEPLOYMENT
。
假設您有一個名為的核心裝置MyGreengrassCore
,且核心裝置具有兩個部署的範例:
這deploymentTargets
個核心設備是thing/MyGreengrassCore/thinggroup/MyGreengrassCoreGroup
。
-
thingName
— 核心裝置的名稱。
記錄項目的格式。
Greengrass 核以字符串或格式寫入日誌文件。JSON對於系統記錄檔,您可以透過設定logging
項目的format
欄位來控制格式。您可以在 Greengrass 核組件的配置文件中找到該logging
條目。如需詳細資訊,請參閱 Greengrass 核組態。
文字格式為自由格式,可接受任何字串。下列叢集狀態服務訊息是字串格式化記錄的範例:
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 logs 命令檢視記錄檔,或以程JSON式設計方式與CLI記錄檔互動,請使用此格式。下面的例子概述了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 核元件相同的記錄檔。
- Linux
-
/greengrass/v2
/logs/greengrass.log
- Windows
-
C:\greengrass\v2
\logs\greengrass.log
變更記錄
下表說明元件每個版本中的變更。
版本
|
變更
|
2.3.8
|
版本更新了 Greengrass 2.13.0 版本。
|
2.3.7
|
版本更新了 Greengrass 核 2.12.0 版本釋放。
|
2.3.6
|
|
2.3.5
|
版本更新了 Greengrass 核 2.11.0 版本釋放。 |
2.3.4
|
|
2.3.3
|
版本更新了 Greengrass 2.10.0 版本。
|
2.3.2
|
- 錯誤修復和改進
-
-
改進了空間管理,以便在上傳之前不會刪除日誌文件。
-
修復了緩存管理的問題。
-
其他小錯誤修復和改進。
|
2.3.1
|
|
2.3.0
|
我們建議您升級至記錄檔管理員 2.3.0 時,升級至 Greengrass 核心 2.9.1。
- 新功能
-
透過處理和直接上傳作用中的記錄檔,而不是等待輪換新檔案來減少記錄延遲。
- 錯誤修復和改進
-
-
改進了旋轉具有唯一名稱的文件時對日誌旋轉的支持。
-
其他小錯誤修復和改進。
|
2.2.8
|
版本更新 Greengrass 2.9.0 版本釋放。 |
2.2.7
|
版本更新 Greengrass 2.8.0 版本的版本。 |
2.2.6
|
版本更新了 Greengrass 核 2.7.0 版本釋放。
|
2.2.5
|
版本更新 Greengrass 2.6.0 版本的版本。
|
2.2.4
|
|
2.2.3
|
|
2.2.2
|
|
2.2.1
|
版本更新了 Greengrass 核 2.5.0 版本。
|
2.2.0
|
|
2.1.3
|
版本更新 Greengrass 2.4.0 版本的版本。
|
2.1.2
|
版本更新了 Greengrass 核 2.3.0 版本。
|
2.1.1
|
|
2.1.0
|
- 錯誤修復和改進
-
-
對於打印到標準輸出(標準輸出)logFileDirectoryPath 和logFileRegex 標準錯誤(stderr)的 Greengrass 組件使用默認值和工作。
-
將記錄檔上傳至 CloudWatch 記錄檔時,透過設定的網路 Proxy 正確路由傳送流量。
-
正確處理記錄資料流名稱中的冒號字元 (: )。 CloudWatch 記錄檔資料流名稱不支援冒號。
-
從記錄串流中移除物件群組名稱,以簡化記錄資料流名稱。
-
移除在正常行為期間列印的錯誤記錄訊息。
|
2.0.x
|
初始版本。
|