💫《博主主页》:奈斯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官网文档手册:
Grafana 官网:
Grafana: The open and composable observability platform | Grafana Labs
prometheus+Grafana全系列文章(实时更新 🔥 ):
【prometheus+Grafana篇】Prometheus与Grafana:深入了解监控架构与数据可视化分析平台-CSDN博客
目录
[1.1 Prometheus Server(核心服务)](#1.1 Prometheus Server(核心服务))
[1.2 Exporters(指标暴露器)](#1.2 Exporters(指标暴露器))
[1.3 Pushgateway(临时任务指标网关)](#1.3 Pushgateway(临时任务指标网关))
[1.4 Alertmanager(告警管理器)](#1.4 Alertmanager(告警管理器))
[1.5 Service Discovery(服务发现)](#1.5 Service Discovery(服务发现))
[1.6 PromQL(查询语言)](#1.6 PromQL(查询语言))
[2.1 Grafana Server(后端服务)](#2.1 Grafana Server(后端服务))
[2.2 Grafana UI(前端界面)](#2.2 Grafana UI(前端界面))
[2.3 数据源插件(Data Source Plugins)](#2.3 数据源插件(Data Source Plugins))
[2.4 面板插件(Panel Plugins)](#2.4 面板插件(Panel Plugins))
[2.5 用户与权限管理](#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 实现了从数据采集、存储到告警和可视化的完整监控闭环。
普罗米修斯使用逻辑:
- Prometheus server定期从静态配置的targets或者服务发现的targets拉取数据(Targets是Prometheus采集Agent需要抓取的采集目标)
- 当新拉取的数据大于配置内存缓存区的时候,Prometheus会将数据持久化到磁盘(如果使用remote storage将持久化到云端)。
- Prometheus可以配置rules,然后定时査询数据,当条件触发的时候,会将alerts推送到配置的Alertmanager。
- Alertmanager收到警告的时候,可以根据配置(163,钉钉等),聚合,去重,降噪,最后发送警告。
- 可以使用APl,Prometheus Console或者Grafana查询和聚合数据。
普罗米修斯的主要特点:
- 支持多维数据模型由指标名称和键值对标识的时间序列数据
- 内置时间序列库TSDB(Time Serices Database)
- 支持PromQL(Promethues Query Language,普罗米修斯的专属查询语言),对数据的查询和分析、图形展示和监控告警。对于监控告警也使用的是PromQL(Promethues Query Language,普罗米修斯的专属查询语言)。
- 不依赖分布式存储,单个服务器节点是自治的。
- 支持HTTP的拉取(pull)方式收集时间序列数据。
- 通过中间网关Pushgateway推送时间序列。
- 通过服务发现或静态配置2种方式发现目标。
- 支持多种可视化和仪表盘,如:grafana。
1.1 Prometheus Server(核心服务)
作用:
✅ 数据抓取(Scraping) :定期从配置的目标(如 Exporters、应用程序)拉取(Pull)指标数据。
✅ 数据存储 :将采集的指标存储在本地时间序列数据库(TSDB)中。
✅ 数据查询 :提供 PromQL 查询语言,支持实时分析和聚合数据。
✅ 告警规则评估 :根据配置的告警规则(
alert.rules
)触发告警。工作流程:
从
scrape_configs
定义的目标(如node_exporter:9100
)拉取/metrics
数据。将数据压缩后写入 TSDB(时间序列数据库)。
提供 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 模型无法监控短暂存活服务的问题。
适用场景:
批处理任务(如每日数据备份)
无法长期运行的服务
工作流程:
任务运行完成后,将指标推送到 Pushgateway。
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 发现):
sqlscrape_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(查询语言)
作用 :
✅ 查询、聚合和分析时间序列数据。
常用查询示例:
sql# 计算 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的基础介绍就到这里。只有深入了解了它们的基础知识和体系架构,才能更好地进行后续的安装与部署工作。那么我们下篇安装部署见!!!