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,更轻量。

相关推荐
IT WorryFree12 小时前
Zabbix7.4 + Grafana 天蝎(Zabbix 官方插件数据源)完整配置 + 解决 412 报错
zabbix·grafana
gws81353916219 小时前
Hyperf3.1接入服务器监控
grafana·prometheus·hyperf·metrics
Adorable老犀牛20 小时前
MySQL Server Exporter:Prometheus 监控 MySQL/MariaDB 指南
mysql·prometheus·mariadb
Sean‘20 小时前
在隔离内网机器上使用 Filebeat 全量采集日志并推送到 ELK 的实战
运维·服务器·elk
成为你的宁宁1 天前
【K8S黑盒监控实践:Probe配置、Prometheus验证与Grafana可视化】
kubernetes·grafana·prometheus
成为你的宁宁1 天前
【Prometheus Operator监控K8S Nginx】
nginx·kubernetes·prometheus
人生匆匆1 天前
部署cadvisor+prometheus+grafana
grafana·prometheus
成为你的宁宁1 天前
【K8S使用Helm部署MySQL一主多从并集成Prometheus监控】
mysql·kubernetes·prometheus
SuperArc19992 天前
Grafana相关数据可视化平台基础教程-序言
运维·信息可视化·数据分析·grafana