Prometheus + Grafana 原理和用法

news/2025/12/9 22:04:52/文章来源:https://www.cnblogs.com/huangwentian/p/19328528

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.mzph.cn/news/995605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年度不锈钢板直销优质厂家TOP榜单盘点,不锈钢中厚板/201不锈钢板/不锈钢热轧板/不锈钢板现货批发哪家好 - 品牌推荐师

随着制造业的转型升级与基建投资的稳步推进,不锈钢板作为重要的工业与建筑原材料,其市场需求持续增长,对供应商的产品品质、供应能力及综合服务提出了更高要求。面对市场上众多的不锈钢板直销厂家,如何选择一家可靠…

12.09

今天上午没课下午上了一节英语

2025年市场技术好的不锈钢热轧板生产厂家怎么选择,304不锈钢冷热轧板材/316L不锈钢冷热轧板材定制加工有哪些 - 品牌推荐师

随着高端制造业的持续升级,不锈钢热轧板作为船舶、高铁、重型装备等领域的关键基础材料,其市场需求与技术门槛同步提升。面对市场上众多的供应商,如何甄选出技术实力扎实、产品稳定可靠的生产厂家,成为采购决策中的…

完整教程:浏览器工作原理大揭秘:从输入网址到看到页面的奇妙旅程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

什么是API?一文让你彻底搞明白! - 智慧园区

API作为软件应用程序间的通信桥梁,对产品经理至关重要。懂API能助您高效沟通、拓展产品能力,还可通过API盈利。本文解析API核心组成要素,助您在产品设计中巧妙运用。 什么是API? API,英文全称是Application Prog…

Troubleshooting一定要逻辑严谨与逻辑自洽

Troubleshooting一定要逻辑严谨与逻辑自洽2025-12-09 21:55 潇湘隐者 阅读(0) 评论(0) 收藏 举报Oracle数据库升级到19.28版本后,我们的监控就比较频繁收到一类告警邮件,提示告警日志中出现下面这类告警信息: 202…

企业微信相关文档

整理了企业微信开发相关资源文档,包括企业微信开发者官方文档、WxJava开源项目地址及其企业微信模块(weixin-java-cp)的API文档,以及开发者整理的在线文档,同时提供了企业微信管理后台登录入口。最近有点忙啊,工作…

实用指南:【鸿蒙生态共建】鸿蒙6适配-API变化与兼容(2.UI交互与基础能力篇)--《精通HarmonyOS NEXT :鸿蒙App开发入门与项目化实战》读者福利

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2026考研政治肖秀荣 408真题教材 资料提供

考研的家人门,是时候背肖秀荣啦分享链接 1、肖秀荣: 链接: https://yun.139.com/shareweb/#/w/i/2rJXzofrVU6xu 提取码:svpg 2、408真题【2009-2025】 链接: https://yun.139.com/shareweb/#/w/i/2rJXAcj2C5xxz …

告别选择困难!SAT辅导机构大揭秘 - 品牌测评鉴赏家

告别选择困难!SAT辅导机构大揭秘选择 SAT 辅导机构,你真的了解这些吗? 准备踏上 SAT 备考征程的小伙伴们,是不是一打开网页,就被铺天盖地的辅导机构广告晃花了眼😵 “顶尖师资”“超高通过率”“独家秘籍”………

ubuntu docker运行大模型

安装docker 安装依赖 sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg lsb-release 添加官方 Docker 源 sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ub…

【自荐】OneClip—— 一款简单专业的 macOS 剪贴板管理工具

官网 :https://oneclip.cloud/ 目前已经开源了早期版本 下载地址+仓库地址:https://github.com/Wcowin/OneClip/releases 或者使用 Homebrew 安装 OneClip:# 1. 首次安装请先添加 tap(从 Gitee 拉取) brew tap W…

igbt模块的栅极驱动芯片,栅极电阻计算

以FS150R12KT4为例,针对该IGBT模块选择栅极驱动芯片,栅极电阻。 首先,已知驱动栅极驱动芯片的电源是15V,开关频率是15kHZ 设定上升时间和下降时间是0.3us(为什么这么设计的呢,因为开关频率是15kHZ,转换成周期T=…

托福一对一机构怎么选?高性价比推荐+避坑指南,2025备考党必看! - 品牌测评鉴赏家

托福一对一机构怎么选?高性价比推荐+避坑指南,2025备考党必看!一、托福备考痛点:为什么越来越多人选择一对一课程? (一)传统班课的局限性 在托福备考的赛道上,许多同学都曾在传统班课的浪潮中奋力前行,却发现…

构建高准确率、可控、符合规范的政务数据库审计和监测方案

一、概要 提示:本文旨在系统性阐述政务行业数据库风险监测的整体框架与实践成效,突出数据化治理与落地成果。在数字化政务全面推进的背景下,数据库已成为政府数据资产的核心载体与安全薄弱环节。“知形-数据库风险监…

疫苗的“设计图纸”如何变成现实?浅谈重组蛋白技术

想象一下,当一种新的病毒出现,科学家需要在最短的时间内为全人类打造一面“免疫盾牌”——这听起来像是一项不可能的任务。但现代生物技术的进步,尤其是重组蛋白技术,已经让这一过程变得空前高效与精准。这篇文章将…

数据脱敏:在数据价值与隐私安全之间构建平衡

在大数据与数字化转型的浪潮中,数据已成为机构与企业最核心的资产之一。然而,随着数据的集中与流动,隐私泄露风险也日益加剧。如何在充分利用数据价值的同时,确保个人敏感信息与商业机密的安全?数据脱敏作为一种关…

TK: 计算三角形的面积

TK代码,将textvariable绑定,改为直接使用text属性设置。以下是修改后的代码,关键改动已用注释标出:import tkinter as tk import tkinter.ttk as ttk import tkinter.messagebox as msgbox # 添加缺失的导入class …

SAT 辅导机构怎么选?2025 年高性价比机构测评指南(附避坑攻略) - 品牌测评鉴赏家

SAT 辅导机构怎么选?2025 年高性价比机构测评指南(附避坑攻略)一、选机构先看 “硬指标”:三大核心维度帮你筛出优质选项 (一)师资实力:实考经验 + 教研能力是提分 “双保险” 真正懂 SAT 的老师,不仅要会教,…