App Mesh 故障排除最佳实践 - Amazon App Mesh
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

App Mesh 故障排除最佳实践

我们建议您遵循本主题下的最佳实践,排除使用 App Mesh 时遇到的问题。

启用 Envoy 代理管理界面

Envoy 代理附带一个管理界面,您可以使用该界面来发现配置和统计数据,以及执行其他管理功能,例如连接耗尽。有关更多信息,请参阅 Envoy 文档中的管理界面

如果您使用托管 Envoy 镜像,则在默认情况下,管理端点在端口 9901 上处于启用状态。在 App Mesh 设置故障排除 中提供的示例中,示例管理端点 URL 显示为 http://my-app.default.svc.cluster.local:9901/

注意

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

启用 Envoy DogStats D 集成以进行指标卸载

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

您可以通过设置中定义的参数来配置 DogStats D 指标DogStatsD 变量。有关 DogStats D 的更多信息,请参阅 DogStatsD 文档。您可以在 A pp Mesh 中找到将指标卸载到Amazon CloudWatch 指标的演示,其中包含了 Amazon ECS 基础知识演练。 GitHub

启用访问日志

我们建议您启用访问 虚拟节点虚拟网关 上的日志,发现有关应用程序之间传输的流量的详细信息。有关更多信息,请参阅 Envoy 文档中的访问日志记录。这些日志提供有关 OSI 第 4 层和第 7 层流量行为的详细信息。当你使用 Envoy 的默认格式时,你可以使用以下解析语句通过 Logs Ins ights 分析访问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 镜像,则可以通过 ENVOY_LOG_LEVEL 环境变量将日志级别设置为 debug

当你使用 Envoy 的默认格式时,你可以使用以下解析语句通过 Logs Ins ights 分析流程CloudWatch 日志

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

使用 App Mesh 控制面板监控 Envoy 代理连接

我们建议您监控 Envoy 指标 control_plane.connected_state,确保 Envoy 代理与 App Mesh 控制面板通信以获取动态配置资源。有关更多信息,请参阅管理服务器