一、创建单独的一个数据库用户登录测试:
二、编写监控脚本: (在zabbix客户端上操作) mkdir -p /usr/local/zabbix/script && cd /usr/local/zabbix/script vim mysql_status.sh #! /bin/bash #date: 2019-05-06 # Description:zabbix监控mysql性能以及进程状态 # Note:此脚本需要配置在被监控端 MYSQL_HOST="192.168.189.77" MYSQL_ADMIN="/usr/local/mysql-5.7.25/bin/mysqladmin" MYSQL_USER="jk" MYSQL_PS="jk.com123" #如果你的nginx 不是3306端口,需要添加一个端口变量。 # 检测mysql进程是否存在 function ping { /sbin/pidof mysqld | wc -l } # 检测mysql性能 function uptime { $MYSQL_ADMIN -u$MYSQL_USER -p$MYSQL_PS -h$MYSQL_HOST status 2>/dev/null |awk '{print $2}' } function slow { $MYSQL_ADMIN -u$MYSQL_USER -p$MYSQL_PS -h$MYSQL_HOST status 2>/dev/null |awk '{print $9}' } function questions { $MYSQL_ADMIN -u$MYSQL_USER -p$MYSQL_PS -h$MYSQL_HOST status 2>/dev/null |awk '{print $6}' } function update { $MYSQL_ADMIN -u$MYSQL_USER -p$MYSQL_PS -h$MYSQL_HOST extended-status 2>/dev/null |grep -w "Com_update"|cut -d"|" -f3 } function select { $MYSQL_ADMIN -u$MYSQL_USER -p$MYSQL_PS -h$MYSQL_HOST extended-status 2>/dev/null |grep -w "Com_select"|cut -d"|" -f3 } function rollback { $MYSQL_ADMIN -u$MYSQL_USER -p$MYSQL_PS -h$MYSQL_HOST extended-status 2>/dev/null |grep -w "Com_rollback"|cut -d"|" -f3 } function insert { $MYSQL_ADMIN -u$MYSQL_USER -p$MYSQL_PS -h$MYSQL_HOST extended-status 2>/dev/null |grep -w "Com_insert"|cut -d"|" -f3 } function delete { $MYSQL_ADMIN -u$MYSQL_USER -p$MYSQL_PS -h$MYSQL_HOST extended-status 2>/dev/null |grep -w "Com_delete"|cut -d"|" -f3 } function commit { $MYSQL_ADMIN -u$MYSQL_USER -p$MYSQL_PS -h$MYSQL_HOST extended-status 2>/dev/null |grep -w "Com_commit"|cut -d"|" -f3 } function sent_bytes { $MYSQL_ADMIN -u$MYSQL_USER -p$MYSQL_PS -h$MYSQL_HOST extended-status 2>/dev/null |grep -w "Bytes_sent"|cut -d"|" -f3 } function received_bytes { $MYSQL_ADMIN -u$MYSQL_USER -p$MYSQL_PS -h$MYSQL_HOST extended-status 2>/dev/null |grep -w "Bytes_received"|cut -d"|" -f3 } function begin { $MYSQL_ADMIN -u$MYSQL_USER -p$MYSQL_PS -h$MYSQL_HOST extended-status 2>/dev/null |grep -w "Com_begin"|cut -d"|" -f3 } function version { $MYSQL_ADMIN -u$MYSQL_USER -p$MYSQL_PS -h$MYSQL_HOST version 2>/dev/null |awk 'NR==8 {print $3}'|awk -F - '{print $1}' } # 执行function $1 chmod +x mysql_status.sh 三、修改zabbix客户端的配置文件: (在zabbix客户端上操作) cd /usr/local/zabbix/etc/zabbix_agentd.conf.d vim mysql.status.conf
保存,退出,重启zabbix客户端。 pkill zabbix_agentd zabbix_agentd 四、测试 (在zabbix服务器上操作)
五、在zabbix WEB页面添加mysql 监控模版,并添加监控项。
![]()
添加监控项:
![]()
![]()
添加其他的监控项:
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
为监控主机(mysql01 189.77),添加模版
![]()
![]()
查看数据:
为mysql 模版添加图形:
![]()
![]()
![]()
![]()
+++++++++++++++++++++++
![]()
创建触发器:(mysql 进程挂掉后,触发,动作,邮件报警) 由于先前创建的动作是应用是所有触发器的,所以这里可以不用再单独创建动作。也可以单独为mysql 触发,创建一个动作。
![]()
![]()
测试触发器:(mysql01 192.168.189.77)停止mysql
![]()
![]()
重新启动 (mysql01 192.168.189.77) mysql
![]()
![]()