Prometheus + Grafana + Alertmanager和ELK 栈(Elasticsearch + Logstash + Kibana)

Prometheus 看指标(性能/状态) ,ELK 看日志(报错/详情)

两者完全不冲突,各司其职,缺一不可

Alertmanager 只是 Prometheus 的「告警配件」,替代不了 ELK

一、先分清:两个体系管的东西完全不一样

1. Prometheus + Grafana + Alertmanager

只负责:监控指标、性能、健康度、告警

你文中说的:

  • CPU、内存、磁盘
  • JVM 堆内存、GC、线程
  • HTTP 成功率、QPS、接口延迟 P95/P99
  • 服务器/容器负载

👉 特点:

  • 宏观数据、趋势、性能指标
  • 适合:看「服务慢不慢、挂没挂、资源够不够」
  • 数据精简、定时采集、适合画图、告警

致命缺点:不存详细日志

报错了,它只会告诉你:接口报错率飙升

不知道为啥错、报错堆栈、入参、SQL、业务上下文

2. ELK 栈(Elasticsearch + Logstash + Kibana)

只负责:全量日志收集、存储、检索、排查

收集:

  • 应用控制台日志
  • 错误堆栈
  • 接口入参/出参
  • SQL 日志
  • 异常信息
  • 微服务分布式链路日志

👉 特点:

  • 海量原始文本日志
  • 关键词搜索、过滤、排查问题
  • 适合:线上报错、查原因、定位代码BUG

❌ 缺点:

不做性能指标监控,不看CPU/JVM/延迟

二、线上排障完整流程(一看就懂)

  1. Prometheus 告警
    短信/钉钉报警:

订单服务 P99 延迟过高、错误率暴涨

  1. 你打开 Grafana

    确认:CPU正常、JVM频繁GC、接口大量500

    ✅ 只知道「出问题了、哪里异常」

  2. 打开 Kibana(ELK)

    搜索:500、异常类名、用户ID、请求ID

    查到:

  • 具体报错堆栈
  • 哪行代码炸了
  • 当时请求参数
  • 数据库报错SQL

✅ 真正定位根因

三、为什么不能只用 Prometheus?

举个例子:

Prometheus 只能告诉你:

接口错误率 30%

但不知道:

  • 是空指针?
  • 数据库超时?
  • 参数非法?
  • 第三方接口挂了?

没有 ELK,线上报错只能瞎猜。

四、ELK 是标配吗?

1. 大厂/中大型项目 / 微服务架构

必装 ELK(或替代方案)

微服务实例几十上百个,日志分散在无数容器里,

不集中收集,根本没法查日志

2. 小项目/单体应用/个人项目

❌ 可以不用

直接看容器日志、服务器日志就行,没必要太重。

3. ELK 平替(现在很多公司用)

成本更低、轻量:

EFK (Filebeat + Elasticsearch + Kibana)

Loki(搭配 Grafana,轻量日志方案)

  1. Prometheus+Grafana:
    盯着服务性能、资源、接口快慢、健康状态,出问题及时告警
  2. ELK:
    把所有微服务日志全部汇总起来,方便查报错、排BUG、审计
组件 核心数据 用途 能不能互相替代
Prometheus 指标(数值) 性能监控、告警、看板 不能
ELK 日志(文本) 问题排查、错误溯源 不能
Alertmanager 告警分发 只是Prometheus的通知工具 不算独立体系

ELK三个组件分别干啥(大白话)

1. L 👉 Logstash(日志搬运+清洗工)

入口、加工、过滤

  • 从各个微服务/容器收集原始日志
  • 过滤无用日志、脱敏(手机号/密码)
  • 格式化、拆分字段、打标签(服务名、环境、IP)
  • 清洗完,统一发给 Elasticsearch

类比:快递分拣中心,拆开包裹、分类、贴标签

2. E 👉 Elasticsearch(日志仓库+搜索引擎)

存日志、存海量数据、快速检索

  • 海量日志持久化存储
  • 支持按关键词、报错、用户ID、链路ID快速搜索
  • 分布式,能无限加机器扛日志量

类比:超大智能仓库,存所有快递,搜东西秒查

3. K 👉 Kibana(可视化页面)

看图、查日志、操作ES

  • 网页界面,查询日志、筛选报错
  • 日志图表、统计、大屏
  • 管理 ES 索引、权限

类比:仓库前台查询系统,你在上面查快递、看数据

完整日志流转链路

应用/容器 → Filebeat(轻量采集) → Logstash(清洗) → Elasticsearch(存储检索) → Kibana(查看)

现在企业基本不用 Logstash 做采集,改用更轻的 Filebeat

所以新版常叫 EFK,更轻量。

相关推荐
SRETalk9 天前
Zabbix、Prometheus、Grafana、Nightingale,四个监控如何选型?
zabbix·grafana·prometheus·nightingale
虚无境16 天前
如何编写一个SpringBoot项目告警推送的Starter
java·prometheus·webhook
睡不醒男孩03082317 天前
云原生运维实战:高并发架构下的云原生可观测性、韧性降级与自动化干预体系
数据库·kubernetes·高并发·prometheus·devops·sre·缓存调优
心之伊始19 天前
Spring Boot Actuator + Micrometer 实战:自定义业务指标并接入 Prometheus 观测接口耗时
java·spring boot·prometheus·actuator·micrometer
何中应19 天前
Grafana面板没有数据问题排查
linux·grafana·prometheus
爱吃龙利鱼19 天前
K8s 监控实战:victoria-metrics-k8s-stack 高可用部署,资源占用直降 70%,比 Prometheus 省 5 倍磁盘
docker·kubernetes·prometheus
就改了19 天前
微服务指标监控一站式搭建:Prometheus抓取+Grafana大屏展示详解
微服务·grafana·prometheus
江南风月20 天前
WGCLOUD保姆级教程最新版整理
运维·zabbix·运维开发·prometheus·日志审计
未若君雅裁20 天前
日志采集与ELK:从本地日志到集中检索分析
运维·elk·jenkins
江南风月20 天前
Hermes Agent 接入WGCLOUD实战:打造团队 AI 智能运维解决方案
运维·zabbix·运维开发·prometheus