監控AWS IoT Greengrass日誌 - AWS IoT Greengrass

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

監控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核心軟件將日誌存儲在核心設備上的文件/greengrass/v2/logs夾中,其中/greengrass/v2是AWS IoT Greengrass根文件夾的路徑。log 資料夾具有以下結構。

/greengrass/v2 └── logs ├── greengrass.log ├── greengrass_2021_09_14_15_0.log ├── ComponentName.log ├── ComponentName_2021_09_14_15_0.log └── main.log

如需外掛程式、一般元件和 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代。

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\com.example.HelloWorld.log

    type命令將文件的內容寫入終端。多次執行此命令以觀察檔案中的變更。

    PowerShell
    gc C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
若要檢視元件的記錄檔
  • 執行下列命令以即時檢視記錄檔。以AWS IoT Greengrass根資料夾的路徑取代/greengrass/v2C:\greengrass\v2,並取代 com.example。 HelloWorld與組件的名稱。

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/com.example.HelloWorld.log
    PowerShell
    gc C:\greengrass\v2\logs\com.example.HelloWorld.log -Tail 10 -Wait

您也可以使用 Greengrass CLIlogs命令來分析核心裝置上的 Greengrass 記錄。若要使用此logs命令,您必須設定 Greengrass 核來輸出 JSON 格式的記錄檔。如需詳細資訊,請參閱 綠色命令行界面日誌

存取 CloudWatch 記錄

您可以部署記錄管理員元件,將核心裝置設定為寫入 CloudWatch 記錄檔。如需詳細資訊,請參閱 啟用記錄 CloudWatch 檔的記錄。然後,您可以在 Amazon CloudWatch 主控台的「日誌」頁面或使用 CloudWatch 日誌 API 檢視日誌。

記錄群組名稱
/aws/greengrass/componentType/region/componentName

記錄群組名稱使用下列變數:

  • componentType— 元件的類型,可以是下列其中一種:

    • GreengrassSystemComponent— 此記錄群組包含核心和外掛程式元件的記錄,這些元件與 Greengrass 核心在相同的 JVM 中執行。該組件是 Greengr ass 核的一部分。

    • UserComponent— 此日誌群組包含一般元件、Lambda 元件和裝置上其他應用程式的記錄。該組件不是 Greengrass 核的一部分。

    如需詳細資訊,請參閱 元件類型

  • region— 核心設備使用的AWS區域。

  • componentName— 元件的名稱。對於系統記錄檔,此值為System

記錄串流名稱
/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)
  1. 執行下列命令以檢視AWS IoT Greengrass核心軟體系統服務記錄檔。

    Linux or Unix (systemd)
    sudo journalctl -u greengrass.service
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\greengrass.wrapper.log
    PowerShell
    gc C:\greengrass\v2\logs\greengrass.wrapper.log
  2. 在 Windows 設備上,AWS IoT Greengrass核心軟件為系統服務錯誤創建一個單獨的日誌文件。執行下列命令以檢視系統服務錯誤記錄檔。

    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\greengrass.err.log
    PowerShell
    gc C:\greengrass\v2\logs\greengrass.err.log

在 Windows 裝置上,您也可以使用事件檢視器應用程式來檢視系統服務記錄檔。

若要檢視 Windows 服務記錄檔 (事件檢視器)
  1. 開啟事件檢視器應用程式。

  2. 選取視窗記錄以展開它。

  3. 選擇應用程式以檢視應用程式服務記錄

  4. 尋找並開啟「來源」為的事件記錄檔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/v2/logs為核心設備上的另一個文件夾。如需詳細資訊,請參閱 Greengrass 核心元件的輸出目錄參數 ()。logging.outputDirectory

AWS CloudTrail 日誌

AWS IoT Greengrass與整合AWS CloudTrail,提供使用者、角色或AWS 服務中所採取之動作記錄的服務AWS IoT Greengrass。如需更多詳細資訊,請參閱 使用記錄 AWS IoT Greengrass V2 API 呼叫 AWS CloudTrail