本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
監控AWS IoT Greengrass日誌
AWS IoT Greengrass 由雲端服務和 AWS IoT Greengrass Core 軟體組成。AWS IoT Greengrass核心軟體可以將日誌寫入 Amazon CloudWatch 日誌和核心裝置的本機檔案系統。在核心裝置上執行的 Greengrass 元件也可以將記錄寫入記錄檔和本機 CloudWatch 檔案系統。您可以使用日誌來監控事件和排解疑難問題。所有 AWS IoT Greengrass 日誌項目皆含有時間戳記、日誌等級和事件資料。
根據預設,AWS IoT GreengrassCore 軟體只會將記錄寫入本機檔案系統。您可以即時檢視檔案系統記錄,以便偵錯您開發和部署的 Greengrass 元件。您還可以配置核心設備將日誌寫入日 CloudWatch 誌,以便在不訪問本地文件系統的情況下對核心設備進行故障排除。如需詳細資訊,請參閱 啟用記錄 CloudWatch 檔的記錄。
存取檔案系統記錄
AWS IoT Greengrass核心軟件將日誌存儲在核心設備上的文件
夾中,其中
/logs/greengrass/v2
是AWS IoT Greengrass根文件夾的路徑。log 資料夾具有以下結構。/greengrass/v2
└── logs ├── greengrass.log ├── greengrass_
/greengrass/v2
2021_09_14_15_0
.log ├──ComponentName
.log ├──ComponentName
_2021_09_14_15_0
.log └── main.log
-
greengrass.log
— AWS IoT Greengrass 核心軟體記錄檔。使用此記錄檔可檢視有關元件和部署的即時資訊。此日誌文件包括 Greengrass 核心,這是核心軟件的AWS IoT Greengrass核心,和插件組件,如日誌管理器和秘密管理器日誌。 -
-綠色組件日誌文件。使用元件記錄檔可檢視核心裝置上執行之 Greengrass 元件的即時資訊。一般元件和 Lambda 元件會將標準輸出 (標準輸出) 和標準錯誤 (標準錯誤) 寫入這些記錄檔。ComponentName
.log -
main.log
— 處理元件生命週期之main
服務的記錄檔。此記錄檔永遠是空的。
如需外掛程式、一般元件和 Lambda 元件之間差異的詳細資訊,請參閱元件類型。
使用檔案系統日誌時有下列考量:
-
根使用者權限
您必須具有在檔案系統上讀取 AWS IoT Greengrass 日誌的根許可。
-
日誌文件旋轉
AWS IoT Greengrass核心軟體每小時或超過檔案大小限制時,都會旋轉記錄檔。旋轉的記錄檔在其檔案名稱中包含時間戳記。例如,旋轉後的 AWS IoT Greengrass Core 軟體記錄檔可能會命名為
greengrass_2021_09_14_15_0.log
。預設的檔案大小限制為 1,024 KB (1 MB)。您可以在 Greengrass 核組件上配置文件大小限制。 -
記錄檔刪除
當AWS IoT Greengrass核心軟體記錄檔或 Greengrass 元件記錄檔 (包括旋轉的記錄檔) 的大小超過磁碟空間限制時,AWS IoT Greengrass核心軟體會清除較早的記錄檔。AWS IoT Greengrass核心軟體記錄檔和每個元件記錄檔的預設磁碟空間限制為 10,240 KB (10 MB)。您可以在 Greengrass 核心元件或記錄檔管理員元件上設定核AWS IoT Greengrass心軟體記錄檔磁碟空間限制。您可以在記錄檔管理員元件上設定每個元件的記錄磁碟空間限制。
若要檢視AWS IoT Greengrass核心軟體記錄檔
-
執行下列命令以即時檢視記錄檔。以AWS IoT Greengrass根資料夾的路徑取
代。/greengrass/v2
若要檢視元件的記錄檔
-
執行下列命令以即時檢視記錄檔。以AWS IoT Greengrass根資料夾的路徑取代
或/greengrass/v2
C:\greengrass\v2
,並取代com.example。 HelloWorld
與組件的名稱。
您也可以使用 Greengrass CLI 的logs
命令來分析核心裝置上的 Greengrass 記錄。若要使用此logs
命令,您必須設定 Greengrass 核來輸出 JSON 格式的記錄檔。如需詳細資訊,請參閱 綠色命令行界面 及 日誌。
存取 CloudWatch 記錄
您可以部署記錄管理員元件,將核心裝置設定為寫入 CloudWatch 記錄檔。如需詳細資訊,請參閱 啟用記錄 CloudWatch 檔的記錄。然後,您可以在 Amazon CloudWatch 主控台的「日誌」頁面或使用 CloudWatch 日誌 API 檢視日誌。
- 記錄群組名稱
-
/aws/greengrass/
componentType
/region
/componentName
記錄群組名稱使用下列變數:
- 記錄串流名稱
-
/
date
/thing/thingName
記錄資料流名稱會使用下列變數:
-
date
— 記錄的日期,例如2020/12/15
。記錄管理員元件會使用此yyyy/MM/dd
格式。 -
thingName
— 核心裝置的名稱。
注意
如果物件名稱包含冒號 (
:
),則記錄管理員會以加號 (+
) 取代冒號。 -
當您使用記錄檔管理員元件寫入 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 版簽署程序。
存取系統服務記錄
如果您將 AWS IoT GreengrassCore 軟體設定為系統服務,則可以檢視系統服務記錄檔來疑難排解問題,例如軟體無法啟動。
若要檢視系統服務記錄檔 (CLI)
-
執行下列命令以檢視AWS IoT Greengrass核心軟體系統服務記錄檔。
-
在 Windows 設備上,AWS IoT Greengrass核心軟件為系統服務錯誤創建一個單獨的日誌文件。執行下列命令以檢視系統服務錯誤記錄檔。
在 Windows 裝置上,您也可以使用事件檢視器應用程式來檢視系統服務記錄檔。
若要檢視 Windows 服務記錄檔 (事件檢視器)
-
開啟事件檢視器應用程式。
-
選取視窗記錄以展開它。
-
選擇應用程式以檢視應用程式服務記錄
-
尋找並開啟「來源」為的事件記錄檔greengrass。
啟用記錄 CloudWatch 檔的記錄
您可以部署記錄管理員元件,以設定核心裝置將記錄寫入 CloudWatch 記錄檔。您可以啟用AWS IoT Greengrass核心軟體 CloudWatch 記錄檔的記錄檔,也可以為特定 Greengrass 元件啟用 CloudWatch 記錄檔。
注意
Greengrass 核心裝置的權杖交換角色必須允許核心裝置寫入 CloudWatch 記錄,如下列範例 IAM 政策所示。如果您使用自動資源佈建來安裝 AWS IoT Greengrass Core 軟體,則您的核心裝置具有這些權限。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Effect": "Allow", "Resource": "arn:aws:logs:*:*:*" } ] }
若要設定核心裝置將AWS IoT Greengrass核心軟體記錄檔寫入 CloudWatch 記錄檔,true
請建立一個部署,以指定為aws.greengrass.LogManager
元件設uploadToCloudWatch
定的組態更新。 AWS IoT Greengrass核心軟件日誌包括 Greengrass 核心和插件組件的日誌。
{ "logsUploaderConfiguration": { "systemLogsConfiguration": { "uploadToCloudWatch": "true" } } }
若要設定核心裝置將 Greengrass 元件的記錄檔寫入記錄檔,請建立指定組態更新的部署,以便將元件新增至元件 CloudWatch 記錄組態清單。當您將元件新增至此清單時,記錄管理員元件會將其記錄寫入 CloudWatch 記錄檔。元件記錄包括一般元件和 Lambda 元件的記錄。
{ "logsUploaderConfiguration": { "componentLogsConfigurationMap": { "
com.example.HelloWorld
": { } } } }
部署記錄管理員元件時,您也可以設定磁碟空間限制,以及核心裝置是否在將記錄檔寫入記錄檔後刪除 CloudWatch 記錄檔。如需詳細資訊,請參閱 設定 AWS IoT Greengrass 的日誌記錄。
設定 AWS IoT Greengrass 的日誌記錄
您可以設定下列選項來自訂 Greengrass 核心裝置的記錄。若要設定這些選項,請建立一個部署,以指定 Greengrass 核心或記錄檔管理員元件的組態更新。
-
將記錄寫入記 CloudWatch 錄檔
若要遠端疑難排解核心裝置,您可以設定核心裝置將AWS IoT Greengrass核心軟體和元件記錄寫入 CloudWatch 記錄檔。若要這麼做,請部署和設定記錄檔管理員元件。如需詳細資訊,請參閱 啟用記錄 CloudWatch 檔的記錄。
-
刪除上傳的記錄檔
若要減少磁碟空間使用量,您可以將核心裝置設定為在將記錄檔寫入記錄檔後刪除 CloudWatch 記錄檔。如需詳細資訊,請參閱記錄管理員元件的
deleteLogFileAfterCloudUpload
參數,您可以為AWS IoT Greengrass核心軟體記錄檔和元件記錄檔指定此參數。 -
記錄磁碟空間限制
若要限制磁碟空間使用量,您可以在核心裝置上設定每個記錄檔的最大磁碟空間,包括其旋轉的記錄檔。例如,您可以為
greengrass.log
和旋轉greengrass.log
檔案設定合併磁碟空間上限。如需詳細資訊,請參閱 Greengrass 核心元件的logging.totalLogsSizeKB參數和記錄檔管理員元件的參數,您可以為AWS IoT Greengrass核心軟體記錄檔和元件記錄檔指定此diskSpaceLimit參數。 -
記錄檔大小限制
您可以設定每個記錄檔的檔案大小上限。記錄檔超過此檔案大小限制之後,AWS IoT GreengrassCore 軟體會建立新的記錄檔。記錄管理員元件 2.28 版 (及更早版本) 只會將輪替的記錄檔寫入 CloudWatch 記錄檔,因此您可以指定較低的檔案大小限制,以便更頻繁地將記錄寫入 CloudWatch 記錄檔。記錄檔管理員元件 2.3.0 版 (及更新版本) 會處理並上傳所有記錄檔,而不是等待它們輪換。如需詳細資訊,請參閱 Greengrass 核心元件的記錄檔大小限制參數 ()。
logging.fileSizeKB
-
最低記錄層級
您可以設定 Greengrass 核心元件寫入檔案系統記錄的最低記錄層級。例如,您可以指定
DEBUG
層級記錄檔以協助進行疑難排解,也可以指定ERROR
層級記錄檔以減少核心裝置建立的記錄數量。如需詳細資訊,請參閱 Greengrass 核心元件的記錄層級參數 ()。logging.level
您也可以設定記錄檔管理員元件寫入記錄檔的最低 CloudWatch 記錄層級。例如,您可以指定較高的記錄層級以降低記錄成本
。如需詳細資訊,請參閱記錄管理員元件的 minimumLogLevel
參數,您可以為AWS IoT Greengrass核心軟體記錄檔和元件記錄檔指定此參數。 -
檢查記錄檔寫入記錄檔的間隔 CloudWatch
若要增加或減少記錄管理員元件將記錄寫入 CloudWatch 記錄檔的頻率,您可以設定檢查要寫入的新記錄檔的間隔。例如,您可以指定較小的間隔,以便在記錄檔中檢視 CloudWatch 記錄檔的時間比預設的 5 分鐘間隔要快。您可以指定較高的間隔來降低成本,因為記錄管理員元件會將記錄檔批次處理成較少的要求。如需詳細資訊,請參閱記錄管理員元件的上傳間隔參數 (
periodicUploadIntervalSec
)。 -
日誌格式
您可以選擇 AWS IoT Greengrass Core 軟體是以文字還是 JSON 格式寫入記錄。如果您讀取記錄檔,請選擇文字格式;如果您使用應用程式讀取或剖析記錄,請選擇 JSON 格式。如需詳細資訊,請參閱 Greengrass 核心元件的記錄格式參數 ()。
logging.format
-
本機檔案系統記錄資料夾
您可以將 logs 文件夾從更改
為核心設備上的另一個文件夾。如需詳細資訊,請參閱 Greengrass 核心元件的輸出目錄參數 ()。
/logs/greengrass/v2
logging.outputDirectory
AWS CloudTrail 日誌
AWS IoT Greengrass與整合AWS CloudTrail,提供使用者、角色或AWS 服務中所採取之動作記錄的服務AWS IoT Greengrass。如需更多詳細資訊,請參閱 記錄 AWS IoT Greengrass V2 API通話 AWS CloudTrail。