添加监控脚本
虽然Zabbix直接集成和覆盖了很多我们的监控对象,但有时官方提供的条目无法满足我们的个性化需求,这时需要自定义一些脚本,获取信息以让zabbix可以接受并处理
代码语言:javascript复制[root@zbx-target zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
[root@zbx-target zabbix]# cd zabbix_agentd.d/
[root@zbx-target zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@zbx-target zabbix_agentd.d]# mkdir script
[root@zbx-target zabbix_agentd.d]# ls
script userparameter_mysql.conf
[root@zbx-target zabbix_agentd.d]# cd script/
[root@zbx-target script]# vim port.discovery.bash
[root@zbx-target script]# ll
total 4
-rw-r--r--. 1 root root 212 Dec 14 15:50 port.discovery.bash
[root@zbx-target script]# chmod x port.discovery.bash
[root@zbx-target script]# ./port.discovery.bash
{"data":[{"{#OPENPORT}":"57091"},{"{#OPENPORT}":"55581"},{"{#OPENPORT}":"10050"},{"{#OPENPORT}":"631"},{"{#OPENPORT}":"111"},{"{#OPENPORT}":"25"},{"{#OPENPORT}":"22"},{"{#OPENPORT}":"END"}]}
[root@zbx-target script]# cat port.discovery.bash
#!/bin/bash
printf '{"data":['
for i in `netstat -tnl| grep LISTEN|awk '{print $4}'| awk -F ':' '{print $NF}' | sort -run`
do
printf "{"{#OPENPORT}":"%d"}," $i
done
echo -e '{"{#OPENPORT}":"END"}]}'
[root@zbx-target script]#
这个脚本是用来进行端口发现的,作为基础服务提供给其它监控条目使用
代码语言:javascript复制Note: zabbix用户要有这个脚本的执行权限,因为实际信息收集过程中,是以zabbix这个用户的身份进行的
[root@zbx-target zabbix_agentd.d]# ps faux | grep zabbix | grep -v "grep"
zabbix 26928 0.0 0.0 77336 1136 ? S 17:02 0:00 zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
zabbix 26930 0.0 0.0 77388 2028 ? S 17:02 0:00 _ zabbix_agentd: collector [idle 1 sec]
zabbix 26931 0.0 0.0 77388 1372 ? S 17:02 0:00 _ zabbix_agentd: listener #1 [waiting for connection]
zabbix 26932 0.0 0.0 77388 1368 ? S 17:02 0:00 _ zabbix_agentd: listener #2 [waiting for connection]
zabbix 26933 0.0 0.0 77388 1412 ? S 17:02 0:00 _ zabbix_agentd: listener #3 [waiting for connection]
zabbix 26934 0.0 0.0 77344 1128 ? S 17:02 0:00 _ zabbix_agentd: active checks #1 [idle 1 sec]
[root@zbx-target zabbix_agentd.d]#