一、配置zabbix-agent
编辑 /etc/zabbix/zabbix_agentd.conf文件 增加如下两个配置
1.vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1
Include=/etc/zabbix/zabbix_agentd.d/*.conf
2.新增配置文件
[root@steven /etc/zabbix] # cat zabbix_agentd.d/zabbix_mysql_template.conf
UserParameter=mysql.status[*],/bin/bash /data/app/scripts/monitor/zabbix-mysql-template.sh $1 $2
二、编写脚本
vim /data/app/scripts/monitor/zabbix-mysql-template.sh
#!/bin/bash
# author: steven
USER="xxxr"
PASSWD="xxxxx"
PORT="$2"
echo $PORT
if [ -z "$2" ];then
socket="--socket=/data/appData/mysql/mysql.sock"
else
socket="--socket=/data/appData/mysql-$PORT/mysql.sock"
fi
if [ -f /data/app/mysql-3307/bin/mysqladmin ];then
MYSQL_CONN="/data/app/mysql-3307/bin/mysqladmin -u$USER -p$PASSWD $socket -u$USER"
else
echo "Not Found Command 'mysqladmin'"
exit
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
;;
ping)
result=`${MYSQL_CONN} ping|grep -c alive`
echo $result
;;
*)
echo "error parameter"
;;
esac
三、zabbix 前端创建监控项
例如:ping
键值对地方写 mysql.status[ping]