zabbix 自定义mysql监控

一、配置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]

 

posted @ 2019-05-08 14:56  Mr-Lee-long  阅读(682)  评论(0编辑  收藏  举报