火冰狐 发表于 2017-12-31 22:05:21

zabbix 自定义监控

  配置自定义监控,我们需要配置监控项的key,和监控项返回的value
  添加自定义监控key的格式,在配置文件中添加
  

UserParameter=KEY_NAME
[*],COMMOND  

  

KEY_NAME: 自定义监控的key的名称,
[*]是参数,*表示所有的,在commond后面可以条用key写的参数,commond $1.  COMMOND: 命令,通过执行命令,返回需要的信息,可以写上shell脚本的路径,条用shell脚本。
  

UserParameter=key
[*],command
参数
描述
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>,<command> 写在里面
  

  例子:
  

  一个key可以写在/usr/local/zabbix3/etc/zabbix_agentd.conf配置文件最后
  

UserParameter=get.os.type,head -l /etc/issue  

https://images2018.cnblogs.com/blog/796973/201711/796973-20171127121545237-565444303.png
  配置好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  

  在看看下面的例子:
https://images2018.cnblogs.com/blog/796973/201711/796973-20171127122019628-1855136261.png
https://images2018.cnblogs.com/blog/796973/201711/796973-20171127122029300-116356631.png
https://images2018.cnblogs.com/blog/796973/201711/796973-20171127122055503-2117054276.png
  ##以逗号,分割$1或$2
  如果你的 UserParameter 包含\ ' ” ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @这些字符,则需要开启下面这个参数
  zabbix_anget.conf配置文件 UnsafeUserParameters=1
  传递参数:
  

UserParameter=wc
[*],grep -c "$2" $1  

  这里表示把$2,$1 的传递给 key,测试如下
  

zabbix_get -s 127.0.0.1 -k wc  

  注意,这里的/etc/passwd 为$1,root 为$2,则 key 最终运行的命令为 grep -c root /etc/passwd
  根据上面的例子,我们知道怎么配置一个自定义监控key,和获取返回的内容,现在我们在zabbix的web也没添加item,配置自定义监控和配置图形,告警等配置。
  写一个自定义监控,这里我们监控服务器的各个连接状态的数量
  

# pwd  
/usr/local/zabbix/etc/zabbix_agentd.conf.d
  
# cat get_net_status_num.conf
  
UserParameter=net_status_num
[*], /usr/local/zabbix/etc/zabbix_agentd.conf.d/scripts/net_conne_status_num.sh $1
  
#
  

  查看脚本内容:
  

# cat /usr/local/zabbix/etc/zabbix_agentd.conf.d/scripts/net_conne_status_num.sh  
#
!/bin/bash  

  

  

if [ ${1} = "ESTAB" ]  

then  ss
-ta|grep -v "State"|awk '{++S[$1]} END {for (a in S) print a,S}'|awk '/ESTAB/ {print $2}'  
elif [ ${1} = "LISTEN" ]
  
then
  ss -ta|grep -v "State"|awk '{++S[$1]} END {for (a in S) print a,S}'|awk '/LISTEN/ {print $2}'
  
elif [ ${1} = "TIME-WAIT" ]
  
then
  ss -ta|grep -v "State"|awk '{++S[$1]} END {for (a in S) print a,S}'|awk '/TIME-WAIT/ {print $2}'
  
elif [ ${1} = "CLOSE-WAIT" ]
  
then
  ss -ta|grep -v "State"|awk '{++S[$1]} END {for (a in S) print a,S}'|awk '/CLOSE-WAIT/ {print $2}'
  
fi
  

  
#
  

  监控的是 ESTAB,LISTEN,TIME-WAIT,CLOSE-WAIT几个状态的数量,脚本是根据对应脚本的参数来返回对应的状态的数量。
  zabbix的web端配置:
  我把这个监控项添加到linux的模板中,
https://images2018.cnblogs.com/blog/796973/201711/796973-20171127142026972-234914894.png
  添加estab的监控:
https://images2018.cnblogs.com/blog/796973/201711/796973-20171127142451237-1701090615.png
  配置完成后点击后面的add保存。
  time-wait的添加配置
https://images2018.cnblogs.com/blog/796973/201711/796973-20171127142854019-1070195096.png
  其他几个状态也是一样的配置添加,主要是参数不一样
  监控的item配置配好了,接下来配置告警触发器:
https://images2018.cnblogs.com/blog/796973/201711/796973-20171127143219862-1079825895.png
  添加触发器 triggers
https://images2018.cnblogs.com/blog/796973/201711/796973-20171127143601940-2119705586.png
  点击add,添加 监控的item和触发器表达式
https://images2018.cnblogs.com/blog/796973/201711/796973-20171127144946175-852209321.png
https://images2018.cnblogs.com/blog/796973/201711/796973-20171127145233565-23737145.png
  然后一个trigger配置就完成了,另外一样的配置,
  配置图形
https://images2018.cnblogs.com/blog/796973/201711/796973-20171127145412878-689691805.png
  添加配置图形
https://images2018.cnblogs.com/blog/796973/201711/796973-20171127145533675-1896434129.png
https://images2018.cnblogs.com/blog/796973/201711/796973-20171127145652581-894751252.png
页: [1]
查看完整版本: zabbix 自定义监控