微服务监控一般覆盖四大维度:链路追踪、指标监控、日志采集、告警、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
Filebeat:轻量日志采集 agent,部署在容器 / 服务器采集日志文件
Logstash/Fluentd:日志过滤、解析、转换
Elasticsearch:日志存储检索
Kibana:日志查询、可视化面板
能力:集中日志检索、错误日志排查、按服务 / 实例过滤日志
补充:SkyWalking、OpenTelemetry 可以把链路 ID 埋入日志,实现日志 - 链路关联
注意:日志数据量大,存储成本高,一般做日志生命周期策略,定期删除旧日志。
四、统一可观测性(OpenTelemetry OTel)
不是监控系统,是标准 SDK,现在微服务可观测的事实标准
统一生成:Trace 链路、Metrics 指标、Log 日志
Agent/SDK 埋点,数据可以输出到 SkyWalking、Jaeger、Prometheus、Datadog 等后端
优势:不绑定任何监控后端,一套埋点,对接多种监控平台,异构多语言微服务强烈推荐
五、告警组件
Alertmanager:配合 Prometheus,告警推送钉钉 / 企业微信 / 邮件
SkyWalking 内置告警:支持告警规则,webhook 推送
Alertmanager + Prometheus Alert Rules
第三方告警:PagerDuty、钉钉机器人、企业微信机器人
六、K8s 环境额外监控工具
kube‑state‑metrics:k8s 资源指标
Node‑exporter:服务器节点指标
cAdvisor:容器资源监控
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
选型对比简表
选型建议
以 Java SpringCloud 为主的国内项目优先选 SkyWalking,一套搞定链路、应用指标,运维成本低。
云原生 K8s 环境:优先引入 OpenTelemetry 做埋点,指标交给 Prometheus,链路 Jaeger/SkyWalking,日志 Loki/EFK。
不要把所有功能压到单一工具:指标、链路、日志属于可观测三大支柱,一般都是多组件组合。
小规模项目避免直接上完整 ELK,资源消耗大,可以先用 Loki 轻量化日志方案。
本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。
原文链接
欢迎访问 小易撩挨踢