zabbix4.4使用自定义监控脚本监控mysql

由于官方zabbix4.4的mysql监控方法有些问题,一直没找到原因,看到zabbix论坛有和我一样问题的人,于是还是采用老的方式来监控zabbix性能

以前的笔记查看这个,https://sulao.cn/post/513.html,该方案只适合zabbix3.4和zabbix4.0

官网的各种监控方案请查看这里:https://www.zabbix.com/cn/integrations/

当前主要配置过程如下

首先修改zabbix-agent.conf配置文件

UnsafeUserParameters=1 #去掉前面#,然后值修改为1

然后我们需要清空官方的默认的监控mysql配置文件userparameter_mysql.conf,其位置在/etc/zabbix/zabbix_agentd.d/,内容改为

UserParameter=mysql.status[*],/etc/zabbix/script/mysql_status.sh $1
UserParameter=mysql.ping,mysqladmin -u root -h localhost -padmin ping 2>/dev/null | grep -c alive
UserParameter=mysql.version,mysql -V

其中调用了一个脚本mysql_status.sh,放置位置和userparameter_mysql.conf一样,内容如下

#!/bin/bash
mysql_host='127.0.0.1'
mysql_user='root'
mysql_pass='admin'
mysql_port=3306

mysql_conn="mysqladmin -h ${mysql_host} -u ${mysql_user} -P ${mysql_port} -p${mysql_pass}"

if [ $# -ne "1" ];then
    echo "param error !"
fi

case $1 in
    Uptime)
        result=`${mysql_conn} status 2>/dev/null |awk '{print $2}'`
        echo $result
        ;;
    Questions)
        result=`${mysql_conn} status 2>/dev/null |awk '{print $6}'`
        echo $result
        ;;
    Com_update)
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Com_update" |awk '{print $4}'`
        echo $result
        ;;
    Slow_queries)
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Slow_queries" |awk '{print $4}'`
        echo $result
        ;;
    Com_select)
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Com_select" |awk '{print $4}'`
        echo $result
        ;;
    Com_rollback)
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Com_rollback" |awk '{print $4}'`
        echo $result
        ;;
    Com_insert)
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Com_insert" |awk '{print $4}'`
        echo $result
        ;;
    Com_delete)
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Com_delete" |awk '{print $4}'`
        echo $result
        ;;
    Com_commit)
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Com_commit" |awk '{print $4}'`
        echo $result
        ;;
    Bytes_sent)
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Bytes_sent" |awk '{print $4}'`
        echo $result
        ;;
    Bytes_received)
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Bytes_received" |awk '{print $4}'`
        echo $result
        ;;
    Com_begin)
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Com_begin" |awk '{print $4}'`
        echo $result
        ;;*)
        echo "Usage:$0(Uptime|Questions|Com_update|Slow_queries|Com_select|Com_rollback|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"
        ;;
esac

然后给与脚本执行权限

chmod +x mysql_status.sh

然后我们重启zabbix-agent

systemctl restart mysql

然后再去zabbix平台上给主机添加Template DB MySQL模板,其实这个4.4的模板已经不适用刚才我们配置的mysql脚本监控了,但是个别监控项还是可用的,例如mysql.ping

我们再zabbix服务器上安装zabbix-get工具

 wget https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.4/rhel/7/x86_64/zabbix-get-4.4.0-1.el7.x86_64.rpm
 yum localinstall zabbix-get-4.4.0-1.el7.x86_64.rpm

然后测试下我们添加的监控

zabbix_get -s 172.26.61.51 -k "mysql.ping"

返回1,说明我的脚本和监控项都正常,我们可以尝试添加一个自定义的监控项和图形,监控项的配置如下

{CC0BEB95-27BC-42FD-AFF6-38200F168F8A}_20191029112833.jpg

其实我们可以使用命令进行测试看看有没有结果返回

zabbix_get -s 172.26.61.51 -k "mysql.status[Questions]"

返回172,说明我们这个监控项是加的没问题的,然后我们去添加图形,图形配置如下图

{7D5ADA01-ED03-4813-A50D-C2A00B5BAB25}_20191029113041.jpg

然后稍等一会,我们就可以再图形里面找到mysql questions,查看如下图就是没有问题了

{047BDBF0-099E-454E-B70C-520053657F95}_20191029113151.jpg

其他需要监控的监控项可以自行添加,官方默认的监控项不需要的可以进行关闭


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/738.html