性能测试监控平台搭建-mysqld_exporter(六)
6.安装mysqld_exporter
6.1下载mysqld_exporter的tar包(合理上网)
官网下载地址:https://prometheus.io/download/
6.2 安装mysqld_exporter(安装了mysql的计算机需要安装)
创建存放安装包的目录(环境已经创建的可以跳过)
[root@master ~]# mkdir -p /opt/tgz
创建安装目录(环境已经创建的可以跳过)
[root@master ~]# mkdir -p /opt/app
mysqld_exporter的tar包上传到tgz目录下
[root@master ~]# cd /opt/tgz/
[root@master tgz]# ll
总用量 297756
-r--------. 1 root root 8287769 10月 11 11:04 mysqld_exporter-0.15.1.linux-amd64.tar.gz
解压mysqld_exporter-0.15.1.linux-amd64.tar.gz
[root@master tgz]# tar zxvf mysqld_exporter-0.15.1.linux-amd64.tar.gz
mysqld_exporter-0.15.1.linux-amd64/
mysqld_exporter-0.15.1.linux-amd64/LICENSE
mysqld_exporter-0.15.1.linux-amd64/mysqld_exporter
mysqld_exporter-0.15.1.linux-amd64/NOTICE
将解压后端文件移动到/opt/app的目录下,并且修改目录下所以文件的权限给当前用户,我这里是root用户
[root@master tgz]# mv /opt/tgz/mysqld_exporter-0.15.1.linux-amd64 /opt/app/mysqld_exporter-0.15.1
[root@master tgz]# cd /opt/app/
[root@master app]# chown -R root:root mysqld_exporter-0.15.1
在需要监控的mysql数据库中创建一个用用于监控使用
[root@master app]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 221
Server version: 5.7.44 MySQL Community Server (GPL)
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
# 创建Exporter用户
mysql> CREATE USER 'exporter'@'localhost' IDENTIFIED BY '123456' WITH MAX_USER_CONNECTIONS 3;
# 为root用户进行授权,运行远程访问
mysql> GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%' identified by '123456' with grant option;
mysql> flush privileges;
mysql> quit
创建my.cnf文件
[root@master ~]# vim /opt/app/mysqld_exporter-0.15.1/my.cnf
my.cnf文件内容如下:
user 为mysqld_exporter设置的用户这里是exporter
password 为mysqld_exporter设置的用户对应的密码123456
host 为mysql服务器对应的IP地址
prot 为mysql服务器对应的端口
[client]
user=exporter
password=123456
host=10.0.0.100
prot=3306
创建mysqld_exporter的系统启动文件
[root@master ~]# [root@master ~]# vim /usr/lib/systemd/system/mysqld_exporter.service
mysqld_exporter.service的文件内容如下:
注意配置中的路径地址/opt/app/mysqld_exporter-0.15.1 这里和实际的地址保持一致
[Unit]
Description=prometheus mysqld_exporter Daemon
Documentation=https://github.com/prometheus/mysqld_exporter
Requires=network.target
After=network.target
[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/app/mysqld_exporter-0.15.1
ExecStart=/opt/app/mysqld_exporter-0.15.1/mysqld_exporter --config.my-cnf=/opt/app/mysqld_exporter-0.15.1/my.cnf
TimeoutSec=30
Restart=always
[Install]
WantedBy=multi-user.target
启动mysqld_exporter的服务
# 启动服务
[root@master ~]# systemctl start mysqld_exporter
# 设置服务为开机自动启动
[root@master ~]# systemctl enable mysqld_exporter
# 检查服务的启动状态
[root@master ~]# systemctl status mysqld_exporter
浏览器访问地址 http://10.0.0.100:9104/metrics 界面可以看到如下界面,mysqld_exporter采集数据成功
修改prometheus的配置文件,用于添加对node_exporter的数据收集,在安装prometheus的目录下找到prometheus.yml的配置文件
[root@master ~]# cd /opt/app/prometheus-2.53.2/
[root@master prometheus-2.53.2]# ll
总用量 261328
drwxr-xr-x. 2 root root 38 8月 9 23:13 console_libraries
drwxr-xr-x. 2 root root 173 8月 9 23:13 consoles
drwxr-xr-x. 6 root root 138 10月 11 19:43 data
-rw-r--r--. 1 root root 11357 8月 9 23:13 LICENSE
-rw-r--r--. 1 root root 3773 8月 9 23:13 NOTICE
-rwxr-xr-x. 1 root root 137838575 8月 9 22:56 prometheus
-rw-r--r--. 1 root root 950 10月 11 16:14 prometheus.yml
-rwxr-xr-x. 1 root root 129735160 8月 9 22:56 promtool
-rw-r--r--. 1 root root 45 10月 11 16:11 reload-prometheus.sh
# 修改配置文件添加node_exporter的数据收集信息
[root@master prometheus-2.53.2]# vim prometheus.yml
在prometheus.yml文件中进行修改, 在最后添加上 mysqld_exporter的job_name的配置,注意mysqld_exporter的默认端口是9104
# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
static_configs:
- targets: ["10.0.0.100:9090"]
- job_name: "node_exporter"
static_configs:
- targets: ["10.0.0.100:9100"]
- job_name: "mysqld_exporter"
static_configs:
- targets: ["10.0.0.100:9104"]
通过浏览器地址访问 http://10.0.0.100:9090 的地址访问(ip地址使用实际的地址),在Status->Targets 下 看到 mysqld_exporter启动成功的记录