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

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

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

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

当前主要配置过程如下

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

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

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

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

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

01.
#!/bin/bash
02.
mysql_host='127.0.0.1'
03.
mysql_user='root'
04.
mysql_pass='admin'
05.
mysql_port=3306
06.
07.
mysql_conn="mysqladmin -h ${mysql_host} -u ${mysql_user} -P ${mysql_port} -p${mysql_pass}"
08.
09.
if [ $# -ne "1" ];then
10.
    echo "param error !"
11.
fi
12.
13.
case $1 in
14.
    Uptime)
15.
        result=`${mysql_conn} status 2>/dev/null |awk '{print $2}'`
16.
        echo $result
17.
        ;;
18.
    Questions)
19.
        result=`${mysql_conn} status 2>/dev/null |awk '{print $6}'`
20.
        echo $result
21.
        ;;
22.
    Com_update)
23.
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Com_update" |awk '{print $4}'`
24.
        echo $result
25.
        ;;
26.
    Slow_queries)
27.
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Slow_queries" |awk '{print $4}'`
28.
        echo $result
29.
        ;;
30.
    Com_select)
31.
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Com_select" |awk '{print $4}'`
32.
        echo $result
33.
        ;;
34.
    Com_rollback)
35.
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Com_rollback" |awk '{print $4}'`
36.
        echo $result
37.
        ;;
38.
    Com_insert)
39.
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Com_insert" |awk '{print $4}'`
40.
        echo $result
41.
        ;;
42.
    Com_delete)
43.
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Com_delete" |awk '{print $4}'`
44.
        echo $result
45.
        ;;
46.
    Com_commit)
47.
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Com_commit" |awk '{print $4}'`
48.
        echo $result
49.
        ;;
50.
    Bytes_sent)
51.
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Bytes_sent" |awk '{print $4}'`
52.
        echo $result
53.
        ;;
54.
    Bytes_received)
55.
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Bytes_received" |awk '{print $4}'`
56.
        echo $result
57.
        ;;
58.
    Com_begin)
59.
        result=`${mysql_conn} extended-status 2>/dev/null |grep -w "Com_begin" |awk '{print $4}'`
60.
        echo $result
61.
        ;;*)
62.
        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)"
63.
        ;;
64.
esac

然后给与脚本执行权限

01.
chmod +x mysql_status.sh

然后我们重启zabbix-agent

01.
systemctl restart mysql

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

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

01.
 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
02.
 yum localinstall zabbix-get-4.4.0-1.el7.x86_64.rpm

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

01.
zabbix_get -s 172.26.61.51 -k "mysql.ping"

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

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

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

01.
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/735

评论列表