Prometheus监控MySQL

Prometheus也可以用mysqld_exporter来监控MySQL。

一、环境

服务器IP系统组件
192.168.0.181CentOS7.6Prometheus Server 2.18.1
192.168.0.183CentOS7.6mysqld_exporter-0.12.1

下载地址为:https://prometheus.io/download/,我这里下载的都是最新版本的。

二、安装node_exporter

在安装mysql的主机上,安装上node_exporter是必要的。一方面是因为这个主机也是需要监控的,另一方面,grafana的dashboard模板中也是直接或者间接的用到主机的内存、CPU等监控数值来绘图。

具体的node_exporter的安装这里就不说了,比较简单,参考前面的文章即可。

三、安装mysqld_exporter

其实mysqld_exporter部署在哪台服务器上都是可以的,因为之后会在mysqld_exporter的配置文件中连接所要监控的mysql。

我这里直接将mysqld_exporter部署在MySQL Server服务器(192.168.0.183)上。

$ cd /usr/local/src
$ wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
$ tar -zxf mysqld_exporter-0.12.1.linux-amd64.tar.gz
$ mv mysqld_exporter-0.12.1.linux-amd64 /usr/local/mysqld_exporter

四、授权

mysqld_exporter需要连接上MySQL之后,才能获取到监控数据。

mysql> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%' identified by 'Abc@123456';
mysql> flush privileges;

因为mysqld_exporter部署在MySQL Server服务器(192.168.0.183)上,所以这里只授权了本地权限,如果是部署在别的服务器上,则需要授予远程权限

五、启动服务

1、创建配置文件
cd /usr/local/mysqld_exporter

vim .my.cnf

[client]
host=localhost
user=exporter
password=Abc@123456

启动的时候,指定这个配置文件即可。

2、创建启动文件(使用systemd管理)

cat > /usr/lib/systemd/system/mysqld_exporter.service <<EOF
[Unit]
Description=mysqld_exporter
After=network.target
 
[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
Restart=on-failure
 
[Install]
WantedBy=multi-user.target
EOF

这里我也是用prometheus用户启动mysqld_exporter,所以要创建prometheus用户并授权。

$ groupadd prometheus
$ useradd -g prometheus -m -d /var/lib/prometheus -s /sbin/nologin prometheus
$ chown -R prometheus:prometheus /usr/local/mysqld_exporter

启动mysqld_exporter:

$ systemctl daemon-reload
$ systemctl start mysqld_exporter
$ systemctl status mysqld_exporter
$ systemctl enable mysqld_exporter
$ ss -tln | grep 9104

六、添加监控目标

需要把mysqld_exporter和安装mysql的主机的node_exporter的监控目标都添加到prometheus server中。

vim /usr/local/prometheus/prometheus.yml 

  - job_name: 'mysql'
    static_configs:
      - targets: ['192.168.0.183:9104']
        labels:
          instance: db-01

  - job_name: 'mysql-node'
    static_configs:
      - targets: ['192.168.0.183:9100']
        labels:
          instance: db-01

注意:这里instance需要设置成相同的值,因为grafana中有些绘图会根据instance来绘制。

重启Prometheus server

$ systemctl restart prometheus
或者热加载
$ curl  -X POST localhost:9090/-/reload

七、添加Grafana模板

在Grafana的官方网站上我们可以找到比较好用的MySQL的Dashboard模板,直接用模板地址导入即可。

模板地址为:https://grafana.com/grafana/dashboards/7362

导入之后的效果:
在这里插入图片描述

参考文章:
http://www.eryajf.net/2499.html

### 配置 Prometheus 监控 MySQL 性能指标 为了实现通过 PrometheusMySQL 的性能指标进行监控,需完成几个主要部分的设置: #### 创建具有适当权限的MySQL用户 在 MySQL 中创建一个专门用于监控的用户,并赋予其必要的权限。这可以通过执行 SQL 命令来达成: ```sql GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'prom'@'localhost' IDENTIFIED BY 'abc123'; ``` 此命令授予 `prom` 用户访问特定状态变量的权利,这对于收集诸如连接失败次数 (`mysql_global_status_aborted_clients`) 和主从复制的状态 (如 `mysql_slave_status_slave_sql_running`) 等信息至关重要[^5]。 #### 安装 mysqld_exporter mysqld_exporter 是一款由 Prometheus 社区开发的数据采集器,它可以从 MySQL 数据库提取各种统计信息并将其暴露给 Prometheus 抓取接口。安装过程通常涉及下载二进制文件、解压以及启动服务端口监听。 #### 修改Prometheus配置文件 编辑 Prometheus 的配置文件(通常是 `prometheus.yml`),添加一个新的 job 来指定抓取目标和服务发现机制。例如,在 jobs 列表中加入如下条目: ```yaml scrape_configs: - job_name: 'mysql' static_configs: - targets: ['localhost:9104'] labels: instance: mysql-server ``` 这里假设 mysqld_exporter 正常运行于本地主机上的默认端口 9104 上;如果实际情况不同,则应相应调整 IP 地址和端口号。 #### 启动或重启Prometheus使更改生效 当完成了上述所有准备工作之后,记得保存所做的任何变更到配置文件里去,并且重新加载/重启 Prometheus 进程以应用新的设定。可以采用以下两种方式之一来进行操作: - 使用 systemd 单元管理工具: ```bash systemctl restart prometheus systemctl status prometheus ``` - 或者直接调用可执行程序的方式: ```bash cd /path/to/prometheus/ nohup ./prometheus & ``` 这样就可以让 Prometheus 开始定期轮询来自 mysqld_exporter 提供的目标数据源了[^3][^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值