Prometheus 监控MySQL数据

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的监控指标

  1. 全局状态变量

    • mysql_global_variables_max_connections:MySQL 最大允许的连接数。
    • mysql_global_status_threads_connected:当前活动的连接数。
  2. 连接相关指标

    • mysql_global_status_connections:自从服务器启动以来尝试连接MySQL的次数。
    • mysql_global_status_aborted_connects:失败的连接尝试次数。
  3. 查询性能指标

    • mysql_global_status_questions:服务器接收的查询请求数。
    • mysql_global_status_slow_queries:慢查询的数量。
    • mysql_global_status_select_full_join:没有使用索引的联接数量。
  4. 缓存和缓冲池

    • 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:索引读取请求及其实际磁盘读取次数。
  5. 表锁和行锁

    • mysql_global_status_table_locks_waited:需要等待的表锁次数。
    • mysql_global_status_innodb_row_lock_time_avg:InnoDB 行锁平均等待时间。
  6. 复制状态(如果适用):

    • mysql_slave_status_seconds_behind_master:主从复制延迟时间。
  7. 资源使用情况

    • mysql_global_status_open_files:当前打开的文件描述符数。
    • mysql_global_status_open_tables:当前打开的表数。
  8. 系统层面指标(可能间接通过Node_Exporter获取主机的资源情况):

    • CPU使用率、内存使用情况、磁盘I/O等。
  9. 异常和错误

    • mysql_global_status_errors:各种类型的错误计数。

关于Prometheus监控MySQL,今天就分享到这里!谢谢各位的观看。

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值