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

【prometheus+Grafana篇】Prometheus与Grafana:深入了解监控架构与数据可视化分析平台

💫《博主主页》:奈斯DB-CSDN博客

🔥《擅长领域》:擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控;并对SQLserver、NoSQL(MongoDB)有了解

💖如果觉得文章对你有所帮助,欢迎点赞收藏加关注💖

    在当今复杂的系统架构中,监控平台如同系统的"神经系统",能够第一时间感知系统异常,为运维人员提供关键的诊断线索。面对市面上众多的监控解决方案——从老牌稳定的Zabbix、新兴的夜莺监控,到企业级的腾讯蓝鲸平台——我们不禁要问:是否存在一款既开源免费,又能提供强大可视化能力的监控平台?

    答案是肯定的!Prometheus+Grafana 这对黄金组合正是满足这一需求的完美解决方案。作为一名长期在生产环境中使用这套工具监控各类系统的实践者,我将通过本系列文章,详细分享如何利用prometheus+Grafana监控多种数据库!

    无论您是刚开始接触系统监控,还是希望优化现有的监控体系,这个系列都将为您提供实用的参考。让我们开始这段监控实践之旅,掌握这套云原生时代最流行的监控方案!

    对于这个系列,博主主要还是分享关于prometheus+Grafana如何监控多种数据库的文章,对于需要监控其他系统或者学习prometheus其他相关内容的可以在B站上搜索“林哥Linux”UP主,这位大佬详细介绍了prometheus+Grafana,并且课程是完全免费的,免费是情谊,收费是本分,感谢大佬为爱发电,为我们带来了如此宝贵的学习资源。

                           

特别说明💥:本篇文章部分知识点均来源于 prometheus、Grafana 公开可查的官方文档手册和大模型DeepSeek-V3 的见解,并结合了我个人的理解和案例演示。如有冲突,请联系,会立即处理。转载请标明出处😄

                  

prometheus官网文档手册:

Overview | Prometheus

                     

Grafana 官网:

Grafana: The open and composable observability platform | Grafana Labs

                      

            

prometheus+Grafana全系列文章(实时更新 🔥 ):

【prometheus+Grafana篇】Prometheus与Grafana:深入了解监控架构与数据可视化分析平台-CSDN博客


                      

目录

一、Prometheus

1.1 Prometheus Server(核心服务)

1.2 Exporters(指标暴露器)

1.3 Pushgateway(临时任务指标网关)

1.4 Alertmanager(告警管理器)

1.5 Service Discovery(服务发现)

1.6 PromQL(查询语言)

二、Grafana

2.1 Grafana Server(后端服务)

2.2 Grafana UI(前端界面)

2.3 数据源插件(Data Source Plugins)

2.4 面板插件(Panel Plugins)

2.5 用户与权限管理


                           

一、Prometheus

    Prometheus是一个开源系统监控和警报工具包,受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Brog系统演变而来),从2012年开始由前Google工程师在Soundcloud以开源软件的形式进行研发,并且于2015年早期对外发布早期版本。2016年5月继Kubernetes之后成为第二个正式加入CNCF基金会的项目,同年6月正式发布1.0版本。2017年底发布了基于全新存储层的2.0版本,能更好地与容器平台、云平台配合。

    prometheus的基础架构图如下,从这个架构图,可以看出Prometheus的主要模块包含:Prometheus Server、exporters、push gateway、PromQL、alertmanager、WebUI等。

组件核心功能适用场景
Prometheus Server数据采集、存储、查询和告警评估所有监控场景
Exporters转换第三方系统指标数据库、中间件、硬件监控
Pushgateway接收短期任务指标Cron Job、批处理任务
Alertmanager告警管理和通知异常告警通知
Client Libraries应用内直接暴露指标自定义业务监控
Service Discovery动态发现监控目标Kubernetes、云环境

    通过以上组件的协同工作,Prometheus 实现了从数据采集、存储到告警和可视化的完整监控闭环。

     

        

普罗米修斯使用逻辑:

  1. Prometheus server定期从静态配置的targets或者服务发现的targets拉取数据(Targets是Prometheus采集Agent需要抓取的采集目标)
  2. 当新拉取的数据大于配置内存缓存区的时候,Prometheus会将数据持久化到磁盘(如果使用remote storage将持久化到云端)。
  3. Prometheus可以配置rules,然后定时査询数据,当条件触发的时候,会将alerts推送到配置的Alertmanager。
  4. Alertmanager收到警告的时候,可以根据配置(163,钉钉等),聚合,去重,降噪,最后发送警告。
  5. 可以使用APl,Prometheus Console或者Grafana查询和聚合数据。

        

          

普罗米修斯的主要特点:

  1. 支持多维数据模型由指标名称和键值对标识的时间序列数据
  2. 内置时间序列库TSDB(Time Serices Database)
  3. 支持PromQL(Promethues Query Language,普罗米修斯的专属查询语言),对数据的查询和分析、图形展示和监控告警。对于监控告警也使用的是PromQL(Promethues Query Language,普罗米修斯的专属查询语言)。
  4. 不依赖分布式存储,单个服务器节点是自治的。
  5. 支持HTTP的拉取(pull)方式收集时间序列数据。
  6. 通过中间网关Pushgateway推送时间序列。
  7. 通过服务发现或静态配置2种方式发现目标。
  8. 支持多种可视化和仪表盘,如:grafana。

          

1.1 Prometheus Server(核心服务)

                    

作用:
✅ 数据抓取(Scraping):定期从配置的目标(如 Exporters、应用程序)拉取(Pull)指标数据。
✅ 数据存储:将采集的指标存储在本地时间序列数据库(TSDB)中。
✅ 数据查询:提供 PromQL 查询语言,支持实时分析和聚合数据。
✅ 告警规则评估:根据配置的告警规则(alert.rules)触发告警。

               

工作流程

  1. 从 scrape_configs 定义的目标(如 node_exporter:9100)拉取 /metrics 数据。

  2. 将数据压缩后写入 TSDB(时间序列数据库)。

  3. 提供 HTTP API 供 Grafana 或其他工具查询数据。

                     

1.2 Exporters(指标暴露器)

            

作用
✅ 将非 Prometheus 原生指标转换为 Prometheus 可读格式
✅ 适用于无法直接暴露 /metrics 的系统(如 MySQL、Redis、Nginx)。

✅ Prometheus社区提供了丰富的Exporter实现,涵盖了从基础设施,中间件以及网络等各个方面的监控功能。这些Exporter可以实现大部分通用的监控需求。进入到官网,然后选择download,然后点击“Exporters and integrations”

                        

常见 Exporters

范围

常用exporter

数据库

MySQL Exporter, Redis Exporter, MongoDB Exporter, MSSQL Exporter等

硬件

Apcupsd Exporter, IoT Edison Exporter, IPMI Exporter, Node Exporter等

消息队列

Beanstalkd Exporter, Kafka Exporter, NSQ Exporter, RabbitMQ Exporter等

存储

ceph Exporter, Gluster Exporter, HDFS Exporter, ScalelO Exporter等

HTTP服务

Apache Exporter, HAProxy Exporter, Nginx Exporter等

API服务

AWS ECS Exporter, Docker Cloud Exporter, Docker Hub Exporter, GitHub Exporter等

日志

Fluentd Exporter, Grok Exporter等

监控系统

Collectd Exporter, Graphite Exporter, influxDB Exporter, Nagios Exporter, SNMP Exporter等

其它

Blockbox Exporter, liRA Exporter, lenkins Exporter, Confluence Exporter等

                   

1.3 Pushgateway(临时任务指标网关)

                 

作用
✅ 接收短期任务(如 Cron Job)推送的指标
✅ 解决 Prometheus Pull 模型无法监控短暂存活服务的问题。

             

适用场景

  • 批处理任务(如每日数据备份)

  • 无法长期运行的服务

             

工作流程

  1. 任务运行完成后,将指标推送到 Pushgateway。

  2. Prometheus 从 Pushgateway 拉取数据。

            

1.4 Alertmanager(告警管理器)

                     

作用
✅ 接收 Prometheus 的告警通知,并进行去重、分组和路由
✅ 支持多种告警通知方式(邮件、Slack、Webhook 等)。

             

核心功能

  • 去重(Deduplication):合并相同告警,避免轰炸。

  • 分组(Grouping):将相关告警合并为一条通知(如同一服务的多个实例)。

  • 静默(Silencing):临时屏蔽特定告警。

            

1.5 Service Discovery(服务发现)

                           

作用
✅ 动态发现监控目标(如 Kubernetes Pods、云服务器)。

          

支持的服务发现机制

  • Kubernetes:自动发现 Pods、Services。

  • Consul:通过 Consul 注册中心获取服务列表。

  • 文件静态配置:通过 file_sd_configs 加载目标列表。

         

示例(Kubernetes 发现)

scrape_configs:- job_name: 'kubernetes-pods'kubernetes_sd_configs:- role: podrelabel_configs:- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]action: keepregex: true

        

1.6 PromQL(查询语言)

             

作用
✅ 查询、聚合和分析时间序列数据

         

常用查询示例

# 计算 CPU 使用率
100 - (avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)# 统计 HTTP 请求错误率
sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m]))

              

               

二、Grafana

    Grafana 是一个开源的 数据可视化与分析平台,专注于监控数据的展示和告警管理。它的架构设计灵活,支持多种数据源,并提供强大的仪表盘功能。

    Grafana 采用 前后端分离 的设计,主要分为:

  • 后端(Server):处理数据查询、用户认证、告警等逻辑。
  • 前端(UI):基于 React 的交互式仪表盘。

  • 数据源插件:支持 Prometheus、MySQL、Elasticsearch 等 30+ 数据源。

组件核心功能关键用途
Grafana Server数据处理、告警、权限管理后端逻辑处理
Grafana UI仪表盘编辑和展示用户交互界面
Data Sources连接外部数据存储统一查询不同数据库
Panel Plugins提供图表类型(折线图、表格等)数据可视化
Alerting基于查询结果的告警管理异常通知
User Management权限控制和多租户支持团队协作与安全

    Grafana 通过灵活的插件架构和强大的可视化能力,成为监控领域的事实标准工具。结合 Prometheus 使用时,能构建从数据采集、存储到分析和告警的完整监控体系。

          

2.1 Grafana Server(后端服务)

作用
✅ 处理用户请求(如仪表盘渲染、数据查询)。
✅ 管理数据源(配置连接信息、认证)。
✅ 告警引擎(评估告警规则并触发通知)。
✅ 用户权限控制(RBAC 权限管理)。

         

关键子模块

模块功能
HTTP API提供 RESTful 接口供前端调用(如创建仪表盘、查询数据)。
Data Proxy代理查询请求到不同数据源,统一返回格式。
Alerting Engine定时检查告警规则,触发通知(需配置 alertmanager 或内置告警)。
Plugin Loader加载和管理数据源、面板等插件。

            

2.2 Grafana UI(前端界面)

作用
✅ 可视化仪表盘:拖拽式编辑图表、表格等面板。
✅ 交互式查询:通过 UI 构建查询语句(如 PromQL、SQL)。
✅ 告警管理:配置和查看告警状态。

            

核心功能

  • Dashboard:由多个 Panel(面板)组成的可视化页面。

  • Explore:直接查询和探索数据的交互模式。

  • Alerting:告警规则配置和状态查看。

  

2.3 数据源插件(Data Source Plugins)

作用
✅ 连接外部数据存储(如 Prometheus、MySQL、InfluxDB)。
✅ 转换数据格式:将不同数据源的返回结果统一为 Grafana 可识别的结构。

          

常见数据源

数据源适用场景查询语言
Prometheus监控指标分析PromQL
MySQL业务数据可视化SQL
Elasticsearch日志分析Lucene Query
Loki日志聚合(Grafana 原生方案)LogQL

    

2.4 面板插件(Panel Plugins)

作用
✅ 提供不同类型的可视化图表(如折线图、仪表盘、热力图)。
✅ 支持自定义插件开发(社区提供 100+ 面板插件)。

           

常用内置面板

面板类型用途示例
Graph时间序列数据趋势图CPU 使用率曲线
Gauge单值仪表盘磁盘剩余空间百分比
Table表格展示慢查询日志列表
Heatmap密度分布图请求延迟分布

       

2.5 用户与权限管理

作用
✅ 控制用户访问权限(如只读用户、管理员)。
✅ 组织(Organization)隔离:支持多租户场景。

        

权限模型

角色权限范围
Viewer仅查看仪表盘
Editor编辑仪表盘,但不能修改数据源
Admin管理数据源、用户和全局设置

    关于Prometheus和Grafana的基础介绍就到这里。只有深入了解了它们的基础知识和体系架构,才能更好地进行后续的安装与部署工作。那么我们下篇安装部署见!!!

相关文章:

【prometheus+Grafana篇】Prometheus与Grafana:深入了解监控架构与数据可视化分析平台

💫《博主主页》:奈斯DB-CSDN博客 🔥《擅长领域》:擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控;并对SQLserver、NoSQL(MongoDB)有了解 💖如果觉得文章对你有所帮…...

Web前端开发——超链接与浮动框架(下)

本节说明: 上一节,我们了解了超链接概述与超链接的语法、路径及分类两大部分内容,本节我们将了解超链接的应用与浮动框架。 三、超链接的应用 在网络上能够通过链接访问不同的资源或网页。链接对象多种多样,可分为文件、FTP站点…...

【后端开发】初识Spring IoC与SpringDI、图书管理系统

文章目录 图书管理系统用户登录需求分析接口定义前端页面代码服务器代码 图书列表展示需求分析接口定义前端页面部分代码服务器代码Controller层service层Dao层modle层 Spring IoC定义传统程序开发解决方案IoC优势 Spring DIIoC &DI使用主要注解 Spring IoC详解bean的存储五…...

Vim 编辑器的常用快捷键介绍

以下是 Vim 编辑器的常用快捷键分类介绍,帮助你快速掌握高效编辑技巧: 一、基础模式切换 Vim 的核心是 模式化操作,常用模式包括: 普通模式(默认):导航、命令输入。插入模式:输入/…...

git在IDEA中使用技巧

git在IDEA中使用技巧 merge和rebase 参考:IDEA小技巧-Git的使用 git回滚、强推、代码找回 参考:https://www.bilibili.com/video/BV1Wa411a7Ek?spm_id_from333.788.videopod.sections&vd_source2f73252e51731cad48853e9c70337d8e cherry pick …...

榕壹云无人共享系统:基于SpringBoot+MySQL+UniApp的物联网共享解决方案

无人共享经济下的技术革新 随着无人值守经济模式的快速发展,传统共享设备面临管理成本高、效率低下等问题。榕壹云无人共享系统依托SpringBootMySQLUniApp技术栈,结合物联网与移动互联网技术,为商家提供低成本、高可用的无人化运营解决方案。…...

ARCGIS PRO DSK 利用两期地表DEM数据计算工程土方量

利用两期地表DEM数据计算工程土方量需要准许以下数据: 当前地图有3个图层,两个栅格图层和一个矢量图层 两个栅格图层:beforeDem为工程施工前的地表DEM模型 afterDem为工程施工后的地表DEM模型 一个矢量图层&#xf…...

考研408参考用书:计算机组成原理(唐朔飞)介绍,附pdf

我用夸克网盘分享了「《计算机组成原理》第2,3版 唐朔飞」, 链接:https://pan.quark.cn/s/6a87d10274a3 1. 书籍定位与适用对象 定位:计算机组成原理是计算机科学与技术、软件工程等专业的核心基础课程,涉及计算机硬件的底层工作原…...

大数据(7.2)Kafka万亿级数据洪流下的架构优化实战:从参数调优到集群治理

目录 一、海量数据场景下的性能之殇1.1 互联网企业的数据增长曲线1.2 典型性能瓶颈分析 二、生产者端极致优化2.1 批量发送黄金法则2.1.1 分区选择算法对比 2.2 序列化性能突破 三、消费者端并发艺术3.1 多线程消费模式演进3.1.1 消费组Rebalance优化 3.2 位移管理高阶技巧 四、…...

国网B接口云镜控制接口流程详解以及检索失败原因(电网B接口)

文章目录 一、B接口协议云镜控制接口介绍B.8.1 接口描述B.8.2 接口流程B.8.3 接口参数B.8.3.1 SIP头字段B.8.3.2 SIP响应码B.8.3.3 XML Schema参数定义 B.8.4 消息示例B.8.4.1 云镜控制请求B.8.4.2 云镜控制请求响应 二、B接口云镜控制失败常见问题(一)网…...

vue3使用keep-alive缓存组件与踩坑日记

目录 一.了解一下KeepAlive 二.使用keep-alive标签缓存组件 1.声明Home页面名称 三.在路由出口使用keep-alive标签 四.踩坑点1:可能需要配置路由(第三点完成后有效可忽略) 五.踩坑点2:没有找到正确的路由出口 一.了解一下Kee…...

gpt2 本地调用调用及其调用配置说明

gpt2 本地调用调用及其调用配置说明 环境依赖安装,模型下载 在大模型应用开发中,需要学会本地调用模型, 要在本地环境调用gpt2 模型需要将模型下载到本地,这里记录本地调用流程: 在huggingface 模型库中查找到需要使…...

【Abstract Thought】【Design Patterns】python实现所有个设计模式【下】

前言 彼岸花开一千年,花开花落不相见。 若问花开叶落故,彼岸缘起缘又灭——《我欲封天》 \;\\\;\\\; 目录 前言简单的设计模式复杂的设计模式13责任链14迭代器15备忘录16状态机17模板方法18访问者19观察者20命令Shell21策略22调解23解释器 简单的设计模…...

【物联网】PWM控制蜂鸣器

文章目录 一、PWM介绍1.PWM的频率2.PWM的周期 二、PWM工作原理分析三、I.MX6ull PWM介绍1.时钟信号2.工作原理3.FIFO 四、PWM重点寄存器介绍1.PWM Control Register (PWMx_PWMCR)2.PWM Counter Register (PWMx_PWMCNR)3.PWM Period Register (PWMx_PWMPR)4.PWM Sample Register…...

Python----机器学习(基于PyTorch的乳腺癌逻辑回归)

Logistic Regression(逻辑回归)是一种用于处理二分类问题的统计学习方法。它基于线性回归 模型,通过Sigmoid函数将输出映射到[0, 1]范围内,表示概率。逻辑回归常被用于预测某个实 例属于正类别的概率。 一、数据集介绍 在本例中&…...

5分钟学会接口自动化测试框架

今天,我们来聊聊接口自动化测试。 接口自动化测试是什么?如何开始?接口自动化测试框架如何搭建? 自动化测试 自动化测试,这几年行业内的热词,也是测试人员进阶的必备技能,更是软件测试未来发…...

基于FreeRTOS和LVGL的多功能低功耗智能手表(APP篇)

目录 一、简介 二、软件框架 2.1 MDK工程架构 2.2 CubeMX框架 2.3 板载驱动BSP 1、LCD驱动 2、各个I2C传感器驱动 3、硬件看门狗驱动 4、按键驱动 5、KT6328蓝牙驱动 2.4 管理函数 2.4.1 StrCalculate.c 计算器管理函数 2.4.2 硬件访问机制-HWDataAccess 2.4.3 …...

visual studio 常用的快捷键(已经熟悉的就不记录了)

以下是 Visual Studio 中最常用的快捷键分类整理,涵盖代码编辑、调试、导航等核心场景: 一、生成与编译 ​生成解决方案 Ctrl Shift B 一键编译整个解决方案,检查编译错误(最核心的生成操作)​编译当前文件 Ctrl F…...

学习记录-接口自动化python数据类型

1.字符串 str "字符串" str_1 字符串1 2.列表[ ] list [1,2,3,4,5,6] list_1 ["boy","girl"] 3.字典{ } key:value 键值对 dict {"name":"小林","age":20} 4.元组( ) tuple …...

大语言模型深度思考与交互增强

总则:深度智能交互的全面升级 在主流大语言模型(LLM)与用户的每一次交互中,模型需于回应或调用工具前,展开深度、自然且无过滤的思考进程。当模型判断思考有助于提升回复质量时,必须即时进行全方位的思考与…...

<C#> 详细介绍.NET 依赖注入

在 .NET 开发中,依赖注入(Dependency Injection,简称 DI)是一种设计模式,它可以增强代码的可测试性、可维护性和可扩展性。以下是对 .NET 依赖注入的详细介绍: 1. 什么是依赖注入 在软件开发里&#xff0…...

布局决定终局:基于开源AI大模型、AI智能名片与S2B2C商城小程序的战略反推思维

摘要:在商业竞争日益激烈的当下,布局与终局预判成为企业成功的关键要素。本文探讨了布局与终局预判的智慧性,强调其虽无法做到百分之百准确,但能显著提升思考能力。终局思维作为重要战略工具,并非一步到位的战略部署&a…...

构建面向大模型训练与部署的一体化架构:从文档解析到智能调度

作者:汪玉珠|算法架构师 标签:大模型训练、数据集构建、GRPO、自监督聚类、指令调度系统、Qwen、LLaMA3 🧭 背景与挑战 随着 Qwen、LLaMA3 等开源大模型不断进化,行业逐渐从“能跑通”迈向“如何高效训练与部署”的阶…...

告别循环!用Stream优雅处理集合

什么是stream? 也叫Stream流,是jdk8新增的一套API(java.util.stream.*)可以用于操作集合或者数组的数据。 优势:Stream流大量的结合了Lambda语法的风格编程,提供了一种更加强大,更加简单的方式…...

Linux电源管理、功耗管理 和 发热管理 (CPUFreq、CPUIdle、RPM、thermal、睡眠 和 唤醒)

1 架构图 1.1 Linux内核电源管理的整体架构 《Linux设备驱动开发详解:基于最新的Linux4.0内核》图19.1 1.2 通用的低功耗软件栈 《SoC底层软件低功耗系统设计与实现》 1.3 低功耗系统的架构设计;图1-3 2 系统级睡眠和唤醒管理 Linux系统的待机、睡眠…...

OSCP - Proving Grounds -FunboxEasy

主要知识点 弱密码路径枚举文件上传 具体步骤 首先是nmap扫描一下,虽然只有22,80和3306端口,但是事情没那么简单 Nmap scan report for 192.168.125.111 Host is up (0.45s latency). Not shown: 65532 closed tcp ports (reset) PORT …...

探索 Go 与 Python:性能、适用场景与开发效率对比

1 性能对比:执行速度与资源占用 1.1 Go 的性能优势 Go 语言被设计为具有高效的执行速度和低资源占用。它编译后生成的是机器码,能够直接在硬件上运行,避免了 Python 解释执行的开销。 以下是一个用 Go 实现的简单循环计算代码: …...

c++:构造函数(Constructor)与析构函数(Destructor)

目录 为什么我们需要构造函数? 什么是构造函数? 🧬 本质:构造函数是“创建对象的一部分” 为什么 需要析构函数? 什么是析构函数? 析构函数的核心作用 ❗注意点 为什么我们需要构造函数&#xff1f…...

三周年创作纪念日

文章目录 回顾与收获三年收获的五个维度未来的展望致谢与呼唤 亲爱的社区朋友们,大家好! 今天是 2025 年 4 月 14 日,距离我在 2022 年 4 月 14 日发布第一篇技术博客《SonarQube 部署》整整 1,095 天。在这条创作之路上,我既感慨…...

Vue 3 国际化实战:支持 Element Plus 组件和语言持久化

目录 Vue 3 国际化实战:支持 Element Plus 组件和语言持久化实现效果:效果一、中英文切换效果二、本地持久化存储效果三、element Plus国际化 vue3项目国际化实现步骤第一步、安装i18n第二步、配置i18n的en和zh第三步:使用 vue-i18n 库来实现…...