mysqld_exporter
是 Prometheus 的 MySQL 指标导出插件
Github地址:https://github.com/prometheus/mysqld_exporter这里来聊聊它的部署。
首先在 https://github.com/prometheus/mysqld_exporter/releases 中找到对应的 mysqld_exporter 版本。
因为我用的是CentOS 7 版本,选择的软件包后缀是 linux-amd64.tar.gz
1.解压Mysqld_exporter并安装
tar -xf mysqld_exporter-0.15.1.linux-amd64.tar.gz cp -r mysqld_exporter-0.15.1.linux-amd64.tar.gz /usr/local/mysqld_exporter
2.编写Mysqld Exporter启动脚本
cat>/usr/local/mysqld_exporter/mysqld_exporter.service<<EOF
[Unit]
Description=mysqld Exporter
After=network.target
Wants=network-online.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
3.添加启动脚本到systemd启动管理中
ln -s /usr/local/mysqld_exporter/mysqld_exporter.service /lib/systemd/system/
systemctl daemon-reload
4.在MySQL上创建监控用户并授权
create user 'prometheus'@'%' IDENTIFIED BY '密码';
GRANT SELECT,PROCESS,SUPER,REPLICATION CLIENT, RELOAD ON *.* TO 'prometheus'@'%';
另外要在/usr/local/mysqld_exporter/
目录下新建一个配置文件:
vim /usr/local/mysqld_exporter/.my.cnf
--------------------------------------------------
[client]
user=prometheus
password=密码
--------------------------------------------------
systemctl start mysqld_exporter
systemctl enable mysqld_exporter
# mysqld_exporter 默认监控 9104端口
这样就实现了对MySQL的监控。
5.MySQL的监控指标
-
全局状态变量:
mysql_global_variables_max_connections
:MySQL 最大允许的连接数。mysql_global_status_threads_connected
:当前活动的连接数。
-
连接相关指标:
mysql_global_status_connections
:自从服务器启动以来尝试连接MySQL的次数。mysql_global_status_aborted_connects
:失败的连接尝试次数。
-
查询性能指标:
mysql_global_status_questions
:服务器接收的查询请求数。mysql_global_status_slow_queries
:慢查询的数量。mysql_global_status_select_full_join
:没有使用索引的联接数量。
-
缓存和缓冲池:
mysql_global_status_innodb_buffer_pool_pages_free
:InnoDB 缓冲池中空闲页面的数量。mysql_global_status_innodb_buffer_pool_pages_total
:缓冲池的总页面数。mysql_global_status_key_read_requests
和mysql_global_status_key_reads
:索引读取请求及其实际磁盘读取次数。
-
表锁和行锁:
mysql_global_status_table_locks_waited
:需要等待的表锁次数。mysql_global_status_innodb_row_lock_time_avg
:InnoDB 行锁平均等待时间。
-
复制状态(如果适用):
mysql_slave_status_seconds_behind_master
:主从复制延迟时间。
-
资源使用情况:
mysql_global_status_open_files
:当前打开的文件描述符数。mysql_global_status_open_tables
:当前打开的表数。
-
系统层面指标(可能间接通过Node_Exporter获取主机的资源情况):
- CPU使用率、内存使用情况、磁盘I/O等。
-
异常和错误:
mysql_global_status_errors
:各种类型的错误计数。
关于Prometheus监控MySQL,今天就分享到这里!谢谢各位的观看。