本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
日誌管理員
我們建議您升級至 Log Manager 2.3.5 版或更新版本。2.3.5 版可最佳化 Log Manager 組態寫入、降低 IO 操作並改善日誌上傳速度、整體裝置效能,以及可能延長的裝置生命週期。
日誌管理員元件 (aws.greengrass.LogManager
) 會將日誌從 AWS IoT Greengrass 核心裝置上傳至 Amazon CloudWatch Logs。您可以從 Greengrass 核、其他 Greengrass 元件,以及非 Greengrass 元件的其他應用程式和服務上傳日誌。如需如何在日誌和本機檔案系統上監控 CloudWatch 日誌的詳細資訊,請參閱 監控AWS IoT Greengrass日誌。
當您使用日誌管理員元件寫入 CloudWatch 日誌時,會套用下列考量:
-
日誌延遲
日誌管理員元件 2.2.8 版 (及更早版本) 只會處理和上傳輪換日誌檔案的日誌。根據預設, AWS IoT Greengrass Core 軟體會每小時輪換日誌檔案,或在 1,024 KB 之後輪換日誌檔案。因此,日誌管理員元件只會在 AWS IoT Greengrass Core 軟體或 Greengrass 元件寫入超過 1,024 KB 的日誌之後上傳日誌。您可以設定較低的日誌檔案大小限制,讓日誌檔案更頻繁地輪換。這會導致日誌管理員元件更頻繁地將日誌上傳至 CloudWatch 日誌。
日誌管理員元件 2.3.0 版 (及更新版本) 會處理和上傳所有日誌。當您撰寫新的日誌時,日誌管理員 2.3.0 版 (及更新版本) 會處理並直接上傳該作用中日誌檔案,而不是等待輪換。這表示您可以在 5 分鐘內檢視新日誌。
日誌管理員元件會定期上傳新日誌。根據預設,日誌管理員元件會每 5 分鐘上傳新的日誌。您可以設定較低的上傳間隔,因此日誌管理員元件可透過設定 ,更頻繁地將日誌上傳至 CloudWatch 日誌periodicUploadIntervalSec
。如需如何設定此定期間隔的詳細資訊,請參閱組態。
日誌可以近乎即時地從相同的 Greengrass 檔案系統上傳。如果您需要即時觀察日誌,請考慮使用檔案系統日誌。
如果您使用不同的檔案系統來寫入日誌,日誌管理員會還原為日誌管理員元件 2.2.8 版及更早版本中的行為。如需有關存取檔案系統日誌的資訊,請參閱存取檔案系統日誌。
-
時鐘偏移
Log Manager 元件使用標準 Signature 第 4 版簽署程序來建立對 CloudWatch Logs 的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:PutLogEvents
、 logs:CreateLogStream
和 logs:DescribeLogStreams
動作,如下列範例IAM政策所示。
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"
],
"Effect": "Allow",
"Resource": "arn:aws:logs:*:*:*"
}
]
}
如需詳細資訊,請參閱《Amazon CloudWatch Logs 使用者指南》中的使用 Logs 的身分型政策 (IAM 政策)。 CloudWatch
-
日誌管理員元件支援在 中執行VPC。若要在 中部署此元件VPC,需要下列項目。
端點和連接埠
除了基本操作所需的端點和連接埠之外,此元件還必須能夠對下列端點和連接埠執行傳出請求。如需詳細資訊,請參閱允許裝置流量透過 Proxy 或防火牆。
端點 |
連線埠 |
必要 |
描述 |
logs.region .amazonaws.com
|
443 |
否 |
如果您將日誌寫入 CloudWatch 日誌,則為必要項目。
|
相依性
部署元件時, AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的要求,才能成功部署元件。本節列出此元件發行版本的相依性,以及為每個相依性定義元件版本的語意版本限制。您也可以在 AWS IoT Greengrass 主控台中檢視每個版本元件的相依性。在元件詳細資訊頁面上,尋找相依性清單。
- 2.3.9
-
下表列出此元件 2.3.9 版的相依性。
- 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 Core 軟體會刪除最舊的 Greengrass 系統日誌檔案。
此參數相當於 Greengrass 核元件的日誌大小限制參數 (totalLogsSizeKB
)。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為 Greengrass 系統日誌大小上限。
diskSpaceLimitUnit
-
(選用) 的 單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
deleteLogFileAfterCloudUpload
-
(選用) 您可以在日誌管理員元件將日誌上傳至 CloudWatch 日誌之後刪除日誌檔案。
預設:false
-
componentLogsConfigurationMap
-
(選用) 核心裝置上元件的日誌組態對應。此映射中的每個componentName
物件都會定義元件或應用程式的日誌組態。日誌管理員元件會將這些元件日誌上傳至 CloudWatch Logs。
我們強烈建議每個元件使用單一組態金鑰。您只應該將只有一個日誌檔案的一組檔案設為目標,該日誌檔案在使用 時會主動寫入logFileRegex
。不遵循此建議可能會導致上傳重複的日誌 CloudWatch。如果您以單一 regex 鎖定多個作用中日誌檔案,建議您升級至 log manager v2.3.1 或更新版本,並考慮使用範例組態變更您的組態。
如果您要從 2.2.0 版之前的日誌管理員版本升級,您可以繼續使用componentLogsConfiguration
清單,而不是 。 componentLogsConfigurationMap
不過,我們強烈建議您使用映射格式,以便您可以使用合併和重設更新來修改特定元件的組態。如需 componentLogsConfiguration
參數的相關資訊,請參閱此元件 v2.1.x 的組態參數。
componentName
-
此日誌組態之componentName
元件或應用程式的日誌組態。您可以指定 Greengrass 元件的名稱或其他值來識別此日誌群組。
每個物件都包含下列資訊:
minimumLogLevel
-
(選用) 要上傳的日誌訊息最低層級。此最低層級僅適用於此元件的日誌使用特定JSON格式時,您可以在AWS IoT Greengrass 日誌模組儲存庫中找到該格式 GitHub。
從下列日誌層級中選擇,此處依層級順序列出:
預設:INFO
diskSpaceLimit
-
(選用) 此元件的所有日誌檔案總大小上限,以您在 中指定的單位表示diskSpaceLimitUnit
。此元件日誌檔案的總大小超過此總大小上限後, AWS IoT Greengrass 核心軟體會刪除此元件最舊的日誌檔案。
此參數與 Greengrass 核元件的日誌大小限制參數 (totalLogsSizeKB
) 有關。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為此元件的日誌大小上限。
diskSpaceLimitUnit
-
(選用) 的 單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
logFileDirectoryPath
-
(選用) 包含此元件日誌檔案之資料夾的路徑。
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。
預設:/greengrass/v2
/logs
。
logFileRegex
-
(選用) 指定元件或應用程式使用的日誌檔案名稱格式的規則運算式。日誌管理員元件使用此規則表達式來識別 資料夾中的日誌檔案logFileDirectoryPath
。
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。
如果您的元件或應用程式輪換日誌檔案,請指定符合輪換日誌檔案名稱的 regex。例如,您可以指定 hello_world\\\\w*.log
上傳 Hello World 應用程式的日誌。\\\\w*
模式符合零個或多個單字字元,其中包含英數字元和底線。此 regex 會比對名稱中包含和不包含時間戳記的日誌檔案。在此範例中,日誌管理員會上傳下列日誌檔案:
預設:componentName
\\\\w*.log
,其中 componentName
是此日誌組態的元件名稱。
deleteLogFileAfterCloudUpload
-
(選用) 您可以在日誌管理員元件將日誌上傳至 CloudWatch 日誌之後刪除日誌檔案。
預設:false
multiLineStartPattern
-
(選用) 規則表達式,可識別新行上的日誌訊息是新的日誌訊息。如果規則表達式不符合新行,日誌管理員元件會將新行附加到前一行的日誌訊息。
根據預設,日誌管理員元件會檢查該行是否以空格字元開頭,例如標籤或空格。如果沒有,則日誌管理員會將該行視為新的日誌訊息處理。否則,它會將該行附加到目前的日誌訊息。此行為可確保日誌管理員元件不會分割跨越多行的訊息,例如堆疊追蹤。
-
periodicUploadIntervalSec
-
(選用) 以秒為單位的期間,日誌管理員元件會檢查要上傳的新日誌檔案。
預設:300
(5 分鐘)
最小值:0.000001
(1 微秒)
deprecatedVersionSupport
-
指出日誌管理員是否應使用日誌管理員 2.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"
}
範例:使用 Log Manager 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 Core 軟體會刪除最舊的 Greengrass 系統日誌檔案。
此參數相當於 Greengrass 核元件的日誌大小限制參數 (totalLogsSizeKB
)。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為 Greengrass 系統日誌大小總計上限。
diskSpaceLimitUnit
-
(選用) 的 單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
deleteLogFileAfterCloudUpload
-
(選用) 您可以在日誌管理員元件將日誌上傳至 CloudWatch 日誌之後刪除日誌檔案。
預設:false
-
componentLogsConfigurationMap
-
(選用) 核心裝置上元件的日誌組態對應。此映射中的每個componentName
物件都會定義元件或應用程式的日誌組態。日誌管理員元件會將這些元件日誌上傳至 CloudWatch Logs。
我們強烈建議每個元件使用單一組態金鑰。您只應該將只有一個日誌檔案的一組檔案設為目標,該日誌檔案在使用 時會主動寫入logFileRegex
。未遵循此建議可能會導致上傳重複的日誌 CloudWatch。如果您以單一 regex 鎖定多個作用中日誌檔案,建議您升級至 log manager v2.3.1,並考慮使用範例組態變更您的組態。
如果您是從 2.2.0 版之前的日誌管理員版本升級,您可以繼續使用componentLogsConfiguration
清單,而不是 。 componentLogsConfigurationMap
不過,我們強烈建議您使用映射格式,以便您可以使用合併和重設更新來修改特定元件的組態。如需 componentLogsConfiguration
參數的相關資訊,請參閱此元件 v2.1.x 的組態參數。
componentName
-
此日誌組態之componentName
元件或應用程式的日誌組態。您可以指定 Greengrass 元件的名稱或其他值來識別此日誌群組。
每個物件都包含下列資訊:
minimumLogLevel
-
(選用) 要上傳的日誌訊息最低層級。此最低層級僅適用於此元件的日誌使用特定JSON格式時,您可以在AWS IoT Greengrass 日誌模組儲存庫中找到該格式 GitHub。
從下列日誌層級中進行選擇,此處依層級順序列出:
預設:INFO
diskSpaceLimit
-
(選用) 此元件的所有日誌檔案總大小上限,以您在 中指定的單位表示diskSpaceLimitUnit
。此元件日誌檔案的總大小超過此總大小上限後, AWS IoT Greengrass 核心軟體會刪除此元件最舊的日誌檔案。
此參數與 Greengrass 核元件的日誌大小限制參數 (totalLogsSizeKB
) 有關。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為此元件的日誌大小上限。
diskSpaceLimitUnit
-
(選用) 的 單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
logFileDirectoryPath
-
(選用) 包含此元件日誌檔案之資料夾的路徑。
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。
預設:/greengrass/v2
/logs
。
logFileRegex
-
(選用) 指定元件或應用程式使用的日誌檔案名稱格式的規則運算式。日誌管理員元件使用此規則運算式來識別 資料夾中的日誌檔案logFileDirectoryPath
。
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。
如果您的元件或應用程式輪換日誌檔案,請指定符合輪換日誌檔案名稱的 regex。例如,您可以指定 hello_world\\\\w*.log
上傳 Hello World 應用程式的日誌。\\\\w*
模式符合零個或多個單字字元,其中包含英數字元和底線。此 regex 會比對名稱中包含和不包含時間戳記的日誌檔案。在此範例中,日誌管理員會上傳下列日誌檔案:
預設:componentName
\\\\w*.log
,其中 componentName
是此日誌組態的元件名稱。
deleteLogFileAfterCloudUpload
-
(選用) 您可以在日誌管理員元件將日誌上傳至 CloudWatch 日誌之後刪除日誌檔案。
預設:false
multiLineStartPattern
-
(選用) 規則表達式,可識別新行上的日誌訊息是新的日誌訊息。如果規則表達式不符合新行,日誌管理員元件會將新行附加到前一行的日誌訊息。
根據預設,日誌管理員元件會檢查該行是否以空格字元開頭,例如標籤或空格。如果沒有,則日誌管理員會將該行視為新的日誌訊息處理。否則,它會將該行附加到目前的日誌訊息。此行為可確保日誌管理員元件不會分割跨越多行的訊息,例如堆疊追蹤。
-
periodicUploadIntervalSec
-
(選用) 以秒為單位的期間,日誌管理員元件會檢查要上傳的新日誌檔案。
預設:300
(5 分鐘)
最小值:0.000001
(1 微秒)
範例:組態合併更新
下列範例組態指定 將系統日誌和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"
}
範例:使用 Log Manager 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 Core 軟體會刪除最舊的 Greengrass 系統日誌檔案。
此參數相當於 Greengrass 核元件的日誌大小限制參數 (totalLogsSizeKB
)。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為 Greengrass 系統日誌大小總計上限。
diskSpaceLimitUnit
-
(選用) 的 單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
deleteLogFileAfterCloudUpload
-
(選用) 您可以在日誌管理員元件將日誌上傳至 CloudWatch 日誌之後刪除日誌檔案。
預設:false
-
componentLogsConfigurationMap
-
(選用) 核心裝置上元件的日誌組態對應。此映射中的每個componentName
物件都會定義元件或應用程式的日誌組態。日誌管理員元件會將這些元件日誌上傳至 CloudWatch Logs。
如果您是從 2.2.0 版之前的日誌管理員版本升級,您可以繼續使用componentLogsConfiguration
清單,而不是 。 componentLogsConfigurationMap
不過,我們強烈建議您使用映射格式,以便您可以使用合併和重設更新來修改特定元件的組態。如需 componentLogsConfiguration
參數的相關資訊,請參閱此元件 v2.1.x 的組態參數。
componentName
-
此日誌組態之componentName
元件或應用程式的日誌組態。您可以指定 Greengrass 元件的名稱或其他值來識別此日誌群組。
每個物件都包含下列資訊:
minimumLogLevel
-
(選用) 要上傳的日誌訊息最低層級。此最低層級僅適用於此元件的日誌使用特定JSON格式時,您可以在AWS IoT Greengrass 日誌模組儲存庫中找到該格式 GitHub。
從下列日誌層級中進行選擇,此處依層級順序列出:
預設:INFO
diskSpaceLimit
-
(選用) 此元件的所有日誌檔案總大小上限,以您在 中指定的單位表示diskSpaceLimitUnit
。此元件日誌檔案的總大小超過此總大小上限後, AWS IoT Greengrass 核心軟體會刪除此元件最舊的日誌檔案。
此參數與 Greengrass 核元件的日誌大小限制參數 (totalLogsSizeKB
) 有關。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為此元件的日誌大小上限。
diskSpaceLimitUnit
-
(選用) 的 單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
logFileDirectoryPath
-
(選用) 包含此元件日誌檔案之資料夾的路徑。
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。
預設:/greengrass/v2
/logs
。
logFileRegex
-
(選用) 指定元件或應用程式使用的日誌檔案名稱格式的規則運算式。日誌管理員元件使用此規則運算式來識別 資料夾中的日誌檔案logFileDirectoryPath
。
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。
如果您的元件或應用程式輪換日誌檔案,請指定符合輪換日誌檔案名稱的 regex。例如,您可以指定 hello_world\\\\w*.log
上傳 Hello World 應用程式的日誌。\\\\w*
模式符合零個或多個單字字元,其中包含英數字元和底線。此 regex 會比對名稱中包含和不包含時間戳記的日誌檔案。在此範例中,日誌管理員會上傳下列日誌檔案:
預設:componentName
\\\\w*.log
,其中 componentName
是此日誌組態的元件名稱。
deleteLogFileAfterCloudUpload
-
(選用) 您可以在日誌管理員元件將日誌上傳至 CloudWatch 日誌之後刪除日誌檔案。
預設:false
multiLineStartPattern
-
(選用) 規則表達式,可識別新行上的日誌訊息是新的日誌訊息。如果規則表達式不符合新行,日誌管理員元件會將新行附加到前一行的日誌訊息。
根據預設,日誌管理員元件會檢查該行是否以空格字元開頭,例如標籤或空格。如果沒有,則日誌管理員會將該行視為新的日誌訊息處理。否則,它會將該行附加到目前的日誌訊息。此行為可確保日誌管理員元件不會分割跨越多行的訊息,例如堆疊追蹤。
-
periodicUploadIntervalSec
-
(選用) 以秒為單位的期間,日誌管理員元件會檢查要上傳的新日誌檔案。
預設:300
(5 分鐘)
最小值:0.000001
(1 微秒)
範例:組態合併更新
下列範例組態指定 將系統日誌和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"
}
- 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 Core 軟體會刪除最舊的 Greengrass 系統日誌檔案。
此參數相當於 Greengrass 核元件的日誌大小限制參數 (totalLogsSizeKB
)。Core 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 核心軟體會刪除此元件最舊的日誌檔案。
此參數與 Greengrass 核元件的日誌大小限制參數 (totalLogsSizeKB
) 有關。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為此元件的日誌大小上限。
diskSpaceLimitUnit
-
(選用) 的 單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
logFileDirectoryPath
-
(選用) 包含此元件日誌檔案之資料夾的路徑。
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。
預設:/greengrass/v2
/logs
。
logFileRegex
-
(選用) 指定元件或應用程式使用的日誌檔案名稱格式的規則運算式。日誌管理員元件使用此規則運算式來識別 資料夾中的日誌檔案logFileDirectoryPath
。
您不需要為列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件指定此參數。
如果您的元件或應用程式輪換日誌檔案,請指定符合輪換日誌檔案名稱的 regex。例如,您可以指定 hello_world\\\\w*.log
上傳 Hello World 應用程式的日誌。\\\\w*
模式符合零個或多個單字字元,其中包含英數字元和底線。此 regex 會比對名稱中包含和不包含時間戳記的日誌檔案。在此範例中,日誌管理員會上傳下列日誌檔案:
預設:componentName
\\\\w*.log
,其中 componentName
是此日誌組態的元件名稱。
deleteLogFileAfterCloudUpload
-
(選用) 您可以在日誌管理員元件將日誌上傳至 CloudWatch 日誌之後刪除日誌檔案。
預設:false
multiLineStartPattern
-
(選用) 規則表達式,可識別新行上的日誌訊息是新的日誌訊息。如果規則表達式不符合新行,日誌管理員元件會將新行附加到上一行的日誌訊息。
根據預設,日誌管理員元件會檢查該行是否以空格字元開頭,例如標籤或空格。如果沒有,則日誌管理員會將該行視為新的日誌訊息處理。否則,它會將該行附加到目前的日誌訊息。此行為可確保日誌管理員元件不會分割跨越多行的訊息,例如堆疊追蹤。
-
periodicUploadIntervalSec
-
(選用) 以秒為單位的期間,日誌管理員元件會檢查要上傳的新日誌檔案。
預設:300
(5 分鐘)
最小值:0.000001
(1 微秒)
範例:組態合併更新
下列範例組態指定 將系統日誌和com.example.HelloWorld
元件日誌上傳至 CloudWatch Logs。
{
"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 核心軟體系統日誌的組態。指定此組態,以啟用日誌管理員元件來管理系統日誌。此物件包含下列資訊:
uploadToCloudWatch
-
(選用) 您可以將系統日誌上傳至 CloudWatch 日誌。
預設:false
minimumLogLevel
-
(選用) 要上傳的日誌訊息最低層級。只有在您將 Greengrass 核元件設定為輸出JSON格式日誌時,才會套用此最低層級。若要啟用JSON格式日誌,請JSON
為記錄格式參數 () 指定 logging.format
。
從下列日誌層級中選擇,此處依層級順序列出:
預設:INFO
diskSpaceLimit
-
(選用) Greengrass 系統日誌檔案的總大小上限,以您在 中指定的單位表示diskSpaceLimitUnit
。在 Greengrass 系統日誌檔案的總大小超過此總大小上限之後, AWS IoT Greengrass Core 軟體會刪除最舊的 Greengrass 系統日誌檔案。
此參數相當於 Greengrass 核元件的日誌大小限制參數 (totalLogsSizeKB
)。Core 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 核心軟體會刪除此元件最舊的日誌檔案。
此參數與 Greengrass 核元件的日誌大小限制參數 (totalLogsSizeKB
) 有關。Core AWS IoT Greengrass 軟體會使用兩個值的最小值作為此元件的日誌大小上限。
diskSpaceLimitUnit
-
(選用) 的 單位diskSpaceLimit
。您可以從以下選項中選擇:
預設:KB
logFileDirectoryPath
-
包含此元件日誌檔案的資料夾路徑。
若要上傳 Greengrass 元件的日誌,請指定 /greengrass/v2
/logs
,並將 取代/greengrass/v2
為您的 Greengrass 根資料夾。
logFileRegex
-
指定元件或應用程式使用的日誌檔案名稱格式的規則運算式。日誌管理員元件使用此規則表達式來識別 資料夾中的日誌檔案logFileDirectoryPath
。
若要上傳 Greengrass 元件的日誌,請指定符合輪換日誌檔案名稱的 regex。例如,您可以指定 com.example.HelloWorld\\w*.log
上傳 Hello World 元件的日誌。\\w*
模式符合零個或多個單字字元,其中包含英數字元和底線。此 regex 會比對名稱中具有和沒有時間戳記的日誌檔案。在此範例中,日誌管理員會上傳下列日誌檔案:
deleteLogFileAfterCloudUpload
-
(選用) 您可以在日誌管理員元件將日誌上傳至 CloudWatch 日誌之後刪除日誌檔案。
預設:false
multiLineStartPattern
-
(選用) 規則表達式,可識別新行上的日誌訊息是新的日誌訊息。如果規則表達式不符合新行,日誌管理員元件會將新行附加到上一行的日誌訊息。
根據預設,日誌管理員元件會檢查該行是否以空格字元開頭,例如標籤或空格。如果沒有,則日誌管理員會將該行視為新的日誌訊息處理。否則,它會將該行附加到目前的日誌訊息。此行為可確保日誌管理員元件不會分割跨越多行的訊息,例如堆疊追蹤。
periodicUploadIntervalSec
-
(選用) 以秒為單位的期間,日誌管理員元件會檢查要上傳的新日誌檔案。
預設:300
(5 分鐘)
最小值:0.000001
(1 微秒)
範例:組態合併更新
下列範例組態指定 將系統日誌和com.example.HelloWorld
元件日誌上傳至 CloudWatch Logs。
{
"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 日誌命令檢視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 核元件相同的日誌檔案。
- Linux
-
/greengrass/v2
/logs/greengrass.log
- Windows
-
C:\greengrass\v2
\logs\greengrass.log
變更記錄
下表說明每個版本元件的變更。
版本
|
變更
|
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
|
針對 Greengrass nucleus 2.11.0 版更新版本。 |
2.3.4
|
|
2.3.3
|
針對 Greengrass nucleus 2.10.0 版更新版本。
|
2.3.2
|
|
2.3.1
|
|
2.3.0
|
當您升級至 log manager 2.3.0 時,我們建議您升級至 Greengrass 核 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
|
- 錯誤修正和改善
-
-
使用 logFileDirectoryPath 和 的預設值logFileRegex ,適用於列印為標準輸出 (stdout) 和標準錯誤 (stderr) 的 Greengrass 元件。
-
將日誌上傳至 CloudWatch 日誌時,透過設定的網路代理正確路由流量。
-
正確處理日誌串流名稱中的冒號字元 (: )。 CloudWatch 日誌串流名稱不支援冒號。
-
從日誌串流中移除物件群組名稱,以簡化日誌串流名稱。
-
移除在正常行為期間列印的錯誤日誌訊息。
|
2.0.x
|
初始版本。
|