使用日誌見解分析 CloudWatch 日誌 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink 之前稱為 Amazon Kinesis Data Analytics for Apache Flink。

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

使用日誌見解分析 CloudWatch 日誌

如上一節所述,將 CloudWatch 記錄選項新增至應用程式之後,您可以使用 Lo CloudWatch gs Insights 查詢特定事件或錯誤的記錄資料流。

CloudWatch 日誌洞見可讓您以互動方式搜尋和分析 CloudWatch 記錄中的記錄資料。

如需開始使用 CloudWatch 日誌洞見的相關資訊,請參閱使用日誌深入解析分析 CloudWatch 記錄資料

執行範例查詢

本節說明如何執行範例 CloudWatch 記錄見解查詢。

先決條件

  • 在記錄檔中設定的現有記錄群組和 CloudWatch 記錄串流。

  • 記錄檔中儲存的現有 CloudWatch 記錄檔。

如果您使用 Amazon 路線 53 或 Amazon VPC 之類的服務,則可能已經從這些服務設置了日誌以轉到 CloudWatch 日誌。 AWS CloudTrail如需將記錄檔傳送至 CloudWatch 記錄檔的詳細資訊,請參閱 CloudWatch 記錄檔入門

CloudWatch Logs Insights 中的查詢會傳回記錄事件中的一組欄位,或是數學彙總或對記錄事件執行的其他作業的結果。本節示範的查詢會傳回日誌事件清單。

若要執行 CloudWatch 日誌見解範例查詢
  1. 請在以下位置開啟 CloudWatch 主控台。 https://console.aws.amazon.com/cloudwatch/

  2. 在導覽窗格中,選擇 Insights

  3. 熒幕上方附近的查詢編輯器包含可傳回 20 筆最新日誌事件的預設查詢。在查詢編輯器上方,選取要查詢的日誌群組。

    當您選取記錄群組時, CloudWatch Logs Insights 會自動偵測記錄群組中資料的欄位,並將這些欄位顯示在右窗格的 [探查] 欄位中。它也會顯示一段時間內此日誌群組中日誌事件的長條圖。此長條圖顯示日誌群組中符合您的查詢和時間範圍的事件分佈,而不只是表格中顯示的事件。

  4. 選擇 Run query (執行查詢)。

    查詢的結果隨即出現。在這個範例中,結果是最新的 20 個日誌事件 (任何類型)。

  5. 若要查看其中一個傳回的日誌事件的所有欄位,請選擇該日誌事件左側的箭頭。

如需如何執行及修改 CloudWatch 記錄見解查詢的相關資訊,請參閱執行和修改查詢範例

查詢範例

本節包含 CloudWatch 記錄見解範例查詢,用於分析 Apache Flink 應用程式記錄的受管理服務。這些查詢會搜尋數個範例錯誤條件,並作為撰寫查詢以尋找其他錯誤條件的範本。

注意

將下列查詢範例中的地區 (us-west-2)、帳戶識別碼 (012345678901) 和應用程式名稱 (YourApplication) 取代為應用程式的「地區」和「帳戶 ID」。

分析操作:任務的分佈

下列 CloudWatch 記錄見解查詢會傳回 Apache Flink Job 管理員在工作管理員之間分配的工作數目。您需要將查詢的時間範圍設定為符合一個作業執行,以便查詢不會傳回來自先前作業的任務。如需平行處理層級的詳細資訊,請參閱擴展

fields @timestamp, message | filter message like /Deploying/ | parse message " to flink-taskmanager-*" as @tmid | stats count(*) by @tmid | sort @timestamp desc | limit 2000

下列 CloudWatch 記錄見解查詢會傳回指派給每個工作管理員的子工作。子任務的總數是每個任務的平行處理層級的總和。任務平行處理層級衍生自運算子平行處理層級,且預設會與應用程式的平行處理層級相同,除非您在程式碼中指定 setParallelism 來變更它。如需設定運算子平行處理的詳細資訊,請參閱 Apache Flink 文件中的設定平行處理:運算子層級

fields @timestamp, @tmid, @subtask | filter message like /Deploying/ | parse message "Deploying * to flink-taskmanager-*" as @subtask, @tmid | sort @timestamp desc | limit 2000

如需任務排程的詳細資訊,請參閱 Apache Flink 文件中的作業和排程

分析作業:平行處理原則的變更

下列 CloudWatch Logs Insights 查詢會傳回應用程式平行處理原則的變更 (例如,由於自動調整規模)。此查詢還會傳回應用程式平行處理層級的手動變更。如需自動擴展的相關資訊,請參閱自動調整規模

fields @timestamp, @parallelism | filter message like /property: parallelism.default, / | parse message "default, *" as @parallelism | sort @timestamp asc

分析錯誤:存取遭拒

下列 CloudWatch 記錄深入解析查詢會傳回Access Denied記錄檔。

fields @timestamp, @message, @messageType | filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/ | filter @message like /AccessDenied/ | sort @timestamp desc

分析錯誤:找不到來源或接收器

下列 CloudWatch 記錄深入解析查詢會傳回ResourceNotFound記錄檔。 ResourceNotFound如果找不到 Kinesis 來源或接收器,則記錄結果。

fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/ | filter @message like /ResourceNotFoundException/ | sort @timestamp desc

分析錯誤:應用程式工作相關的失敗

下列 CloudWatch 記錄見解查詢會傳回應用程式的工作相關失敗記錄。如果應用程式的狀態從 RUNNING 切換到 RESTARTING,就會產生這些日誌結果。

fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/ | filter @message like /switched from RUNNING to RESTARTING/ | sort @timestamp desc

對於使用 Apache Flink 1.8.2 版及以前版本的應用程式,任務相關的失敗將導致應用程式狀態反而從 RUNNING 切換到 FAILED。使用 Apache Flink 1.8.2 及之前版本時,請使用下列查詢來搜尋與應用程式任務相關的失敗:

fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalyticsus-west-2:012345678901:application\/YourApplication/ | filter @message like /switched from RUNNING to FAILED/ | sort @timestamp desc