Prometheus插件安装(mysql_exporter)

简介

mysql_exporter是用来收集MysQL或者Mariadb数据库相关指标的,mysql_exporter需要连接到数据库并有相关权限。既可以用二进制安装部署,也可以通过容器形式部署,但为了数据收集的准确性,推荐二进制安装。

一,下载安装包并解压

安装包下载地址:https://github.com/prometheus/mysqld_exporter/releases

同样物理机上下载,然后上传到服务器,本次安装使用的版本为:mysqld_exporter-0.14.0.linux-amd64

image-20230227110710662

1,根据服务器情况选择安装目录,上传安装包。

cd /prometheus
#解压
tar -xvzf mysqld_exporter-0.14.0.linux-amd64.tar.gz
mv mysqld_exporter-0.14.0.linux-amd64 mysqld_exporter
cd mysqld_exporter

image-20230227111322755

二,创建配置文件

  • 创建配置文件.my.cnf ,填入如下内容后保存:wq
[client]
user = exporter
password = <your password>
host = 11x.xx.xx.7
port = <your port>
vim .my.cnf
cat .my.cnf 

image-20230227112513966

  • mysql创建用户并授权,注意服务ip不要填错
CREATE USER 'exporter'@'<安装Prometheus的主机IP>' IDENTIFIED BY '<your password>';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'<安装Prometheus的主机IP>';
flush privileges;

三,进行系统service编写

  • 创建mysqld_exporter.service配置文件
cd /usr/lib/systemd/system
vim mysqld_exporter.service
  • mysqld_exporter.service 文件填入如下内容后保存:wq
[Unit]
Description=https://prometheus.io

[Service]
Restart=on-failure
ExecStart=/prometheus/mysqld_exporter/mysqld_exporter --config.my-cnf=/prometheus/mysqld_exporter/.my.cnf --web.listen-address=:9104

[Install]
WantedBy=multi-user.target
  • 查看配置文件
cat mysqld_exporter.service 

image-20230227115609266

  • 刷新服务配置并启动服务
systemctl daemon-reload
systemctl start mysqld_exporter.service
  • 查看服务运行状态
systemctl status mysqld_exporter.service

image-20230227115703153

  • 设置开机自启动
systemctl enable mysqld_exporter.service

image-20230227115726376

  • 测试服务返回
curl localhost:9104/metrics

image-20230227115803321

Docker部署

  • 在Docker部署之前,首先要确保拥有Docker环境

  • 拉取mysqld-exporter最新镜像

docker pull prom/mysqld-exporter
  • 创建mysql监听用户并授权,注意服务ip不要填错
CREATE USER 'exporter'@'<安装Prometheus的主机IP>' IDENTIFIED BY '<your password>';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'<安装Prometheus的主机IP>';
flush privileges;
  1. 启动容器
    注意:⚠️ 若二进制章节部署后,需要执行systemctl stop mysqld_exporter.service关闭服务,否则会造成端口冲突,或者docker的端口映射改为-p 9194:9104也可。注意环境变量DATA_SOURCE_NAME的mysql帐号密码与地址无误
docker run -d  --restart=always  --name mysqld-exporter -p 9104:9104 -e DATA_SOURCE_NAME="exporter:<pass>(11x.xx.xx.7:13306)/"  prom/mysqld-exporter
  1. 测试服务返回
curl localhost:9104/metrics

对接prometheus

  • 打开prometheus.yml添加以下内容,并执行:wq,点击回车保存
    # 监控mysql
  - job_name: 'mysql'  
    static_configs:
      - targets: ['11x.xx.xx.7:9104']
        labels:
          instance: mysqld-exporter
  • 执行prometheus配置刷新
curl -XPOST localhost:9090/-/reload
  • 打开prometheus,搜索mysql,可以看到出现了很多的参数指标

image-20230227134454081

  • 打开targets,可以看到节点状态已经UP
    image-20230227134534378
  • 至此mysqld-exporter插件安装完毕