本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 AWS IoT 記錄
您必須使用 AWS IoT 主控台、 或 啟用記錄CLI,API才能監控和記錄 AWS IoT 活動。
您可以為所有 AWS IoT 或僅特定物件群組啟用記錄。您可以使用 AWS IoT 主控台、 CLI或 來設定 AWS IoT 記錄API;不過,您必須使用 CLI或 API 來設定特定物件群組的記錄。
在考慮如何設定 AWS IoT 記錄時,預設記錄組態會決定如何記錄 AWS IoT 活動,除非另有指定。開始之後,您可能想要取得具有 INFO
的預設日誌層級或 DEBUG
。檢閱初始日誌後,您可以將預設日誌層級變更為較不詳細的層級,例如 WARN
或 ERROR
,並在可能需要更多注意的資源上設定更詳細的資源特定日誌層級。您可以隨時更改日誌層級。
本主題涵蓋 中的雲端登入 AWS IoT。如需有關裝置端記錄和監控的資訊,請參閱將裝置端日誌上傳至 CloudWatch。
如需記錄和監控 的資訊 AWS IoT Greengrass,請參閱 中的記錄和監控 AWS IoT Greengrass。自 2023 年 6 月 30 日起, AWS IoT Greengrass 核心軟體已遷移至 AWS IoT Greengrass Version 2。
設定記錄角色和政策
在啟用登入 之前 AWS IoT,您必須建立IAM角色和政策,以 AWS 允許 代表您監控 AWS IoT 活動。您也可以使用主控台的日誌區段 AWS IoT
注意
啟用 AWS IoT 記錄之前,請確定您了解 CloudWatch Logs 存取權限。有權存取 CloudWatch Logs 的使用者可以看到來自您裝置的偵錯資訊。如需詳細資訊,請參閱 Amazon CloudWatch Logs 的身分驗證和存取控制。
如果您 AWS IoT Core 預期由於負載測試而進入高流量模式,請考慮關閉 IoT 記錄以防止限流。若偵測到高流量,我們的服務可能會停用您的帳戶登入。
以下說明如何建立 AWS IoT Core 資源的記錄角色和政策。
建立記錄角色
若要建立記錄角色,請開啟IAM主控台的角色中樞
-
在 Select trusted entity (選取信任的實體) 下,選取 AWS service (服務)。然後在 Use case (使用案例) 下選擇 IoT。如果未顯示 IoT,請從 Use cases for other AWS services: (其他 服務的使用案例:) 下拉式清單中輸入並搜尋 IoT。選取下一步。
-
在 Add permissions (新增許可) 頁面上,您會看到自動連接到服務角色的政策。選擇 Next (下一步)。
-
在 Name, review, and create (命名、檢閱和建立) 頁面上,輸入角色的 Role name (角色名稱) 和 Role description (角色描述),然後選擇 Create role (建立角色)。
-
在角色 清單中,尋找您建立的角色、開啟角色,然後複製角色 ARN (
logging-role-arn
) 用於 在 AWS IoT (主控台) 中設定預設記錄。
記錄角色政策
下列政策文件提供角色政策和信任政策, AWS IoT 允許 CloudWatch 代表您提交日誌項目。如果您也允許 AWS IoT Core LoRaWAN提交日誌項目,您會看到為您建立的政策文件,該文件會記錄這兩個活動。
注意
這些文件是在您建立記錄角色時為您建立的。文件具有變數,${partition}
,
和 ${region}
,您必須以值取代 。${accountId}
角色政策:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:PutMetricFilter", "logs:PutRetentionPolicy", "iot:GetLoggingOptions", "iot:SetLoggingOptions", "iot:SetV2LoggingOptions", "iot:GetV2LoggingOptions", "iot:SetV2LoggingLevel", "iot:ListV2LoggingLevels", "iot:DeleteV2LoggingLevel" ], "Resource": [ "arn:${partition}:logs:${region}:${accountId}:log-group:AWSIotLogsV2:*" ] } ] }
僅記錄 AWS IoT Core 活動的信任政策:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
在 AWS IoT (主控台) 中設定預設記錄
本節說明如何使用 AWS IoT 主控台來設定所有 的記錄 AWS IoT。若要僅針對特定物件群組設定記錄,您必須使用 CLI或 API。如需設定特定事物群組記錄的相關資訊,請參閱 設定資源特定的登入 AWS IoT (CLI)。
若要使用 AWS IoT 主控台來設定所有 的預設記錄 AWS IoT
-
登入 AWS IoT 主控台。如需詳細資訊,請參閱開啟 AWS IoT 主控台。
-
在左側的導覽窗格中,選擇設定。在 Settings (設定) 頁面的 Logs (記錄) 區段中,選擇 Manage logs (管理日誌)。
Logs (日誌) 頁面會顯示所有 AWS IoT使用的記錄日誌角色和詳細資訊層級。
-
在 Logs (日誌) 頁面,選擇 Select role (選取角色) 以指定您先前建立於 建立記錄角色 的角色,或選擇 Create Role (建立角色) 以建立一個用於記錄的角色。
-
選擇描述您要出現在日誌中日誌項目詳細資訊層級的 CloudWatch 日誌層級。
-
選擇 Update (更新) 以儲存您的設定。
啟用記錄之後,請造訪 在 CloudWatch 主控台中檢視 AWS IoT 日誌 以進一步了解檢視記錄項目。
設定預設登入 AWS IoT (CLI)
本節說明如何 AWS IoT 使用 設定 的全域記錄CLI。
注意
您也可以API使用 中 AWS API對應至此處所示CLI命令的方法,對 執行此程序。
使用 CLI設定 的預設記錄 AWS IoT
-
請使用 set-v2-logging-options
命令來設定您的帳戶的記錄選項。 aws iot set-v2-logging-options \ --role-arn
logging-role-arn
\ --default-log-levellog-level
其中:
- --role-arn
-
此角色ARN授予 AWS IoT 許可,以寫入 Logs 中的 CloudWatch 日誌。
- --default-log-level
-
欲使用的日誌層級。有效值為
ERROR
、WARN
、INFO
、DEBUG
或DISABLED
。 - --no-disable-all-logs
-
啟用所有 AWS IoT 記錄的選用參數。使用此參數可在目前該參數停用時啟用記錄功能。
- --disable-all-logs
-
選用參數,可停用所有 AWS IoT 記錄。使用此參數可在該參數目前啟用時停用記錄功能。
-
使用 get-v2-logging-options
命令取得目前的記錄選項。 aws iot get-v2-logging-options
啟用記錄之後,請造訪 在 CloudWatch 主控台中檢視 AWS IoT 日誌 以進一步了解檢視記錄項目。
注意
AWS IoT 繼續支援較舊的命令 (set-logging-options 和 get-logging-options),以設定和取得您 帳戶的全域記錄。請注意,當使用這些命令時,產生的日誌包含純文字,而不是JSON承載,且日誌記錄延遲通常較高。這些較舊指令的實施將不會進一步改進。我們建議您使用「v2」版本以設定您的記錄選項,並且,若可能的話,變更使用較舊版本的舊版應用程式。
設定資源特定的登入 AWS IoT (CLI)
本節說明如何 AWS IoT 使用 設定 的資源特定日誌CLI。資源特定的記錄允許您指定特定物件群組的日誌層級。
物件群組可以包含其他物件群組來建立階層關係。此程序說明如何設定單一物件群組的記錄。您可以將此程序套用至階層中的父項物件群組,以設定階層中所有物件群組的記錄。您也可以將此過程應用於子事件組,以覆蓋其父項的記錄組態。
除物件群組之外,您還可以記錄目標,如裝置的用戶端 ID、來源 IP 和主體 ID。
注意
您也可以API使用 中 AWS API對應至此處所示CLI命令的方法,對 執行此程序。
使用 CLI來設定 的資源特定記錄 AWS IoT
-
請使用 set-v2-logging-options
命令來設定您的帳戶的記錄選項。 aws iot set-v2-logging-options \ --role-arn
logging-role-arn
\ --default-log-levellog-level
其中:
- --role-arn
-
此角色ARN授予 AWS IoT 許可,以寫入 Logs 中的 CloudWatch 日誌。
- --default-log-level
-
欲使用的日誌層級。有效值為
ERROR
、WARN
、INFO
、DEBUG
或DISABLED
。 - --no-disable-all-logs
-
啟用所有 AWS IoT 記錄的選用參數。使用此參數可在目前該參數停用時啟用記錄功能。
- --disable-all-logs
-
選用參數,可停用所有 AWS IoT 記錄。使用此參數可在該參數目前啟用時停用記錄功能。
-
使用 set-v2-logging-level
命令來設定物件群組的資源特定記錄。 aws iot set-v2-logging-level \ --log-target targetType=THING_GROUP,targetName=
thing_group_name
\ --log-levellog_level
- --log-target
-
您設定欲記錄的資源類型與名稱。
target_type
值必須是以下其中之一:THING_GROUP
|CLIENT_ID
|SOURCE_IP
|PRINCIPAL_ID
。日誌目標參數值可以是文字,如上一個命令範例所示,也可以是JSON字串,例如下列範例。aws iot set-v2-logging-level \ --log-target '{"targetType": "THING_GROUP","targetName": "
thing_group_name
"}' \ --log-levellog_level
- --log-level
-
為指定資源產生日誌時所用的日誌層級。有效值為:DEBUG、INFO、ERROR、WARN、DISABLED
aws iot set-v2-logging-level \ --log-target targetType=CLIENT_ID,targetName=
ClientId1
\ --log-levelDEBUG
-
使用 list-v2-logging-levels
命令列出目前設定的日誌層級。 aws iot list-v2-logging-levels
-
使用 delete-v2-logging-level
命令可刪除特定資源的日誌層級,如下列範例所示: aws iot delete-v2-logging-level \ --target-type "THING_GROUP" \ --target-name "
thing_group_name
"aws iot delete-v2-logging-level \ --target-type=CLIENT_ID --target-name=
ClientId1
- --targetType
-
target_type
值必須是以下其中之一:THING_GROUP
|CLIENT_ID
|SOURCE_IP
|PRINCIPAL_ID
。 - --targetName
-
要移除日誌層級之物件群組的名稱。
啟用記錄之後,請造訪 在 CloudWatch 主控台中檢視 AWS IoT 日誌 以進一步了解檢視記錄項目。
日誌層級
這些日誌層級會決定記錄的事件,並套用至預設和資源特定的日誌層級。
- ERROR
-
導致操作失敗的錯誤。
日誌僅包含ERROR資訊。
- WARN
-
會導致系統內出現不一致,但可能不會造成操作失敗的情況。
日誌包含 ERROR和 WARN 資訊。
- INFO
-
物件流的高層級資訊。
日誌包括 INFO、 ERROR和 WARN 資訊。
- DEBUG
-
可能有助於偵錯問題的資訊。
日誌包括 DEBUG、INFO、 ERROR和 WARN資訊。
- DISABLED
-
已停用所有記錄功能。