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

news2025/4/16 0:03:30

💫《博主主页》:奈斯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: pod
    relabel_configs:
      - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
        action: keep
        regex: 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的基础介绍就到这里。只有深入了解了它们的基础知识和体系架构,才能更好地进行后续的安装与部署工作。那么我们下篇安装部署见!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2335589.html

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

相关文章

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

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

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. 书籍定位与适用对象 定位:计算机组成原理是计算机科学与技术、软件工程等专业的核心基础课程,涉及计算机硬件的底层工作原…

国网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 …

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

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

告别循环!用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 …

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

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

1.阿里云快速部署Dify智能应用

一、宝塔面板 宝塔面板是一款功能强大且易于使用的服务器管理软件,支持Linux和Windows系统,通过web端可视化操作,优化了建站流程,提供安全管理、计划任务、文件管理以及软件管理等功能。 1.1 宝塔面板的特点与优势 易用性 宝塔面…

在pycharm配置虚拟环境和jupyter,解决jupyter运行失败问题

记录自己pycharm环境配置和解决问题的流程。 解决pycharm无法运行jupyter代码,仅运行import板块显示运行失败,但是控制台不输出任何错误信息,令人困惑。 遇到的问题是:运行代码左下角显示运行失败但是有没有任何的输出错误信息。 …