Zabbix考虑到绝对多数运维都是苦逼,一个人面对几十还至上百台服务器,如果要把这些服务器一个一个的添加,那么运维将会死于手抽筋或者脑抽筋。于是Zabbix很贴心的发明了主动添加客户端的功能,这样运维就可以悠哉的喝咖啡看电影办公了。
主动添加客户端的前提是,要监控的服务器要安装zabbix_agent,同时agent的配置文件里把server都设定是zabbix_server的ip地址。不然都白扯。
首先先打开zabbix的discovery界面,如图所示:
可以看到我已经建立了一个规则,而且在这个规则里,ip是分段的,也是用逗号相隔的。现在我们要新的建立一个规则。于是点击Create Discovery Rule,然后出现如下界面,如图填写:
我们这里主要添加的机器是一个内网ip:10.168.193.212。注意分段ip之间要用逗号隔开,一定是英文逗号,请注意细节。而且还要注意,一个ip地址不要重复出现,或者被重复的定义,这样会有隐患,在发现的时候可能会出现问题。
说一下checks,这个东东是针对每一个ip的检查服务,这个服务可以检测ftp,http,https,icmp ping等等等等,这里我选择了Zabbix agent,这个选择是要在检查的时候返回一个值,而这个值就是system.uname,linux的shell里直接输入# uname会返回“Linux”,这样就会以“Linux”来确定。
当选择完Zabbix agent之后,下面的Device uniqueness criteria机会发生变化,这个东西翻译成人语就是“设备唯一标识”,默认是ip,意思是如果扫描到同一个ip就跳过这个设备。这个默认就很好了,不用改。
然后save,web界面移步到Monitoring下的Discovery,看见我们预设计的10.168.193.212已经被Discovery(发现)了。
但是仅仅发现没屁用,我们的重点是要把这些机器自动添加到我们的碗里来,于是需要一个action,于是返回configuration下的cation,在Event source的时候就会发现有Discovery和auto registration,我们需要的是auto registration。于是我们在create action之后就要返回在auto registration里查看我们的action。
action的添加很简单,自己编写一个名字,然后里面自动生成的函数就推荐不要乱动了。在旁边的 conditions里,就把条件具体化一下,比如uptime(发现机器存活时间)大于10分钟,或者reveiced values等于什么什么。这样条件具体化之后,到下一步进行具体的运作。比如发送邮件通知,以及添加到对应的host以及group里。完事之后别忘了add和save,生成的action如图所示:
这样我们可以先去上个厕所,休息一下,稍等一会之后,返回configuration里的host就会看到discovery的机器已经被添加了,名字可能就是ip地址。
但是要注意,server发现agent这个进程很慢很慢,基本四十分钟左右能发现40多台机器的样子,再加上add host,估计要1个半小时才能保证全部搞定,所以要有耐心。
参考资料:http://www.ttlsa.com/zabbix/zabbix-configure-network-discover-rule/
转载于:https://blog.51cto.com/chenx1242/1832978