設定 AWS IoT 日誌 - AWS IoT Core

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

設定 AWS IoT 日誌

您必須使用 AWS IoT 主控台CLI、或API之前您可以監視和記錄 AWS IoT 活動。

您可以啟用所有記錄 AWS IoT 或只有特定的事物群組。您可以配置 AWS IoT 使用記錄 AWS IoT 控制台CLI、或API;但是,您必須使用CLI或API來配置特定物群組的記錄。

在考慮如何配置 AWS IoT 記錄,預設的記錄組態會決定如何 AWS IoT 除非另有指定,否則活動將被記錄。開始之後,您可能想要取得具有 INFO 的預設日誌層級DEBUG。檢閱初始日誌後,您可以將預設日誌層級變更為較不詳細的層級,例如 WARNERROR,並在可能需要更多注意的資源上設定更詳細的資源特定日誌層級。您可以隨時更改日誌層級。

本主題涵蓋雲端記錄 AWS IoT。 如需裝置端記錄和監控的相關資訊,請參閱將裝置端記錄上傳至。 CloudWatch

有關記錄和監控的信息 AWS IoT Greengrass,請參閱日誌記錄和監控 AWS IoT Greengrass。 截至二零二三年六月三十日, AWS IoT Greengrass 核心軟體已移轉至 AWS IoT Greengrass Version 2.

設定記錄角色和政策

啟用登入之前 AWS IoT,您必須創建一個IAM角色和政策 AWS 監視權限 AWS IoT 代表您進行的活動。您也可以使用的 [記錄] 區段中所需的政策產生IAM角色 AWS IoT 控制台

注意

啟用之前 AWS IoT 記錄時,請確保您了解 CloudWatch 日誌訪問權限。具有 CloudWatch 記錄存取權的使用者可以從您的裝置看到偵錯資訊。如需詳細資訊,請參閱 Amazon CloudWatch 日誌的身分驗證和存取控制

如果您期望高流量模式 AWS IoT Core 由於負載測試,請考慮關閉 IoT 記錄以防止節流。若偵測到高流量,我們的服務可能會停用您的帳戶登入。

下列顯示如何建立記錄角色和原則 AWS IoT Core 的費用。

建立記錄角色

若要建立記錄角色,請開啟IAM主控台的 [角色] 中樞,然後選擇 [建立角色]。

  1. [選取信任的實體] 底下,AWS 服務。然後在 Use case (使用案例) 下選擇 IoT。如果您沒有看到 IoT,請從使用案例中輸入並搜尋其他 IoT AWS 服務:下拉菜單。選取下一步

  2. Add permissions (新增許可) 頁面上,您會看到自動連接到服務角色的政策。選擇 Next (下一步)

  3. Name, review, and create (命名、檢閱和建立) 頁面上,輸入角色的 Role name (角色名稱) 和 Role description (角色描述),然後選擇 Create role (建立角色)。

  4. 在「角色」列表中,找到您創建的角色,打開它,然后拷貝「色」ARN(logging-role-arn)當你使用設定預設記錄 AWS IoT (控制台)

記錄角色政策

下列原則文件提供允許的角色原則和信任原則 AWS IoT 以代表您提交記錄項目。 CloudWatch 如果你也允許 AWS IoT Core LoRaWAN若要提交記錄項目,您會看到為您建立的政策文件,用於記錄這兩項活動。

注意

這些文件是在您建立記錄角色時為您建立的。這些文件有變量,$ {分割區}, $ {區域}${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
  1. 登入 AWS IoT 控制台。如需詳細資訊,請參閱打開 AWS IoT 主控台

  2. 在左側的導覽窗格中,選擇設定。在 Settings (設定) 頁面的 Logs (記錄) 區段中,選擇 Manage logs (管理日誌)。

    日誌」頁面會顯示所有使用者所使用的記錄日誌角色和詳細資訊層級 AWS IoT.

    顯示記錄檔角色和詳細資訊層級的 [記錄檔] 頁面。
  3. Logs (日誌) 頁面,選擇 Select role (選取角色) 以指定您先前建立於 建立記錄角色 的角色,或選擇 Create Role (建立角色) 以建立一個用於記錄的角色。

    顯示記錄角色和記錄層級的 [記錄檔] 頁面。
  4. 選擇說明您要顯示在記檔中之記錄項目詳細資訊層級的 CloudWatch 記錄層級。

  5. 選擇 Update (更新) 以儲存您的設定。

啟用記錄之後,請造訪 檢視 AWS IoT CloudWatch 控制台中的日誌 以進一步了解檢視記錄項目。

設定預設登入 AWS IoT (CLI)

本節說明如何設定全域記錄 AWS IoT 透過使用CLI.

注意

您需要要使用的角色的 Amazon 資源名稱 (ARN)。如果您需要建立用於記錄的角色,請在繼續前參閱 建立記錄角色

用來呼叫的主體API必須具有您傳遞角色權限的記錄角色。

您也可以使用中的方法API來執行此程序 AWS API對應於此處顯示的CLI命令。

若要使用CLI設定預設記錄 AWS IoT
  1. 請使用 set-v2-logging-options 命令來設定您的帳戶的記錄選項。

    aws iot set-v2-logging-options \ --role-arn logging-role-arn \ --default-log-level log-level

    其中:

    --role-arn

    授予ARN的角色 AWS IoT 在日誌中寫入日 CloudWatch 誌的權限。

    --default-log-level

    欲使用的日誌層級。有效值為 ERRORWARNINFODEBUGDISABLED

    --no-disable-all-logs

    一個可選參數,啟用所有 AWS IoT 日誌記錄。使用此參數可在目前該參數停用時啟用記錄功能。

    --disable-all-logs

    禁用所有的可選參數 AWS IoT 日誌記錄。使用此參數可在該參數目前啟用時停用記錄功能。

  2. 使用 get-v2-logging-options 命令取得目前的記錄選項。

    aws iot get-v2-logging-options

啟用記錄之後,請造訪 檢視 AWS IoT CloudWatch 控制台中的日誌 以進一步了解檢視記錄項目。

注意

AWS IoT 繼續支持較舊的命令(set-logging-optionsget-logging-options)來設置和獲取您的帳戶的全局日誌記錄。請注意,使用這些命令時,產生的記錄檔包含純文字,而不是JSON裝載,而且記錄延遲通常會較高。這些較舊指令的實施將不會進一步改進。我們建議您使用「v2」版本以設定您的記錄選項,並且,若可能的話,變更使用較舊版本的舊版應用程式。

設定資源特定的登入 AWS IoT (CLI)

本節說明如何設定資源特定的記錄 AWS IoT 透過使用CLI. 資源特定的記錄允許您指定特定物件群組的日誌層級。

物件群組可以包含其他物件群組來建立階層關係。此程序說明如何設定單一物件群組的記錄。您可以將此程序套用至階層中的父項物件群組,以設定階層中所有物件群組的記錄。您也可以將此過程應用於子事件組,以覆蓋其父項的記錄組態。

除物件群組之外,您還可以記錄目標,如裝置的用戶端 ID、來源 IP 和主體 ID。

注意

您需要要使用的角色的 Amazon 資源名稱 (ARN)。如果您需要建立用於記錄的角色,請在繼續前參閱 建立記錄角色

用來呼叫的主體API必須具有您傳遞角色權限的記錄角色。

您也可以使用中的方法API來執行此程序 AWS API對應於此處顯示的CLI命令。

若要使用設CLI定資源特定的記錄 AWS IoT
  1. 請使用 set-v2-logging-options 命令來設定您的帳戶的記錄選項。

    aws iot set-v2-logging-options \ --role-arn logging-role-arn \ --default-log-level log-level

    其中:

    --role-arn

    授予ARN的角色 AWS IoT 在日誌中寫入日 CloudWatch 誌的權限。

    --default-log-level

    欲使用的日誌層級。有效值為 ERRORWARNINFODEBUGDISABLED

    --no-disable-all-logs

    一個可選參數,啟用所有 AWS IoT 日誌記錄。使用此參數可在目前該參數停用時啟用記錄功能。

    --disable-all-logs

    禁用所有的可選參數 AWS IoT 日誌記錄。使用此參數可在該參數目前啟用時停用記錄功能。

  2. 使用 set-v2-logging-level 命令來設定物件群組的資源特定記錄。

    aws iot set-v2-logging-level \ --log-target targetType=THING_GROUP,targetName=thing_group_name \ --log-level log_level
    --log-target

    您設定欲記錄的資源類型與名稱。target_type 值必須是以下其中之一:THING_GROUP | CLIENT_ID | SOURCE_IP | PRINCIPAL_ID。log-目標參數值可以是 text (如上述命令範例所示),也可以是JSON字串 (如下列範例)。

    aws iot set-v2-logging-level \ --log-target '{"targetType": "THING_GROUP","targetName": "thing_group_name"}' \ --log-level log_level
    --log-level

    為指定資源產生日誌時所用的日誌層級。有效值為:DEBUGINFOERRORWARNDISABLED

    aws iot set-v2-logging-level \ --log-target targetType=CLIENT_ID,targetName=ClientId1 \ --log-level DEBUG
  3. 使用 list-v2-logging-levels 命令列出目前設定的日誌層級。

    aws iot list-v2-logging-levels
  4. 使用 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

    要移除日誌層級之物件群組的名稱。

啟用記錄之後,請造訪 檢視 AWS IoT CloudWatch 控制台中的日誌 以進一步了解檢視記錄項目。

日誌層級

這些日誌層級會決定記錄的事件,並套用至預設和資源特定的日誌層級。

ERROR

導致操作失敗的錯誤。

記錄檔僅包含ERROR資訊。

WARN

會導致系統內出現不一致,但可能不會造成操作失敗的情況。

日誌包括ERROR和WARN信息。

INFO

物件流的高層級資訊。

記錄檔包括INFOERROR、和WARN資訊。

DEBUG

可能有助於偵錯問題的資訊。

記錄檔包括DEBUGINFO、ERROR、和WARN資訊。

DISABLED

已停用所有記錄功能。