news 2026/1/8 20:28:18

手把手搭建基于Prometheus + Grafana的高效且全面的数据库监控体系(部署指南)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手把手搭建基于Prometheus + Grafana的高效且全面的数据库监控体系(部署指南)

数据库监控是保障系统稳定运行的“眼睛”。

本文将带你从零开始,搭建一套基于 Prometheus + Grafana 的高性能、可视化数据库监控平台,涵盖主机、数据库、日志、告警与仪表盘配置等,适用于生产环境!

数据库的监控方案有很多,例如用zabbix、赤兔等,本文通过开源组件,并配合可自定义的脚本等方式,设计一套高效、全面的数据库监控方案。

1. 整体架构

数据库监控是观察数据库运行情况的"眼睛",是保障数据库稳定、高效运行的关键环节之一。Prometheus + Grafana是目前最流行的数据库监控工具组合之一,其使用灵活、社区活跃。其中Prometheus负责监控数据按照时间序列采集和存储,Grafana 用于构建强大的可视化仪表盘。

1.1 监控对象

  • 操作系统: 主机状态、CPU(CPU使用率、CPU load等)、内存(内存使用率、swap等)、磁盘(磁盘使用情况、IO读写速度、IO延迟等)、网络(进出流量、socket连接状态等)、文件打开数等

  • 数据库: 数据库状态、连接数、内存使用、TPS、QPS、慢SQL、并发数、数据延迟、锁等待、死锁等

  • 日志: 操作系统日志、数据库日志

  • 其他: 自定义监控(长事务、表增量、大表等)

1.2 数据采集

  • 客户端方式: 对于主机、操作系统、各类数据库均有对应的监控客户端,直接部署(数据库客户端需要在被监控的数据库开通对应的数据库监控账号及授权)

  • 其他采集端: 对于日志类及自定义监控项需要借助logstash或自定义采集程序来获取数据

1.3 监控数据存储

因使用Prometheus进行采集、监控,因此数据存储于Prometheus的TSDB中(时序库,可以自定义存储时长,对于过期数据自动清理,且监控检索效率高)

1.4 数据展示

因grafana提供了丰富的展示面板,因此可以通过grafana进行图形化展示。另外grafana上也可以自定义面板,用来满足不同的数据图形化展示。

1.5 监控预警

  • 配置预警规则: 可以根据主机、各类数据库制定预警规则

  • 预警通知: 对匹配到的预警规则项Prometheus alert会发出相应预警(邮件、短信、或者其他webhook)

  • 自定义预警: 配置自定义程序进行定制化预警

2. 部署方案

2.1 Prometheus服务端部署

2.1.1 Prometheus 服务端程序安装

Prometheus 主程序,主要是负责存储、抓取、聚合、查询方面

可登录官网进行下载,官网下载地址:https://prometheus.io/download/

根据操作系统类别选择文件进行下载,本次部署在linux上且选择LTS版本

/** 下载*/wget https://github.com/prometheus/prometheus/releases/download/v3.5.0/prometheus-3.5.0.linux-amd64.tar.gz/** 解压*/tar -zxvf prometheus-3.5.0.linux-amd64.tar.gz

2.1.2 启动prometheus

生产环境可参考如下方式启动

/** 生产环境启动*/nohup ./prometheus --config.file=prometheus.yml --web.enable-lifecycle --storage.tsdb.retention.time=60d &

--web.enable-lifecycle 加上此参数可以远程热加载配置文件,无需重启prometheus,调用指令是curl -X POST http://ip:9090/-/reload

-- storage.tsdb.retention.time 数据默认保存时间为15天,启动时加上此参数可以控制数据保存时间

其他的参数及配置可以在prometheus.yml中调整及配置

2.2 客户端部署

根据不同的需求,官网上有不同的客户端可用于下载部署,本次按照监控Linux主机及MySQL数据库为例进行相关部署操作。

2.2.1 监控linux主机

下载监控linux主机的node_exporter,依旧从官网下载

/** 下载 */wget https://github.com/prometheus/node_exporter/releases/download/v1.9.1/node_exporter-1.9.1.linux-amd64.tar.gz/** 解压 */tar -zxvf node_exporter-1.9.1.linux-amd64.tar.gz

可以按照默认方式启动

# 启动 node_exportercd node_exporter-1.91.linux-amd64nohup ./node_exporter & /**默认端口9100*/

2.2.2 监控MySQL

下载监控MySQL的mysqld_exporter,依旧从官网下载​​​​​​​

# 下载wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.18.0/mysqld_exporter-0.18.0.linux-amd64.tar.gz# 解压tar -zxvf mysqld_exporter-0.18.0.linux-amd64.tar.gz

在MySQL里配置MySQL监控账号​​​​​​​

/** 创建账号 */mysql> CREATE USER 'mysql_monitor'@'localhost' identified by 'Mysql_monitor@2025';/** 授权 */mysql> GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'mysql_monitor'@'localhost';mysql> GRANT SELECT ON performance_schema.* TO 'mysql_monitor'@'localhost';/** 注意,不同版本对权限要求不一致,启动时注意查看日志,如权限不足则继续授权或创建对应的账号 */

配置文件修改​​​​​​​

cd mysqld_exporter-0.18.0.linux-amd64vim .my.cnf /** 添加如下配置 */[client]port=3306user=mysql_monitorpassword=Mysql_monitor@2025

启动监控脚本

nohup ./mysqld_exporter --config.my-cnf=.my.cnf &

其他自定义的监控也可以编写相应的采集程序将监控数据存储于Prometheus、ES或MySQL等其他存储中。

2.3 预警部署

预警使用alertmanager进行管理,部署步骤如下:​​​​​​​

#获取最新版本号LATEST_VERSION=$(curl -s https://api.github.com/repos/prometheus/alertmanager/releases/latest | grep tag_name | cut -d'"' -f4)#下载二进制文件wget https://github.com/prometheus/alertmanager/releases/download/${LATEST_VERSION}/alertmanager-${LATEST_VERSION}.linux-amd64.tar.gz# 解压tar xvf alertmanager-${LATEST_VERSION}.linux-amd64.tar.gzcd alertmanager-${LATEST_VERSION}.linux-amd64

创建配置文件

​​​​​​​​​​​​
vim alertmanager.yml# 添加内容,示例如下global:smtp_smarthost: 'localhost:25'smtp_from: 'alertmanager@your-domain.com'route:group_by: ['alertname', 'cluster']group_wait: 30sgroup_interval: 5mrepeat_interval: 3hreceiver: 'default-receiver'receivers:- name: 'default-receiver'email_configs:- to: 'alerts@your-domain.com'

启动服务

nohup ./alertmanager &

部署完毕后可以在通过页面查看告警信息 http://ip:9093

2.4 可视化展示

2.4.1 安装Grafana

Grafana是一个可视化面板(Dashboard),有着丰富的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus等数据源。

  • 下载并安装

下载地址:https://grafana.com/grafana/download

选择最新的版本进行安装,按照网站的提示运行脚本即可(监控服务器需可访问外网,如无法访问外网可与我沟通如何离线快速部署)。

运行如下脚本​​​​​​​

wget https://dl.grafana.com/oss/release/grafana-6.3.3-1.x86_64.rpmsudo yum localinstall grafana-6.3.3-1.x86_64.rpm
  • 启动grafana

安装完成后,grafana服务默认已安装,配置文件为/etc/grafana/grafana.ini,如需修改路径及端口,可在该文件中修改

启动grafana

/etc/init.d/grafana-server start
  • 登录grafana

访问页面http://服务器IP:3000 ,默认账号、密码admin/admin 首次登录将提示修改密码,建议修改

2.4.2 配置仪表盘

  • 下载各监控仪表盘

以上模板grafana官方网站均有,可以根据自己的需要下载对应的模板,对应地址为https://grafana.com/grafana/dashboards。找到对应的仪表盘模板后进入下载

  • 配置数据源

本次使用的为prometheus数据源,因此配置一个prometheus的数据源。如果之前在grafana上没有配置过数据源 登录后会提示创建

选择prometheus,配置prometheus地址

最终save & Test即可

  • 导入仪表盘

将下载的模板导入

修改名称及数据源 选择import即可

  • 配置完成后即可查看各监控情况

主机监控如下

MySQL

3. 资源需求

部署相关监控服务端、客户端、采集程序等,需要相关的服务器资源、网络及数据库权限等。对应的资源需求列表如下:

资源

需求

说明

服务器

8C 32G内存 1T以上存储 * 2台

部署Prometheus服务端、Alertmanager、grafana、MySQL 等,2台用于高可用部署,避免单点故障

虚拟IP或域名

1个VIP或内网域名

用于高可用切换后登录页面等无需做调整变更

告警接口

短信、电话、飞书等告警接口

根据不同预警级别的不同分别进行各渠道告警通知

网络端口

3000

grafana可视化页面端口

9090

Prometheus

9093

alertmanager告警页面端口

9100、9182

Prometheus主机客户端端口

MySQL: 使用mysqld_exporter,默认端口9104

PostgreSQL: 使用postgres_exporter,默认端口9187

Redis: 使用redis_exporter,默认端口9121

MongoDB: 使用mongodb_exporter,默认端口9216

SQL Server: 使用sqlserver_exporter,默认端口9399

Oracle: 使用oracledb_exporter,默认端口9161

Prometheus各类数据库客户端端口(如需其他的再另行添加)

MySQL: 3306

PostgreSQL: 5432

Redis: 6379

MongoDB:27017-27019

SQL SERVER: 1433

Oracle: 1521

各类数据库默认端口(如需其他的再另行添加),用于代理监控及自定义监控

外网

访问外网,用于部署相关依赖组件

如有可代理访问的ngnix、yum源、pip源等,可以不开放外网

4. 总结

通过 Prometheus + Grafana + Exporter + Alertmanager 四件套,你可以快速构建一套企业级数据库监控平台,实现全方位性能洞察、实时可视化展示、智能告警通知、低成本、高扩展、易维护的数据库监控系统,全面提升监控的覆盖面及及时性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/4 9:48:42

基于HeyGem的AI数字人视频生成技术详解:支持批量处理与单个模式

基于HeyGem的AI数字人视频生成技术详解 在企业宣传、在线教育和智能客服日益依赖虚拟形象的今天,如何快速、低成本地制作高质量数字人视频,成为许多团队面临的核心挑战。传统方式往往需要专业动画师逐帧调整口型,耗时动辄数小时,且…

作者头像 李华
网站建设 2026/1/4 9:47:37

WEBM谷歌生态适配:HeyGem兼容YouTube常用格式

WEBM谷歌生态适配:HeyGem兼容YouTube常用格式 在短视频内容爆炸式增长的今天,越来越多的内容创作者开始借助AI技术批量生成讲解视频、虚拟主播或在线课程。而当这些内容最终要上传至YouTube时,一个看似不起眼却极为关键的问题浮出水面&#x…

作者头像 李华
网站建设 2026/1/4 9:47:23

Adobe Premiere Pro剪辑HeyGem输出视频终极指南

Adobe Premiere Pro剪辑HeyGem输出视频终极指南 在内容创作日益追求效率与个性化的今天,如何快速生成高质量的讲解类视频,成为教育、电商、企业培训等领域共同面临的挑战。传统的真人出镜拍摄不仅成本高、周期长,还受限于人员档期和场地条件。…

作者头像 李华
网站建设 2026/1/4 9:47:21

Final Cut Pro调色技巧:提升HeyGem生成画面质感

Final Cut Pro调色技巧:提升HeyGem生成画面质感 在AI视频内容爆发式增长的今天,数字人已不再是未来概念,而是企业宣传、在线教育和短视频运营中的日常工具。像HeyGem这样的AI口型同步系统,能够将一段音频快速转化为自然流畅的数字…

作者头像 李华
网站建设 2026/1/4 9:46:26

无法连接到服务器:连接被拒绝

文章目录环境症状问题原因解决方案环境 系统平台:N/A 版本:4.3.4,4.7.5,5.6.1 症状 连接数据库提示:无法连接到服务器:连接被拒绝。 问题原因 如果出现此问题,有一下几种可能的原因: 1.服务器没有运行…

作者头像 李华
网站建设 2026/1/4 9:45:53

韩国电信诈骗“无过错赔偿”制度的立法逻辑与技术应对路径

摘要近年来,语音钓鱼(Voice Phishing)等电信诈骗在韩国呈高发态势,传统以用户责任为核心的电子金融交易责任框架已难以有效保护普通消费者权益。2025年底,韩国执政党与政府联合推动“无过错赔偿”制度立法,…

作者头像 李华