App Mesh 疑難排解最佳做法 - AWS App Mesh

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

App Mesh 疑難排解最佳做法

建議您遵循本主題中的最佳做法,以疑難排解使用 App Mesh 時的問題。

啟用特使代理管理介面

Envoy Proxy 隨附一個管理介面,您可以使用該介面探索設定和統計資料,以及執行其他管理功能,例如連線排空。如需詳細資訊,請參閱 Envoy 文件中的管理介面

如果您使用受管理特使形象,則依預設會在連接埠 9901 上啟用管理端點。中提供的範例會將管理端點 URL 範例App Mesh 設定疑顯示為http://my-app.default.svc.cluster.local:9901/

注意

管理端點絕對不應暴露在公用網際網路上。此外,我們建議監視管理端點記錄,這些記錄檔由ENVOY_ADMIN_ACCESS_LOG_FILE環境變數預設設定為/tmp/envoy_admin_access.log

為量度卸載啟用特使 DogStats D 整合

Envoy Proxy 可設定為卸載 OSI 第 4 層和第 7 層流量的統計資料,以及內部處理序健全狀況。本主題說明如何使用這些統計資料,而不卸載指標以接收量度 (例如 CloudWatch 指標和 Prometheus),但將這些統計資料放在所有應用程式的集中位置,可協助您更快速診斷問題並確認行為。如需詳細資訊,請參閱使用 Amazon CloudWatch 指標Promethe us 文件。

您可以透過設定中定義的參數來設定 DogStats D 度量DogStatsD 型變數。如需 DogStats D 的詳細資訊,請參閱 DogStatsD 文件。您可以在使用 Amazon ECS 的應用程式網格中找到 AWS CloudWatch 指標卸載的示範。 GitHub

啟用存取日誌

我們建議您在和上啟用存取記錄虛擬節點虛擬閘道以探索應用程式之間傳輸流量的詳細資料。如需詳細資訊,請參閱 Envoy 文件中的存取記錄。記錄檔提供 OSI 第 4 層和第 7 層流量行為的詳細資訊。使用 Envoy 的預設格式時,您可以使用下列剖析陳述式使用日誌深入分析來分析存取CloudWatch 記錄。

parse @message "[*] \"* * *\" * * * * * * * * * * *" as StartTime, Method, Path, Protocol, ResponseCode, ResponseFlags, BytesReceived, BytesSent, DurationMillis, UpstreamServiceTimeMillis, ForwardedFor, UserAgent, RequestId, Authority, UpstreamHost

在生產前環境中啟用 Envoy 偵錯記錄

我們建議將 Envoy 代理的日誌級別設置為debug在生產前環境中。偵錯記錄可協助您識別問題,然後再將相關的 App Mesh 組態轉移到生產環境。

如果您使用的是 Envoy 映像檔,則可以debug透過ENVOY_LOG_LEVEL環境變數將記錄層級設定為。

注意

我們不建議在生產環境中使用該debug級別。將層級設定為debug增加記錄,並可能影響效能和卸載至記錄檔等解決方案的整體記CloudWatch 錄成本。

當您使用 Envoy 的預設格式時,您可以使用下列剖析陳述式,利用CloudWatch 日誌深入分析分析程序記錄:

parse @message "[*][*][*][*] [*] *" as Time, Thread, Level, Name, Source, Message

使 App Mesh 控制平面監控特使代理連線

我們建議您監視 Envoy 指標,control_plane.connected_state以確保 Envoy 代理與 App Mesh 控制平面進行通信,以獲取動態配置資源。如需詳細資訊,請參閱管理伺服器