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