当前位置: 首页 > news >正文

Prometheus + Grafana 原理和用法

Prometheus + Grafana 原理和用法(通俗易懂版)

我们可以把这个组合想象成 「智能体检中心」

  • Prometheus = 体检医生:主动上门,定期采集服务器/应用的“健康数据”(CPU、内存、接口响应时间等),并把数据存起来。
  • Grafana = 体检报告可视化工具:把 Prometheus 存的枯燥数据,变成直观的折线图、仪表盘,一眼就能看出“健康状况”。

一、核心原理

1. 整体工作流程(故事场景)

假设你负责一个电商系统的服务器,想监控它的运行状态:

  1. 数据采集(Prometheus 主动拉取)

    • 你的服务器/应用需要暴露一个 Metrics 接口(比如 http://服务器IP:9090/metrics),这个接口会返回当前的监控数据(例如 cpu_usage 60 表示CPU使用率60%)。
    • Prometheus 会按照你配置的 采集间隔(比如10秒一次),主动去这个接口“拉取”数据——就像医生定期上门量血压。
    • 支持的采集目标:服务器(Node Exporter)、Java 应用(JMX Exporter)、MySQL(MySQL Exporter)等,几乎所有中间件都有对应的 Exporter。
  2. 数据存储(时序数据库)

    • Prometheus 把拉取到的数据存在自己的 时序数据库(TSDB) 里。时序数据库的特点是:按时间戳存储数据,适合快速查询“某段时间内的指标变化”。
    • 数据会有 保留时间(比如保留15天),超过时间自动删除,避免磁盘占满。
  3. 数据查询(PromQL 语言)

    • Prometheus 提供了专用查询语言 PromQL,可以对数据做计算和筛选。
      • 比如查CPU使用率:avg(cpu_usage) by (instance)(按服务器分组计算平均CPU使用率)。
      • 比如查接口5xx错误率:sum(http_requests{code="500"}) / sum(http_requests)
  4. 可视化与告警(Grafana 联动)

    • Grafana 不存数据,它是一个“中间商”:连接 Prometheus 作为 数据源,然后用 PromQL 查数据,再做成可视化图表。
    • 同时可以配置 告警规则:比如CPU使用率超过90%持续5分钟,就自动发邮件/钉钉通知你。

2. 核心特点

组件 优点 缺点
Prometheus 轻量级、部署简单、自带时序库 不适合存储超大量历史数据(需搭配远程存储如Thanos)
Grafana 图表美观、支持多数据源、开源免费 依赖外部数据源,自身不采集数据

二、实战用法(Docker 快速部署,5分钟搞定)

我们用 Docker 部署一个最基础的监控环境:监控服务器CPU/内存 + 可视化仪表盘

步骤1:部署 Node Exporter(采集服务器硬件数据)

Node Exporter 是 Prometheus 官方的服务器监控工具,负责收集CPU、内存、磁盘等数据。

# 启动 Node Exporter,暴露 9100 端口供 Prometheus 采集
docker run -d \--name node_exporter \--net="host" \--pid="host" \-v "/:/host:ro,rslave" \quay.io/prometheus/node-exporter:latest \--path.rootfs=/host

验证:访问 http://你的服务器IP:9100/metrics,能看到一堆监控数据就说明成功了。

步骤2:部署 Prometheus(采集+存储数据)

  1. 创建 Prometheus 配置文件 prometheus.yml
global:scrape_interval: 10s  # 采集间隔,10秒拉一次数据scrape_configs:# 采集 Node Exporter 的数据- job_name: 'node_exporter'static_configs:- targets: ['你的服务器IP:9100']  # Node Exporter 的地址
  1. 启动 Prometheus 容器:
docker run -d \--name prometheus \-p 9090:9090 \-v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \prom/prometheus:latest

验证:访问 http://你的服务器IP:9090,在 PromQL 查询框输入 node_cpu_seconds_total,能查到CPU数据就OK。

步骤3:部署 Grafana(可视化数据)

  1. 启动 Grafana 容器:
docker run -d \--name grafana \-p 3000:3000 \grafana/grafana:latest
  1. 配置 Grafana 连接 Prometheus

    • 访问 http://你的服务器IP:3000,默认账号密码:admin/admin
    • 登录后 → 左侧 Configuration → Data Sources → Add data source → 选择 Prometheus
    • 填写 Prometheus 地址:http://你的服务器IP:9090 → 点击 Save & test,提示“Data source is working”就成功了。
  2. 导入官方仪表盘(一键可视化)

    • Grafana 社区有大量现成的仪表盘模板,不用自己从零画。
    • 左侧 Dashboards → Import → 输入模板ID 1860(Node Exporter 官方模板)→ 选择刚才配置的 Prometheus 数据源 → 点击 Import
    • 搞定!你会看到一个炫酷的服务器监控仪表盘,包含CPU、内存、磁盘、网络的实时数据。

三、进阶用法

  1. 监控 Java 应用

    • JMX Exporter 采集 JVM 指标(堆内存、线程数、GC次数),配置到 Prometheus 后,导入 Grafana 的 JVM 模板(ID:8563)。
  2. 配置告警

    • 在 Prometheus 中配置 alert_rules.yml,定义告警规则(比如CPU>90%)。
    • 部署 AlertManager 处理告警通知,支持邮件、钉钉、微信等渠道。
    • 在 Grafana 中也可以直接配置告警,更简单直观。
  3. 大规模监控

    • 单台 Prometheus 不够用?用 Prometheus Federation(联邦集群)实现分级采集。
    • 历史数据归档?搭配 Thanos 实现无限存储和全局查询。

四、关键总结

  1. Prometheus 是 拉模式 采集数据,需要被监控端暴露 Metrics 接口。
  2. PromQL 是核心,学会它才能灵活查询数据。
  3. Grafana 是可视化神器,社区模板能帮你省90%的画图时间。

我可以帮你整理一份Java应用监控的完整配置清单,包括JMX Exporter配置和Grafana JVM仪表盘导入步骤,需要吗?

http://www.jsqmd.com/news/69426/

相关文章:

  • 2025年度不锈钢板直销优质厂家TOP榜单盘点,不锈钢中厚板/201不锈钢板/不锈钢热轧板/不锈钢板现货批发哪家好 - 品牌推荐师
  • 12.09
  • 2025年市场技术好的不锈钢热轧板生产厂家怎么选择,304不锈钢冷热轧板材/316L不锈钢冷热轧板材定制加工有哪些 - 品牌推荐师
  • 完整教程:浏览器工作原理大揭秘:从输入网址到看到页面的奇妙旅程
  • 什么是API?一文让你彻底搞明白! - 智慧园区
  • mysql优化
  • Troubleshooting一定要逻辑严谨与逻辑自洽
  • 企业微信相关文档
  • 实用指南:【鸿蒙生态共建】鸿蒙6适配-API变化与兼容(2.UI交互与基础能力篇)--《精通HarmonyOS NEXT :鸿蒙App开发入门与项目化实战》读者福利
  • 2026考研政治肖秀荣 408真题教材 资料提供
  • 告别选择困难!SAT辅导机构大揭秘 - 品牌测评鉴赏家
  • 2025.12.9博客
  • ubuntu docker运行大模型
  • 【自荐】OneClip—— 一款简单专业的 macOS 剪贴板管理工具
  • igbt模块的栅极驱动芯片,栅极电阻计算
  • zfk_蓝桥杯C++学习_递归及时空复杂度
  • 托福一对一机构怎么选?高性价比推荐+避坑指南,2025备考党必看! - 品牌测评鉴赏家
  • 构建高准确率、可控、符合规范的政务数据库审计和监测方案
  • 疫苗的“设计图纸”如何变成现实?浅谈重组蛋白技术
  • 数据脱敏:在数据价值与隐私安全之间构建平衡
  • TK: 计算三角形的面积
  • SAT 辅导机构怎么选?2025 年高性价比机构测评指南(附避坑攻略) - 品牌测评鉴赏家
  • SAT 辅导机构怎么选?2025 年高性价比机构测评与避坑指南(附收费标准与选课攻略) - 品牌测评鉴赏家
  • 公式怎么写
  • 2025春季 PTA 中国大学MOOC上面的数据结构测试第三题 待修正中
  • 完整教程:C如何调用Go
  • vllm部署
  • 漏洞赏金猎人不会告诉你的秘密:从100多个已报告漏洞中总结的技巧
  • 2025.12.9
  • 《程序员修炼之道:从小工到专家》笔记7