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

2 分的閱讀內容
0

我想要為 AWS IoT Core 日誌手動設定資源特定的日誌。

簡短描述

**注意:**本文僅與 AWS IoT Core 日誌的 V2 有關。

AWS IoT Core 日誌可讓您針對以下項目設定資源特定的記錄層級:

  • 客戶註冊為物件
  • 客戶未註冊為物件

這是透過為特定目標類型建立記錄層級並設定其詳細程度等級來完成的。目標類型包括 THING_GROUP、CLIENT_ID、SOURCE_IP 或 PRINCIPAL_ID。最佳做法是將預設記錄設定為較低的詳細資訊層級,並將資源特定記錄設定為較高的詳細資訊層級。

日誌詳盡度層級包括 DISABLED (停用) (最低)、ERROR (錯誤)、WARN (警告)、INFO (資訊) 和 DEBUG (偵錯) (最高)。

**重要事項:**視您的 AWS IoT Core 叢集大小而定,開啟更詳細的日誌層級可能會產生高昂的成本,並使疑難排解變得更加困難。開啟詳細記錄也會產生更高的資料流量。INFO 或 DEBUG 只能用作故障排除時的臨時措施。疑難排解完成後,應將記錄層級設回較不詳細的設定。

分辨率

前提

確保您已使用 IoT 管理員許可登入資料在本機安裝 AWS 命令列界面 (AWS CLI)。AWS CLI 的預設 AWS 區域必須指向目標 AWS 區域。您必須讓用戶端連線到 AWS IoT Core 端點並與其互動,無論是作為已註冊或未註冊的 IoT 物件。

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

為註冊為物件的用戶端設定手動記錄

您可以在已定義的記錄層級管理多個物件的資源特定記錄,然後手動新增或移除物件群組中的物件。您的裝置和用戶端必須在 AWS IoT Core 中註冊為 IoT 物件,而且必須使用相同的用戶端 ID 關聯物件名稱進行連線。然後,您可以使用具有 THING\ _GROUP 目標類型的靜態物件群組來管理物件群組。如果您在階層中配置父項物件群組,則組態也會套用至階層的子項物件群組。

**注意:**如果您使用靜態物件群組做為目標類型,則必須考慮其配額限制。如需詳細資訊,請參閱AWS IoT Core 物件群組資源限制和配額

1.    建立兩個靜態物件群組。您可以使用 AWS IoT 主控台或使用 AWS CLI 中的建立物件群組命令來執行此操作。在此範例中,會使用 AWS CLI。

aws iot create-thing-group --thing-group-name logging_level_info
aws iot create-thing-group --thing-group-name logging_level_debug

注意:如果您正在使用現有的物群組,請以物件群組的名稱取代logging_level_infologging_level_debug

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

{
 "thingGroupName": "logging_level_info",
 "thingGroupArn": "arn:aws:iot:eu-west1-1:123456789012:thinggroup/logging_level_info",
 "thingGroupId": "58dd497e-97fc-47d2-8745-422bb21234AA"
}
{
 "thingGroupName": "logging_level_debug",
 "thingGroupArn": "arn:aws:iot:eu-west-1:123456789012:thinggroup/logging_level_debug",
 "thingGroupId": "2a9dc698-9a40-4487-81ec-2cb4101234BB"
}

2.    執行 SetV2LoggingLevel 命令來設定物件群組的記錄層級: **注意:**日誌層級組態變更最多可能需要 10 分鐘的時間才會反映出來。

aws iot set-v2-logging-level \
 --log-target targetType=THING_GROUP,targetName=logging_level_info \
 --log-level INFO

aws iot set-v2-logging-level \
--log-target targetType=THING_GROUP,targetName=logging_level_debug \
--log-level DEBUG

注意:INFODEBUG 取代為您要為每個物件群組設定的日誌層級。

3.    執行下列命令以確認記錄層級設定正確:

aws iot list-v2-logging-levels

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

{
 "logTargetConfigurations": [
 {
 "logTarget": {
 "targetType": "DEFAULT"
 },
 "logLevel": "WARN"
 },
 {
 "logTarget": {
 "targetType": "THING_GROUP",
 "targetName": "logging_level_debug"
 },
 "logLevel": "DEBUG"
 },
 {
 "logTarget": {
 "targetType": "THING_GROUP",
 "targetName": "logging_level_info"
 },
 "logLevel": "INFO"
 }
 ]
}

4.    執行「新增至物件群組」指令,將物件新增至適當的物件群組:

aws iot add-thing-to-thing-group \
 --thing-name YourThingName1 \
 --thing-group-name logging_level_info

**注意:**以您要新增至物件群組之物件的名稱取代「您的物件名稱 1」。

為未註冊為物件的用戶端設定手動記錄

如果您沒有將物件註冊到 AWS IoT Core,仍然可以為多個目標類型新增資源特定的記錄層級。這些目標類型是用戶端屬性,包括 CLIENT_ID、SOURCE_IP 或PRINCIPAL_ID。如果您的裝置已註冊為 AWS IoT Core 物件,您仍然可以使用這些用戶端屬性來管理記錄層級。

1.    執行SetV2LoggingLevel 命令來設定特定用戶端的記錄層級:

aws iot set-v2-logging-level \
 --log-target targetType=CLIENT_ID,targetName=YourClientId \
 --log-level YourLogLevel

**注意:**若要使用不同的目標類型,請將 CLIENT\ _ID 取代為目標用戶端所使用的支援值,例如 SOURCE_IP 或 PRINCIPAL_ID。

2.    執行下列命令以確認記錄層級設定正確:

aws iot list-v2-logging-levels

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

...
 {
 "logTarget": {
 "targetType": "CLIENT_ID",
 "targetName": "YourClientId"
 },
 "logLevel": "YourLogLevel"
 }
...

監控生成的日誌

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

相關資訊

監控 AWS 物聯網

如何設定 AWS IoT Core 的預設記錄設定?

如何針對 AWS IoT Core 中的特定資源動態設定記錄層級?

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