

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

# App Mesh 疑難排解最佳實務
<a name="troubleshooting-best-practices"></a>

**重要**  
支援終止通知：在 2026 年 9 月 30 日， AWS 將停止對 的支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

我們建議您遵循本主題的最佳實務，對使用 App Mesh 時的問題進行疑難排解。

## 啟用 Envoy 代理管理界面
<a name="ts-bp-enable-proxy-admin-interface"></a>

Envoy 代理隨附管理介面，可用來探索組態和統計資料，以及執行連線耗盡等其他管理功能。如需詳細資訊，請參閱 Envoy 文件中的[管理界面](https://www.envoyproxy.io/docs/envoy/latest/operations/admin)。

如果您使用 受管 [Envoy 影像](envoy.md)，根據預設，管理端點會在連接埠 9901 上啟用。中的範例會將範例管理端點 URL [App Mesh 設定疑難排解](troubleshooting-setup.md)顯示為 `http://my-app.default.svc.cluster.local:9901/`。

**注意**  
管理端點絕不應公開至公有網際網路。此外，我們建議監控管理端點日誌，該日誌由`ENVOY_ADMIN_ACCESS_LOG_FILE`環境變數`/tmp/envoy_admin_access.log`預設為 。

## 為指標卸載啟用 Envoy DogStatsD 整合
<a name="ts-bp-enable-envoy-statsd-integration"></a>

Envoy 代理可設定為卸載 OSI Layer 4 和 Layer 7 流量的統計資料，以及內部程序運作狀態的統計資料。雖然本主題說明如何使用這些統計資料，而不將指標卸載至 CloudWatch 指標和 Prometheus 等目的地。將這些統計資料集中於所有應用程式的集中位置，可協助您更快速診斷問題和確認行為。如需詳細資訊，請參閱[使用 Amazon CloudWatch 指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)和 [Prometheus 文件](https://prometheus.io/docs/introduction/overview/)。

您可以透過設定 中定義的參數來設定 DogStatsD 指標[DogStatsD 變數](envoy-config.md#envoy-dogstatsd-config)。如需 DogStatsD 的詳細資訊，請參閱 [DogStatsD](https://docs.datadoghq.com/developers/dogstatsd/?tab=hostagent) 文件。您可以在 GitHub 上的 [App Mesh with Amazon ECS 基本概念中](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-ecs-basics)，找到指標卸載至 AWS CloudWatch 指標的示範。

## 啟用存取日誌
<a name="ts-bp-enable-access-logs"></a>

建議您在 [虛擬節點](virtual_nodes.md)和 上啟用存取日誌[虛擬閘道](virtual_gateways.md)，以探索應用程式之間傳輸流量的詳細資訊。如需詳細資訊，請參閱 Envoy 文件中的[存取記錄](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/observability/access_logging)。日誌提供有關 OSI Layer 4 和 Layer 7 流量行為的詳細資訊。當您使用 Envoy 的預設格式時，您可以使用下列剖析陳述式，使用 [CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) 分析存取日誌。

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

## 在生產前環境中啟用 Envoy 偵錯記錄
<a name="ts-bp-enable-envoy-debug-logging"></a>

我們建議在生產`debug`前環境中將 Envoy 代理的日誌層級設定為 。偵錯日誌可協助您在將相關聯的 App Mesh 組態完成至生產環境之前識別問題。

如果您使用的是 [Envoy 映像](envoy.md)，您可以透過`ENVOY_LOG_LEVEL`環境變數將日誌層級設定為 `debug` 。

**注意**  
我們不建議在生產環境中使用 `debug`關卡。將層級設定為 可`debug`增加記錄，並可能影響效能，以及卸載至 [CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) 等解決方案的日誌整體成本。

當您使用 Envoy 的預設格式時，您可以使用下列剖析陳述式，使用 [CloudWatch Logs Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html) 分析程序日誌：

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

## 使用 App Mesh 控制平面監控 Envoy Proxy Connectivity
<a name="ts-bp-monitor-envoy-proxy-connectivity-state"></a>

我們建議您監控 Envoy 指標，`control_plane.connected_state`以確保 Envoy 代理與 App Mesh 控制平面通訊，以擷取動態組態資源。如需詳細資訊，請參閱 [Management Server](https://www.envoyproxy.io/docs/envoy/latest/configuration/overview/mgmt_server.html)。