Amazon Managed Service for Apache Flink 之前稱為 Amazon Kinesis Data Analytics for Apache Flink。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 CloudWatch Logs Insights 分析日誌
如上一節所述,將 CloudWatch 記錄選項新增至應用程式後,您可以使用 CloudWatch Logs Insights 查詢您的日誌串流中是否有特定事件或錯誤。
CloudWatch Logs Insights 可讓您以互動方式搜尋和分析 CloudWatch Logs 中的日誌資料。
如需 CloudWatch Logs Insights 使用入門的相關資訊,請參閱使用 CloudWatch Logs Insights 分析日誌資料。
執行範例查詢
本節描述了如何執行 CloudWatch Logs Insights 查詢範例。
先決條件
-
在 CloudWatch Logs 中設定的現有日誌群組和日誌串流。
-
存放在 CloudWatch Logs 中的現有日誌。
如果您使用 服務 AWS CloudTrail,例如 Amazon Route 53 或 Amazon VPC,您可能已經設定這些服務的日誌以前往 CloudWatch Logs。如需將日誌傳送到 CloudWatch Logs 的詳細資訊,請參閱 CloudWatch Logs 入門。
CloudWatch Logs Insights 中的查詢會從日誌事件傳回一組欄位,或在日誌事件上執行的數學彙總或其他運算的結果。本節示範的查詢會傳回日誌事件清單。
執行 CloudWatch Logs Insights 範例查詢
透過 https://console.aws.amazon.com/cloudwatch/
開啟 CloudWatch 主控台。 -
在導覽窗格中,選擇 Insights。
-
熒幕上方附近的查詢編輯器包含可傳回 20 筆最新日誌事件的預設查詢。在查詢編輯器上方,選取要查詢的日誌群組。
選取日誌群組時,CloudWatch Logs Insights 會自動偵測日誌群組中資料內的欄位,並在右側窗格的 Discovered fields (已探索欄位) 中顯示。它也會顯示一段時間內此日誌群組中日誌事件的長條圖。此長條圖顯示日誌群組中符合您的查詢和時間範圍的事件分佈,而不只是表格中顯示的事件。
-
選擇 Run query (執行查詢)。
查詢的結果隨即出現。在這個範例中,結果是最新的 20 個日誌事件 (任何類型)。
-
若要查看其中一個傳回的日誌事件的所有欄位,請選擇該日誌事件左側的箭頭。
如需如何執行和修改 CloudWatch Logs Insights 查詢的詳細資訊,請參閱執行和修改範例查詢。
檢閱範例查詢
本節包含用於分析 Managed Service for Apache Flink 應用程式日誌的 CloudWatch Logs Insights 範例查詢。這些查詢會搜尋數個範例錯誤條件,並作為撰寫查詢以尋找其他錯誤條件的範本。
注意
使用您應用程式的「地區」和「帳戶 ID」取代下列查詢範例中的地區 (us-west-2
)、帳戶 ID (012345678901
) 和應用程式名稱 (YourApplication
)。
分析操作:任務的分佈
下列 CloudWatch Logs Insights 查詢會傳回 Apache Flink 作業管理員在任務管理員之間分配的任務數目。您需要將查詢的時間範圍設定為符合一個作業執行,以便查詢不會傳回來自先前作業的任務。如需平行處理層級的詳細資訊,請參閱實作應用程式擴展。
fields @timestamp, message | filter message like /Deploying/ | parse message " to flink-taskmanager-*" as @tmid | stats count(*) by @tmid | sort @timestamp desc | limit 2000
下列 CloudWatch Logs Insights 查詢會傳回指派給每個任務管理員的子任務。子任務的總數是每個任務的平行處理層級的總和。任務平行處理層級衍生自運算子平行處理層級,且預設會與應用程式的平行處理層級相同,除非您在程式碼中指定 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 查詢會傳回應用程式平行處理層級的變更 (例如由於自動擴展)。此查詢還會傳回應用程式平行處理層級的手動變更。如需自動擴展的相關資訊,請參閱在 Managed Service for Apache Flink 中使用自動擴展。
fields @timestamp, @parallelism | filter message like /property: parallelism.default, / | parse message "default, *" as @parallelism | sort @timestamp asc
分析錯誤:存取遭拒
下列 CloudWatch Logs Insights 查詢會傳回 Access Denied
日誌。
fields @timestamp, @message, @messageType | filter applicationARN like /arn:aws:kinesisanalytics
us-west-2
:012345678901
:application\/YourApplication
/ | filter @message like /AccessDenied/ | sort @timestamp desc
分析錯誤:找不到來源或接收
下列 CloudWatch Logs Insights 查詢會傳回 ResourceNotFound
日誌。ResourceNotFound
如果找不到 Kinesis 來源或接收器,會記錄結果。
fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalytics
us-west-2
:012345678901
:application\/YourApplication
/ | filter @message like /ResourceNotFoundException/ | sort @timestamp desc
分析錯誤:應用程式任務相關的失敗
下列 CloudWatch Logs Insights 查詢會傳回應用程式的任務相關失敗日誌。如果應用程式的狀態從 RUNNING
切換到 RESTARTING
,就會產生這些日誌結果。
fields @timestamp,@message | filter applicationARN like /arn:aws:kinesisanalytics
us-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:kinesisanalytics
us-west-2
:012345678901
:application\/YourApplication
/ | filter @message like /switched from RUNNING to FAILED/ | sort @timestamp desc