易君召
发布于 2026-08-09 / 作者:易君召 / 7 阅读
0

微服务监控常见工具推荐

微服务监控一般覆盖四大维度:链路追踪、指标监控、日志采集、告警、APM 全栈监控,下面按类别整理,包含选型特点、适用场景、优缺点。

一、APM 全链路监控(调用链、服务拓扑、应用性能)

1. SkyWalking(国产开源,国内最常用)

  • 核心能力:分布式链路追踪、服务拓扑图、JVM 指标、慢调用、告警、日志关联,支持 Java/Go/Python/.NET 等多语言 Agent

  • 存储:Elasticsearch、H2、MySQL、BanyanDB

  • 优点:无侵入 Agent,对业务代码零改动;国产、中文文档友好;开箱即用;支持 k8s;社区活跃

  • 适用:Java 微服务、SpringCloud、SpringBoot,企业内部私有化部署首选

2. Pinpoint(韩国开源)

  • 能力:全链路追踪,调用栈明细,JVM 监控,拓扑

  • 优点:采集粒度细;Agent 无侵入

  • 缺点:内存占用偏高,配置复杂,中文资料少于 SkyWalking

  • 适用:需要深度方法级追踪的 Java 应用

3. Jaeger(Uber 开源,CNCF 项目)

  • 能力:分布式追踪,兼容 OpenTelemetry 标准

  • 存储:Elasticsearch、Cassandra

  • 优点:云原生,轻量,OpenTracing 标准实现,适合 Go 微服务

  • 缺点:只做链路追踪,缺少 JVM、系统指标监控,需要搭配 Prometheus

  • 适用:云原生、k8s、多语言异构微服务

4. Zipkin(Twitter 开源)

  • 能力:轻量调用链,兼容 OpenTracing

  • 优点:部署简单,组件轻量

  • 缺点:功能简单,UI 简陋,缺少高级分析

  • 适用:小型系统,测试环境,快速验证链路

5. 商业 APM:ARMS (阿里云)、CAT (美团,开源)、OneAPM、Datadog、New Relic

  • CAT:美团开源,Java 生态强,埋点需要代码侵入,适合大厂内部运维

  • ARMS/Datadog:SaaS 云 APM,开箱即用,减少运维成本,付费

二、指标监控(Metrics:CPU、内存、QPS、延迟、错误率)

1. Prometheus + Grafana(云原生事实标准)

  • Prometheus:时序数据库,采集 metrics 指标,pull 模式;支持 exporter(JMX_exporter、node_exporter、spring-boot-actuator)

  • Grafana:可视化面板,丰富仪表盘模板

  • 优点:CNCF,k8s 完美适配;生态极其强大;灵活告警规则

  • 缺点:不适合海量长期存储;没有链路追踪,没有日志;需要搭配其他组件

  • 组合:Prometheus (指标采集存储) + Grafana (可视化) + Alertmanager (告警)

SpringBoot 微服务直接开启 actuator 暴露 /prometheus 端点,即可被 Prometheus 抓取。

2. InfluxDB + Grafana

  • 时序数据库,写入性能强;早期很多微服务监控方案使用

  • 缺点:v2 版本后开源版功能受限,k8s 生态弱于 Prometheus

三、日志集中采集(ELK/EFK 栈)

EFK:Elasticsearch + Fluentd + Kibana

ELK:Elasticsearch + Logstash + Kibana

  1. Filebeat:轻量日志采集 agent,部署在容器 / 服务器采集日志文件

  2. Logstash/Fluentd:日志过滤、解析、转换

  3. Elasticsearch:日志存储检索

  4. Kibana:日志查询、可视化面板

  • 能力:集中日志检索、错误日志排查、按服务 / 实例过滤日志

  • 补充:SkyWalking、OpenTelemetry 可以把链路 ID 埋入日志,实现日志 - 链路关联

注意:日志数据量大,存储成本高,一般做日志生命周期策略,定期删除旧日志。

四、统一可观测性(OpenTelemetry OTel)

不是监控系统,是标准 SDK,现在微服务可观测的事实标准

  • 统一生成:Trace 链路、Metrics 指标、Log 日志

  • Agent/SDK 埋点,数据可以输出到 SkyWalking、Jaeger、Prometheus、Datadog 等后端

  • 优势:不绑定任何监控后端,一套埋点,对接多种监控平台,异构多语言微服务强烈推荐

五、告警组件

  1. Alertmanager:配合 Prometheus,告警推送钉钉 / 企业微信 / 邮件

  2. SkyWalking 内置告警:支持告警规则,webhook 推送

  3. Alertmanager + Prometheus Alert Rules

  4. 第三方告警:PagerDuty、钉钉机器人、企业微信机器人

六、K8s 环境额外监控工具

  1. kube‑state‑metrics:k8s 资源指标

  2. Node‑exporter:服务器节点指标

  3. cAdvisor:容器资源监控

  4. Loki + Grafana:轻量级日志方案,相比 ELK 资源占用更低(Grafana 出品)

📌常用落地组合方案

方案 A(国内企业最常用|SpringCloud 微服务私有化)

SkyWalking(链路 + 应用指标 + 告警) + Prometheus+Grafana(系统 / 容器指标) + EFK(日志)

方案 B(云原生标准|OpenTelemetry)

OpenTelemetry SDK 采集数据 → Prometheus (metrics) + Jaeger (trace) + Loki (log) + Grafana 统一展示

方案 C(小型项目)

Prometheus+Grafana + Zipkin + Filebeat

方案 D(SaaS 不想运维组件)

Datadog / 阿里云 ARMS

选型对比简表

工具

链路追踪

指标监控

日志

部署复杂度

适合场景

SkyWalking

部分

中等

Java 微服务,私有化部署

Prometheus+Grafana

中等

系统 / 容器指标监控

Jaeger

中等

云原生 Go 微服务

ELK/EFK

集中日志检索排查

OpenTelemetry

SDK 标准,无存储后端

SDK 标准,无存储后端

SDK 标准,无存储后端

统一埋点,多语言异构微服务

选型建议

  1. 以 Java SpringCloud 为主的国内项目优先选 SkyWalking,一套搞定链路、应用指标,运维成本低。

  2. 云原生 K8s 环境:优先引入 OpenTelemetry 做埋点,指标交给 Prometheus,链路 Jaeger/SkyWalking,日志 Loki/EFK。

  3. 不要把所有功能压到单一工具:指标、链路、日志属于可观测三大支柱,一般都是多组件组合。

  4. 小规模项目避免直接上完整 ELK,资源消耗大,可以先用 Loki 轻量化日志方案。


本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/microservice-monitoring-tools-recommendation

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/