

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 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 上处于启用状态。在 [App Mesh 设置故障排除](troubleshooting-setup.md) 中提供的示例中，示例管理端点 URL 显示为 `http://my-app.default.svc.cluster.local:9901/`。

**注意**  
管理端点不应暴露在公共互联网上。此外，我们建议您监控管理端点日志，这些日志由 `ENVOY_ADMIN_ACCESS_LOG_FILE` 环境变量默认设置为 `/tmp/envoy_admin_access.log`。

## 启用 Envoy DogStats D 集成以进行指标卸载
<a name="ts-bp-enable-envoy-statsd-integration"></a>

可以将 Envoy 代理配置为卸载 OSI 第 4 层和第 7 层流量以及内部进程运行状况的统计数据。虽然本主题展示了如何在不将指标转移到 CloudWatch 指标和 Prometheus. 之类的接收器的情况下使用这些统计信息，但将所有应用程序的这些统计数据放在一个集中的位置可以帮助您更快地诊断问题并确认行为。有关更多信息，请参阅[使用亚马逊 CloudWatch指标](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html)和 [Prometheus 文档](https://prometheus.io/docs/introduction/overview/)。

您可以通过设置中定义的参数来配置 DogStats D 指标[DogStatsD 变量](envoy-config.md#envoy-dogstatsd-config)。有关 DogStats D 的更多信息，请参阅 [DogStatsD](https://docs.datadoghq.com/developers/dogstatsd/?tab=hostagent) 文档。您可以在 A [pp Mesh 中找到将指标卸载到 AWS CloudWatch 指标的演示，其中包含了 Amazon ECS 基础知识演练。](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-ecs-basics) GitHub

## 启用访问日志
<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 第 4 层和第 7 层流量行为的详细信息。当你使用 Envoy 的默认格式时，你可以使用以下解析语句通过 Logs Ins [ights 分析访问CloudWatch 日志](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>

我们建议在预生产环境中将 Envoy 代理的日志级别设置为 `debug`。调试日志可以帮助您在将关联的 App Mesh 配置升级到生产环境之前识别问题。

如果您使用的是 [ Envoy 镜像](envoy.md)，则可以通过 `ENVOY_LOG_LEVEL` 环境变量将日志级别设置为 `debug`。

**注意**  
我们建议不在生产环境中使用 `debug` 级别。[将级别设置为`debug`会增加日志记录，并且可能会影响性能和转移到日志等CloudWatch 解决方案的日志的总体成本。](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)

当你使用 Envoy 的默认格式时，你可以使用以下解析语句通过 Logs Ins [ights 分析流程CloudWatch 日志](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)：

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

## 使用 App Mesh 控制面板监控 Envoy 代理连接
<a name="ts-bp-monitor-envoy-proxy-connectivity-state"></a>

我们建议您监控 Envoy 指标 `control_plane.connected_state`，确保 Envoy 代理与 App Mesh 控制面板通信以获取动态配置资源。有关更多信息，请参阅[管理服务器](https://www.envoyproxy.io/docs/envoy/latest/configuration/overview/mgmt_server.html)。