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

相关推荐
看浪的路人3 天前
第8讲:记忆系统的监控与运维——Prometheus 指标、Grafana 面板与告警体系
运维·grafana·prometheus
梅菲塔亚3 天前
ELK企业日志分析系统实战部署
elk
爬也要爬着前进4 天前
Prometheus通过Nginx-vts-exporter模块监控nginx服务
运维·nginx·prometheus
逐流人4 天前
ELK企业级日志分析系统:从零搭建集中化日志平台
运维·elk·云原生·云计算·日志分析
Crayon Lin5 天前
Prometheus
prometheus
你看我名字5 天前
ELK 日志分析平台:Filebeat、Logstash、Elasticsearch 与 Kibana 实战
大数据·elk·elasticsearch
学编程的小程6 天前
服务器日志太分散不好查?我用Promtail+Loki+Grafana把采集、查询和分析串起来了
服务器·python·grafana
SelectDB技术团队6 天前
云数仓成本结构拆解:五层计费模型与 Apache Doris 托管形态对照
大数据·数据库·elk·全文检索·snowflake
川石课堂软件测试6 天前
JMeter异步接口测试实战
数据库·python·jmeter·mysql·kubernetes·测试用例·prometheus
.冰块.7 天前
ELK 日志分析系统实验:部署 Elasticsearch 双节点集群实现 Apache 日志采集与 Kibana 可视化
elk·elasticsearch·apache·日志