zabbix自定义脚本监控

一、说明

zabbix监控支持自定义脚本以及自制模板来扩展监控,换句话说就是对业务自定义监控;因此通过撰写脚本完成自定义监控十分有必要;这里的脚本既可以用shell也可以用python等语言;
另外自定义了脚本主要目的是获取业务相关的监控数据;还需要结合zabbix web GUI上的模板才能生效;本文的目的就是基于之前的zabbix相关部署操作之后的补充!

任务:
通过撰写脚本将wget下载速度获取,添加监控模板,添加触发器;添加图形;完整实现脚本自定义监控的整个步聚流程!

 

二、agent端配置

创建目录存放自定义脚本

[root@NOC-WX-ZABBIX ~]#mkdir -pv /etc/zabbix/script
[root@NOC-WX-ZABBIX ~]#chown zabbix.zabbix /etc/zabbix/script

脚本内容

wget_speed()
{
        cd /tmp/
        timeout 5s wget http://download.xxx.51idc.com:8888/XenConvert_Install.exe >/dev/null 2>&1
        i=$(du -sh XenConvert_Install.exe | awk '{print$1}')
        i=$(echo "$i" | tr -cd '[0-9]')
        a=$(echo "scale=2;$i/5" |bc)
        echo $(date "+%m-%d,%H:%M:%S")++++++$a >> /var/log/zabbix/speed.log
        rm -rf /tmp/XenConvert_Install.exe*
        echo $a

}

wget_speed

配置zabbix-agentd.conf
执行自定义脚本获取数据时;需要打开对应选项

[root@NOC-WX-ZABBIX ~]# egrep -v "(^#|^$)" /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
EnableRemoteCommands=1          #远程执行命令的选项
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
Timeout=30
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1          #设置1表示允许用户自定义key(监控项)

修改/etc/sudoers
由于zabbix server获取数据是通过自定义脚本基于agent 代理执行获取,因此需要修改sudo的配置以便执行
/etc/sudoers中添加如下内容并注释如下行

Defaults    requiretty     #不需要tty终端即可执行命令
zabbix  ALL=(root)      NOPASSWD: /usr/sbin/ss
zabbix  ALL=(root)      NOPASSWD: /usr/bin/rm

自定义key配置文件

[root@NOC-WX-ZABBIX ~]# cat /etc/zabbix/zabbix_agentd.d/wget_speed.conf
UserParameter=wget_speed[*],/etc/zabbix/script/wget.sh

说明:此处的wget_speed就是监控key或叫监控项名

重启zabbix-agent服务

[root@NOC-WX-ZABBIX ~]# systemctl restart zabbix-agent

可以通过zabbix server端的zabbix_get测试是否能获取自定义监控项的数据

[root@NOC-WX-ZABBIX ~]# zabbix_get -s 127.0.0.1 -p 10050 -k "wget_speed[wget_speed,ESTAB]"
10.60

至此通过脚本自定义监控项agent端的配置已经完成;

三、自定义模板使用

在agent端完成脚本和自定义的监控项配置后,zabbix server web GUI上需要创建对应的模板;其他的主机可以套用模板以获取自定义数据;
创建模板:
配置-->模块-->创建模板-->模板名称 "WGET_SPEED" -->放入 NOC组-->添加 如图:

 添加itme监控项
配置-->模块-->WGET_SPEED -->监控项 -->创建监控项-->名称 "WGET_SPEED_ESTAB" -->键值"wget_speed[wget_speed,ESTAB]" -->信息类型"浮点数"-->应用集"WGET_SPEED" -->添加
如图:

 

 创建图形:
配置-->模块-->WGET_SPEED -->图形 -->创建图形 -->名称 "WGET_SPEED_Graph" -->选择之前的监控项 -->添加 如图:

 

至此一个自定义的监控模板制作完成!

后续关联主机,查看最新数据,查看图形做一些调整。

 

posted @ 2020-07-23 09:50  大光头哥  阅读(7793)  评论(0编辑  收藏  举报