如何在 AWS IoT Core 為特定資源動態,設定記錄等級?
我想為 AWS IoT Core 日誌,動態設定資源特定的記錄。
簡短說明
**注意:**本文僅適用 AWS IoT Core 日誌的第 2 版。
您可以使用 AWS IoT Core 日誌,為特定資源動態設定記錄等級。您可以使用動態實物群組以設定資源特定的記錄等級。您必須將用戶端註冊為實物,且它們必須使用與實物名稱相關的相同用戶端 ID 連線。動態實物群組使用機群索引查詢,該查詢會持續尋找符合查詢條件的實物,並自動新增至群組。
最佳實務是設定預設記錄為較低的詳細資訊等級,並設定資源特定的記錄為較高的詳細資訊等級。日誌詳細資訊等級包括 DISABLED (最低)、ERROR、WARN、INFO 和 DEBUG (最高)。
建立或更新動態實物群組時,實物可能有資格加入動態實物群組,而不會自動新增至動態實物群組。如需相關資訊,請參閱成功的命令可以記錄錯誤。
**重要事項:**需視您的 AWS IoT Core 機群大小,開啟更詳細的日誌等級可能會產生高昂的成本,並導致疑難排解變得更困難。INFO 或 DEBUG 只能作為疑難排解時的暫時措施。疑難排解完成後,應該設定記錄等級回較不詳細的設定。
解決方法
先決條件
確定您已使用 IoT 管理員許權限憑證,在本機安裝 AWS Command Line Interface (AWS CLI)。AWS CLI 的預設 AWS 區域必須指向目標 AWS 區域。您必須讓用戶端連線到 AWS IoT Core 端點並進行互動,作為已註冊的 IoT 實物。
**注意:**如果您執行 AWS CLI 命令時收到錯誤訊息,確認您使用的是最新版本的 AWS CLI。
設定特定資源的自動記錄
1. 建立 AWS IoT 實物,並新增實物屬性至該實物。
**注意:**您可以視需要新增更多實物屬性。然後,您可以變更動態實物群組查詢以搜尋這些屬性。
2. 開啟實物索引。
3. 執行 DescribeIndex 命令以驗證您的實物索引有 ACTIVE indexStatus 屬性:
aws iot describe-index --index-name "AWS_Things"
4. 使用 AWS IoT 主控台或 AWS CLI,建立動態實物群組。
AWS IoT 主控台
1. 如果尚未開啟機群索引,請先開啟。
2. 登入 AWS IoT 主控台。
3. 在導覽窗格,選擇所有裝置,然後選擇實物群組。
4. 選擇建立實物群組。
5. 針對實物群組類型,選擇建立動態實物群組,然後選擇下一步。
6. 針對實務群組名稱,輸入 logging_level_debug_dynamic。然後,選擇建立實物群組。
**注意:**使用您的實物群組名稱,取代 logging_level_debug_dynamic。
7. 在查詢下,輸入 attributes.firmware:1,然後按 Enter 以套用搜尋查詢陳述式。
**注意:**使用您要用於查詢的實物屬性和值,取代 firmware:1。
8. 選擇預覽查詢以查看符合查詢條件的所有實物。
9. 選擇建立實物群組。
AWS CLI
1. 執行 CreateDynamicThingGroup 命令以建立動態實物群組:
**注意:**動態實物群組不會立即建立,可能需要一些時間才能完成。如需相關資訊,請參閱建立動態實物群組。
aws iot create-dynamic-thing-group \ --thing-group-name "logging_level_debug_dynamic" \ --query-string "attributes.firmware:1"
**注意:**在前述範例,使用您要用於查詢的屬性和值,取代 firmware:1。使用您的實物群組名稱,取代 logging_level_debug_dynamic。
輸出看起來類似下列訊息:
{ "thingGroupName": "logging_level_debug_dynamic", "thingGroupArn": "arn:aws:iot:eu-west-1:123456789012:thinggroup/logging_level_debug_dynamic", "thingGroupId": "b8f96cc3-f36b-4da2-b0f8-e28f5a123456", "indexName": "AWS_Things", "queryString": "attributes.firmware:1", "queryVersion": "2017-09-30" }
2. 執行 DescribeThingGroup 命令以驗證您的動態實物群組為 ACTIVE:
aws iot describe-thing-group --thing-group-name "logging_level_debug_dynamic"
**注意:**在前述的範例,使用您的實物群組名稱,取代 logging_level_debug_dynamic。
輸出看起來類似下列訊息:
{ "thingGroupName": "logging_level_debug_dynamic", "thingGroupId": "b8f96cc3-f36b-4da2-b0f8-e28f5a123456", "thingGroupArn": "arn:aws:iot:eu-west-1:123456789012:thinggroup/logging_level_debug_dynamic", "version": 1, "thingGroupProperties": {}, "thingGroupMetadata": { "creationDate": "2022-11-30T12:37:19.980000+00:00" }, "indexName": "AWS_Things", "queryString": "attributes.firmware:1", "queryVersion": "2017-09-30", "status": "ACTIVE" }
3. 執行 SetV2LoggingLevel 命令以設定資源的記錄等級。設定記錄等級最多可能需要十分鐘才能完成。
aws iot set-v2-logging-level \ --log-target targetType=THING_GROUP,targetName=logging_level_debug_dynamic \ --log-level DEBUG
**注意:**在前述的範例,使用您的動態實物群組名稱,取代 logging_level_debug_dynamic。
輸出看起來類似下列訊息。預設記錄會包含在輸出中,並根據您的組態包含詳細資料。也會顯示您已設定的其他記錄等級。
{ "logTargetConfigurations": [{ "logTarget": { "targetType": "DEFAULT" }, "logLevel": "WARN" }, { "logTarget": { "targetType": "THING_GROUP", "targetName": " logging_level_debug_dynamic " }, "logLevel": "DEBUG" } ] }
監控產生的日誌
最佳實務是監控 IoT 日誌中的問題。您可以使用 AWS CloudWatch Logs 主控台或 AWS CLI 以監控您的 AWS IoT Core 日誌。如需相關資訊,請參閱如何在 AWS IoT Core 最有效管理 AWS IoT 日誌的記錄等級?的「監控日誌項目」一節。
相關資訊
相關內容
- 已提問 10 個月前lg...
- 已提問 9 個月前lg...
- 已提問 1 年前lg...
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前