21 Zabbix 4.2 自定义Key 监控Mysql5.7.25

一、创建单独的一个数据库用户

登录测试:


二、编写监控脚本: (在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