如何為 AWS IoT Core 設定預設日誌記錄設定?

2 分的閱讀內容
0

我想要在 AWS IoT Core 中為 AWS IoT 日誌設定預設記錄設定,以便降低成本和資料流量。

簡短說明

**注意:**本文僅涉及 AWS IoT Core 日誌的 V2 版本。

最佳實務是將 AWS IoT Core 的預設日誌記錄設定為低詳盡度層級,並將資源特定日誌記錄設定為較高的詳盡度層級。日誌詳盡度層級包括 DISABLED (停用) (最低)、ERROR (錯誤)、WARN (警告)、INFO (資訊) 和 DEBUG (偵錯) (最高)。

**重要事項:**根據您的 AWS IoT Core 機群大小,啟用較為詳盡的日誌層級可能會產生高成本,並使疑難排解變得更加困難。啟用較為詳盡的日誌層級也會產生較高的資料流量。進行疑難排解時,最佳實務是僅使用 INFO 和 DEBUG 作為臨時措施。疑難排解完成後,請將日誌記錄層級重設為略不詳盡的設定。

解決方法

先決條件

確認您已在本機安裝 AWS Command Line Interface (AWS CLI),並具備 IoT 管理員權限憑證。AWS CLI 的預設 AWS 區域必須指向目標 AWS 區域。您必須讓用戶端連線到您的 AWS IoT Core 端點並與其互動,無論是已註冊或未註冊的 IoT 物件。

**注意:**如果您在執行 AWS CLI 命令時收到錯誤訊息,請確認您使用的是最新版本的 AWS CLI

設定預設日誌記錄層級

將 AWS IoT 日誌的預設日誌記錄層級設定為 ERROR 或 WARN,您可以在發生日誌錯誤或警告時檢閱日誌錯誤或警告。

**注意:**如果您聯絡 AWS Support 以尋求協助,您必須提供 AWS IoT Core 日誌供他們進行疑難排解。此資訊視為客戶資料,且 AWS Support 無法存取。

  1. 執行list-v2-logging-levels AWS CLI 命令,以尋找目前套用的日誌記錄層級組態:
aws iot list-v2-logging-levels

如果因爲未設定日誌記錄層級導致未設定 AWS IoT 日誌,您會收到「NotConfiguredException」錯誤訊息。

如果已設定 AWS IoT Core 日誌但已關閉,則您會收到類似於下列內容的輸出:

{
 "logTargetConfigurations": [
 {
 "logTarget": {
 "targetType": "DEFAULT"
 },
 "logLevel": "DISABLED"
 }
 ]
}

2.    執行下列命令以確認目前為 AWS IoT Core 日誌設定的 AWS Identity and Access Management (AWS IAM) 角色:

aws iot get-v2-logging-options

如果已設定 IAM 角色,您會收到類似於下列內容的輸出:

{
"roleArn": "arn:aws:iam::123456789012:role/service-role/iot-log-role",
"defaultLogLevel": "DISABLED",
"disableAllLogs": false
}

**注意:**如果未設定 IAM 角色,則 AWS IoT Core 無法將日誌傳送到 Amazon CloudWatch,因為您無法使用此功能。

3.    將 AWS IoT Core 預設日誌記錄設定為其中一個略不詳盡的日誌記錄層級,例如 ERROR 或 WARN。這可以使用 AWS IoT 主控台或 AWS CLI 來完成:

**注意:**如果您正在疑難排解問題,但沒有特定的用戶端屬性,則可以暫時將預設日誌記錄層級設定為 DEBUG。將層級設定為 DEBUG 會產生顯著的成本和資料流量,具體取決於機群大小和花費在此層級的持續時間。

AWS IoT 主控台

  1. 登入 AWS IoT 主控台。**注意:**請確認選擇您要設定的 AWS 區域。

2.    在瀏覽窗格中,選擇設定

  1. 日誌下,選擇管理日誌

  2. 日誌角色,選擇建立角色。輸入該角色的名稱,然後選擇建立

  3. 日誌層級下,選擇其中一個略不詳盡的日誌記錄層級 (ERROR 或 WARN)。

  4. 選擇更新

  5. 開啟 IAM 主控台

  6. 在瀏覽窗格中,選擇角色

  7. 輸入您在搜尋方塊中建立的日誌角色名稱,然後選取該角色。

  8. 摘要下,記下該日誌角色的 ARN。這看起來類似於 arn:aws:iam::123456789012:role/service-role/iot-log-role

AWS CLI

  1. 建立 IAM 角色,且該 IAM 角色具備特定 IAM 政策,以用於 AWS IoT Core 日誌服務。

  2. 執行下列命令,將預設日誌記錄層級設定為 WARN:

aws iot set-v2-logging-options \
 --role-arn arn:aws:iam::123456789012:role/service-role/iot-log-role \
 --default-log-level WARN

注意:在此範例中,以您建立的 IAM 角色 ARN 取代--role-arn。以您想要設定為預設層級的日誌記錄層級取代 WARN

  1. 執行下列命令,以確認該變更反映在您的日誌記錄層級中:
aws iot list-v2-logging levels

該輸出看起來類似於下列訊息:

{
 "logTargetConfigurations": [
 {
 "logTarget": {
 "targetType": "DEFAULT"
 },
 "logLevel": "WARN"
 }
 ]
}
  1. 執行下列命令,以確認該變更反映在您的日誌記錄選項中:
aws iot list-v2-logging-options

該輸出看起來類似於下列訊息:

{
 "roleArn": "arn:aws:iam::123456789012:role/service-role/iot-log-role",
 "defaultLogLevel": "WARN",
 "disableAllLogs": false
}

監控產生的記錄

最佳實務是監控 IoT 日誌中的問題。您可以使用 Amazon CloudWatch Logs 主控台或 AWS CLI 來監控您的 AWS IoT Core 日誌。如需詳細資訊,請參閱如何在 AWS IoT Core 中最有效管理 AWS IoT 日誌的日誌記錄層級?的「監控日誌項目」一節

相關資訊

監控 AWS IoT

如何為 AWS IoT Core 中的特定資源動態設定日誌記錄層級?

如何為 AWS IoT Core 中的特定資源手動設定日誌記錄層級?

AWS 官方
AWS 官方已更新 1 年前