zabbix 如何监控mysql 出错的查询数量_MON-DB-MySQL 通过 zabbix 监控 processlist 数量

2022-10-25 09:09:31

MON-DB-MySQL 通过 zabbix 监控 processlist 数量

本方案基本思路为先通过脚本将 MySQL 的 processlist 数量输出至文本文件, 之后通过 zabbix_agent 的自定义参数方式获取文件内的值并传输至 zabbix 的服务器端

1.MySQL 主从复制及同步延迟输出至文本文件

脚本以及状态文本文件的存放路径:/data/myscript (可按需配置)

创建目录

命令: mkdir /data/myscript

进入目录

命令: cd /data/myscript

创建 processlist 数量记录文件

命令: touch processlist_num

创建脚本文件: mysql_processlist_monitor.sh

命令: vi mysql_processlist_monitor.sh### 添加如下内容 ###

#!/bin/bash

cd/data/myscript

/usr/local/MySQL/bin/MySQL-uroot-pXXXXXXXX-e"select count(*) from information_schema.processlist;"|awk'{print $(NF-1)}'|sed-n"2,2p">processlist_num

### 以上 ###

说明:

其中 XXXX 为 MySQL 数据库 root 用户的密码, 建议创建一个只能查看数据库连接情况的账号 status_check.

/usr/local/MySQL/bin/MySQL 为 MySQL 命令全路径

为脚本添加可执行权限:

chmod +x mysql_processlist_monitor.sh

测试脚本:

命令:/data/myscript/mysql_processlist_monitor.sh #执行脚本

命令: more /data/myscript/processlist_num #查看是否有返回值

2. 调整 zabbix_agent 配置, 添加自定义参数

zabbix_agent 配置文件路径:/usr/local/zabbix/etc/zabbix_agentd.conf

配置 zabbix_agentd.conf

命令: vi /usr/local/zabbix/etc/zabbix_agentd.conf### 添加如下内容 ###

UserParameter=mysql_processlist_count,cat/data/myscript/processlist_num

### 以上 ###

说明:

zabbix 的自定义参数的格式为

UserParameter=key,command #key 为定义的键值, command 为获得返回参数的命令

通过定义 mysql_processlist_count 并读取对应文件获取对应的返回值

重启 zabbix

1) 保存文件后重启 zabbix_agent

命令: ps -ef|grep zabbix

2) 获取所有 zabbix 的进程, 并使用 kill -9 命令清除 zabbix 进程

命令: kill -9 进程号

3) 确认 zabbix 进程清除完毕后使用 systemctl 启动 zabbix

命令: systemctl start zabbix_agentd

4) 检查 zabbix 平台上该服务器是否有多的返回值

3. 配置定时任务持续刷连接数状态

命令: crontab -e### 添加如下内容 ###

*/5 * * * */data/myscript/mysql_processlist_monitor.sh

### 以上 ###

4.zabbix 监控内容

zabbix 平台通过监控 mysql_processlist_count 的值实现告警

MySQL.processlist_count 的值若大于 1200, 触发告警通知管理员

来源: http://www.bubuko.com/infodetail-3718439.html

  • 作者:踏歌西行
  • 原文链接:https://blog.csdn.net/weixin_34221154/article/details/113689786
    更新时间:2022-10-25 09:09:31