配置自定义监控,我们需要配置监控项的key,和监控项返回的value
添加自定义监控key的格式,在配置文件中添加
UserParameter=KEY_NAME[*],COMMOND
KEY_NAME: 自定义监控的key的名称,[*]是参数,*表示所有的,在commond后面可以条用key写的参数,commond $1.
COMMOND: 命令,通过执行命令,返回需要的信息,可以写上shell脚本的路径,条用shell脚本。
参数 | 描述 |
key | 唯一,[*]表示里面可以传递多个参数, |
command | 需要执行的脚步、命令。key的[*]参数会一一对应到这命令的$1至$9,$0表示脚本命令 |
为了方便管理,把key值文件统一放在一个目录,打开配置文件zabbix_agentd.conf下面配置的注释
#include=/usr/local/zabbix3/etc/zabbix_agentd.conf.d/*.conf
这样可以在/usr/local/zabbix3/etc/zabbix_agentd.conf.d/目录下面创建以.conf结尾的文件,把UserParameter=
例子:
一个key可以写在/usr/local/zabbix3/etc/zabbix_agentd.conf配置文件最后
UserParameter=get.os.type,head -l /etc/issue
配置好key后需要重启zabbix_agentd。重启完成再测试是否可以根据自定义key获取相应的值。
root@webTestServer01:~# /usr/local/zabbix3/bin/zabbix_get -s 127.0.0.1 -k get.so.type
Ubuntu 14.04.2 LTS \n \l
在看看下面的例子:
##以逗号,分割$1或$2
如果你的 UserParameter 包含\ &#39; ” &#96; * ? [ ] { } ~ $ ! & ; ( ) <> | # &#64;这些字符&#xff0c;则需要开启下面这个参数
zabbix_anget.conf配置文件 UnsafeUserParameters&#61;1
传递参数&#xff1a;
UserParameter&#61;wc[*],grep -c "$2" $1
这里表示把$2,$1 的传递给 key&#xff0c;测试如下
zabbix_get -s 127.0.0.1 -k wc[/etc/passwd,root]
注意&#xff0c;这里的/etc/passwd 为$1,root 为$2,则 key 最终运行的命令为 grep -c root /etc/passwd
根据上面的例子&#xff0c;我们知道怎么配置一个自定义监控key&#xff0c;和获取返回的内容&#xff0c;现在我们在zabbix的web也没添加item&#xff0c;配置自定义监控和配置图形&#xff0c;告警等配置。
写一个自定义监控&#xff0c;这里我们监控服务器的各个连接状态的数量
[root&#64;cong-33 zabbix_agentd.conf.d]# pwd
/usr/local/zabbix/etc/zabbix_agentd.conf.d
[root&#64;cong-33 zabbix_agentd.conf.d]# cat get_net_status_num.conf
UserParameter&#61;net_status_num[*], /usr/local/zabbix/etc/zabbix_agentd.conf.d/scripts/net_conne_status_num.sh $1
[root&#64;cong-33 zabbix_agentd.conf.d]#
查看脚本内容&#xff1a;
[root&#64;cong-33 zabbix_agentd.conf.d]# cat /usr/local/zabbix/etc/zabbix_agentd.conf.d/scripts/net_conne_status_num.sh
#!/bin/bashif [ ${1} &#61; "ESTAB" ]
thenss -ta|grep -v "State"|awk &#39;{&#43;&#43;S[$1]} END {for (a in S) print a,S[a]}&#39;|awk &#39;/ESTAB/ {print $2}&#39;
elif [ ${1} &#61; "LISTEN" ]
thenss -ta|grep -v "State"|awk &#39;{&#43;&#43;S[$1]} END {for (a in S) print a,S[a]}&#39;|awk &#39;/LISTEN/ {print $2}&#39;
elif [ ${1} &#61; "TIME-WAIT" ]
thenss -ta|grep -v "State"|awk &#39;{&#43;&#43;S[$1]} END {for (a in S) print a,S[a]}&#39;|awk &#39;/TIME-WAIT/ {print $2}&#39;
elif [ ${1} &#61; "CLOSE-WAIT" ]
thenss -ta|grep -v "State"|awk &#39;{&#43;&#43;S[$1]} END {for (a in S) print a,S[a]}&#39;|awk &#39;/CLOSE-WAIT/ {print $2}&#39;
fi[root&#64;cong-33 zabbix_agentd.conf.d]#
监控的是 ESTAB&#xff0c;LISTEN&#xff0c;TIME-WAIT&#xff0c;CLOSE-WAIT几个状态的数量&#xff0c;脚本是根据对应脚本的参数来返回对应的状态的数量。
zabbix的web端配置&#xff1a;
我把这个监控项添加到linux的模板中&#xff0c;
添加estab的监控&#xff1a;
配置完成后点击后面的add保存。
time-wait的添加配置
其他几个状态也是一样的配置添加&#xff0c;主要是参数不一样
监控的item配置配好了&#xff0c;接下来配置告警触发器&#xff1a;
添加触发器 triggers
点击add,添加 监控的item和触发器表达式
然后一个trigger配置就完成了&#xff0c;另外一样的配置&#xff0c;
配置图形
添加配置图形