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" -->选择之前的监控项 -->添加 如图:
至此一个自定义的监控模板制作完成!
后续关联主机,查看最新数据,查看图形做一些调整。