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

【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: 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的基础介绍就到这里。只有深入了解了它们的基础知识和体系架构,才能更好地进行后续的安装与部署工作。那么我们下篇安装部署见!!!

相关文章:

  • 深度学习总结(12)
  • 10.第二阶段x64游戏实战-添加计时器
  • Mysql概述
  • MCP 认证考试常见技术难题实战分析与解决方案
  • Python(14)Python内置函数完全指南:从基础使用到高阶技巧
  • 爱普生EV7050EAN在ONT交换机的应用
  • GPT-SoVITS:5 步实现 AI 语音克隆
  • 测试用例如何编写
  • 破产计划:ESP32s3+UVC+ov2640实现免驱摄像头
  • CExercise_12_单链表面试题_3合并两条有序的单向链表,使得合并后的链表也是有序的 (要求: 不能额 外申请堆内存空间)
  • 数字人:开启医疗领域的智慧变革新时代(5/10)
  • 计算机三级第一章:信息安全保障概述(以时间节点推进的总结)
  • 【Linux】进程概念(一):冯诺依曼体系结构 + 操作系统
  • ElementNotInteractableException原因及解决办法
  • 基于大模型的轻症急性胰腺炎全流程预测与诊疗方案研究报告
  • java操作redis库,开箱即用
  • 【C++】map与set
  • Vue 技术解析:从核心概念到实战应用
  • ArrayList 和 数组 的区别
  • Vue 3 + TypeScript 实现一个多语言国际化组件(支持语言切换与内容加载)
  • 解码人格拼图:探索心理健康的多维视角
  • 企业称县政府为拆迁开发借款2亿元逾期未还,河北青龙县:开发搁置,将继续沟通
  • 全国首个古文学习AI大模型在沪发布,可批阅古文翻译
  • 深圳大学传播学院院长巢乃鹏已任深圳大学副校长
  • “两高”司法解释:升档为境外非法提供商业秘密罪的量刑标准
  • 中国气象局:针对山西、广西、陕西启动抗旱四级应急响应