云计算运维

Windows Server 2003 - Windows Server 2019 系统工具,Linux系统脚本,Mysql、Nginx、PHP、Redis、K8S、Seafile、Weblogic 、Jenkins、DNS、DHCP、FTP、IIS、Zookeeper、Rabbitmq、Oracle、Tomcat、Mavrn等服务搭建维护,请关注我.

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工作完成。全文结束,如果觉得本文有帮助,可以点个赞

  • 分享:
评论
还没有评论
    发表评论 说点什么