前言
由于公司有一台MySQL数据库经常在业务高峰期出现资源使用率高峰,因此使用Zabbix监控系统针对MySQL数据库进行监控
一、MySQL数据库配置
1.1 创建Mysql数据库用户
[root@mysql ~]# mysql -uroot -p
MariaDB [(none)]> create user zabbix@'127.0.0.1' identified by '123456';
MariaDB [(none)]> flush privileges;
1.2 添加用户密码到mysql client的配置文件中
[root@mysql ~]# vim /etc/my.cnf.d/client.cnf
[client]
host='127.0.0.1'
user='zabbix'
password='123456'
二、创建自定义监控脚本
[root@mysql ~]# vim /etc/zabbix/script/check_mysql.sh
#!/bin/bash
#Mysql主机地址
MYSQL_HOST='127.0.0.1'
#Mysql端口
MYSQL_PORT='3306'
#数据连接
MYSQL_CONN="/usr/bin/mysqladmin -h${MYSQL_HOST} -P${MYSQL_PORT}"
#参数是否正确
if [ $# -ne "1" ];then
echo "arg error!"
fi
#获取数据
case $1 in
Uptime)
result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"`
echo $result
;;
Com_update)
result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3`
echo $result
;;
Slow_queries)
result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"`
echo $result
;;
Com_select)
result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3`
echo $result
;;
Com_rollback)
result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3`
echo $result
;;
Questions)
result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"`
echo $result
;;
Com_insert)
result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3`
echo $result
;;
Com_delete)
result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3`
echo $result
;;
Com_commit)
result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3`
echo $result
;;
Bytes_sent)
result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3`
echo $result
;;
Bytes_received)
result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3`
echo $result
;;
Com_begin)
result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3`
echo $result
;;
*)
echo "Unknown options."
;;
esac
三、zabbix agent添加自定义键值
[root@mysql ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
UserParameter=mysql.status[*],bash /etc/zabbix/script/check_mysql.sh $1
UserParameter=mysql.ping,/usr/bin/mysqladmin ping 2>/dev/null | grep -c alive
UserParameter=mysql.version,/usr/bin/mysql -V
[root@mysql ~]# systemctl restart zabbix-agent
四、链接Mysql模板
配置–>主机–>添加模板–>选择“Template DB MySQL”
五、数据查看
监控项最新数据查看