可观测性与日志
本章节将介绍如何通过 Envoy 进行系统监控和日志管理。通过对监控和日志功能的讲解,帮助读者实现对系统状态的全面可视化,提升系统的可观测性。
工程定位与价值
Envoy 作为现代云原生基础设施的流量枢纽,内置了丰富的可观测性能力,帮助开发和运维团队实现对服务健康、性能和故障的全面监控与追踪。
核心能力
- 指标(Metrics):内置详细的性能指标(如请求数、延迟、错误率、连接数等),支持 Prometheus 等主流监控系统采集。
- 日志(Logging):支持访问日志、错误日志等多种日志格式,便于流量分析和故障排查。
- 分布式追踪(Tracing):原生集成分布式追踪,支持 Jaeger、Zipkin、SkyWalking 等主流追踪系统。
- Admin 界面:提供 /admin HTTP 管理接口,实时查看配置、统计、健康状态、流量等。
典型配置片段
Prometheus 指标导出
stats_sinks:
- name: envoy.stat_sinks.prometheus
typed_config:
"@type": type.googleapis.com/envoy.config.metrics.v3.PrometheusSink
访问日志配置
access_log:
- name: envoy.access_loggers.file
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog
path: /var/log/envoy/access.log
分布式追踪配置(Jaeger 示例)
tracing:
http:
name: envoy.tracers.jaeger
typed_config:
"@type": type.googleapis.com/envoy.config.trace.v3.JaegerConfig
collector_cluster: jaeger
collector_endpoint: "/api/traces"
collector_endpoint_version: HTTP_JSON
工程实践建议
- 结合 Prometheus、Grafana、Jaeger 等工具,实现全链路可观测。
- 合理配置日志级别和采样率,兼顾性能与排障需求。
- 善用 Admin 界面进行实时诊断和调优。
可观测性是保障微服务系统稳定性和可维护性的基石,建议在生产环境务必开启并持续优化。