Prometheus如何监控MySQL
Prometheus是一款目前非常热门的开源监控系统,可用于监控各种不同类型的服务。在这其中,监控MySQL即是Prometheus的一个重要功能。MySQL作为当前使用最广泛的关系型数据库系统,在业务中具有非常重要的用途,做好对于MySQL的监控,对于保证业务的稳定性无疑是必不可少的。
在本文中,我们将介绍如何基于Prometheus的方式,来实现对于MySQL数据库的状态监控。

01
—安装MySQL ExporterMySQL Exporter是一个专门用于监控MySQL数据库的程序,它能够收集相关的各种指标,如连接数、查询数、错误数等等。
我们通常会在MySQL服务器上安装该exporter,这样就可以为我们提供相关的数据信息。1. 下载解压安装包
$ wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.13.0/mysqld_exporter-0.13.0.linux-amd64.tar.gz
$ tar -zxvf mysqld_exporter-0.13.0.linux-amd64.tar.gz
2. 创建exporter配置文件
在配置文件中写入myslq的账号密码,这样在运行时可免密码连接数据库。这里为了方便演示,我们使用root账号连接,但在实际生产环境中为了保证安全性,建议使用只读账号。
$ mkdir -p /etc/mysql_exporter/
$ vi /etc/mysql_exporter/my.cnf
[client]
user=root
password=123456
3. 启动exporter
$ cd mysqld_exporter-0.13.0.linux-amd64
$ ./mysqld_exporter --config.my-cnf=/etc/mysql_exporter/my.cnf &
02
—配置prometheus
在安装好MySQL Exporter之外,我们开始在Prometheus上配置Job,用于获取监控数据。
1. 配置Job
- job_name: 'mysql'
scrape_interval: 5s
static_configs:
- targets: ['192.168.214.112:9104']
注:这里定了一个名为mysql的Job,每5秒钟收集MySQL Exporter程序的指标数据。目标为192.168.214.112:9104,即是该exporter所在的服务器地址和端口。
2. 重启prometheus
$ prometheus --config.file /etc/prometheus/prometheus.yml &
3. 查看目标状态,已正常运行。

4. 查看metrics信息 ,已获取。

03—配置Grafana展示在Prometheus成功获取数据后,我们可以来配置Grafana的监控展示。由于Grafana社区提供了很多Dashboard模板,因此直接使用社区的模板是最方便的方式,可以节省不少人工操作成本。
1. 进入Grafana后,左上角点击“Create"-”Import“,开始导入模板。

2. 填写Mysql Dashboard模板编号,此处填写”7362“,点击Load。

3. 填写Dashboard的模板名称,还有相关的Prometheus源。

4. 导入完成后,可看到效果如下所示,监控看板完成。

04—配置告警
除了监控展示,告警也是一项重要的工作。对于数据库的告警,通常需要与DBA进行沟通,来确认相关指标的告警阀值。
以下是一些常见的指标供参考,它们可以帮助你及时发现MySQL的问题:
1. mysql_global_status_threads_connected
当前连接到MySQL服务器的客户端数量。
2. mysql_global_status_threads_running
正在运行的线程数。
3. mysql_global_status_queries
执行的查询总数。
4. mysql_global_status_slow_queries
慢查询总数。
5. mysql_global_status_aborted_clients
客户端终止的连接数。
6. mysql_global_status_aborted_connects
尝试连接MySQL服务器,但连接未成功的次数。
7. mysql_global_variables_max_connections
MySQL服务器允许的最大并发连接数。
至此,使用Prometheus监控MySQL工作完成。全文结束,如果觉得本文有帮助,可以点个赞