2014年的时候,我写了一系列的关于zabbix入门的博文,由于最近要做一个关于zabbix的交流,所以把之前搞过的东西再捡起来重新弄下。后面几篇也继续以14年的编号继续后排。

随着监控主机不断增多,有的时候需要添加一批机器,如果一台台的在web界面上配置,是比较麻烦的。这就可以借助zabbix discovery实现自动发现和增加。zabbix discovery自动发现增加主机,可以实现基于ping、agent、snmp、端口等多种方式实现增加。本篇就介绍下基于ping和基于zabbix agent实现的自动增加主机。

一、zabbix agent的配置

zabbix agent的配置和默认增加是一样的,主要配置如下几项:

1# cat /etc/zabbix/zabbix_agentd.conf |grep -v ^#|grep -v ^$
2PidFile=/var/run/zabbix/zabbix_agentd.pid
3LogFile=/var/log/zabbix/zabbix_agentd.log
4LogFileSize=0
5Server=10.212.52.14,127.0.0.1
6ServerActive=10.212.52.14:10051,127.0.0.1
7Hostname=host1.361way.com
8Include=/etc/zabbix/zabbix_agentd.d/*.conf

二、基于ping实现自动发现

zabbix界面上依次点击Configuration —- discovery —- Create discovery rule:

zabbix-discovery-ping
zabbix-discovery-ping

上图由于是出于测试的目的,这里我设置的扫描周期比较短,如果现网长时间使用的,建议时间设置长一些,比如1h,因为开自启动发现比较消耗server 端的性能。

创建actions:

zabbix-actions
zabbix-actions

创建自动发现类action

discovery-action
discovery-action

action内容如下:

zabbix-add-action
zabbix-add-action

operations是指匹配上主机后,后面要执行的操作,比如增加到对应的组,关联相应的模板等。

zabbix-operation
zabbix-operation

基于ping实现的自动发现,是通过 fping命令进行的操作,具体可以参看zabbix_server.conf配置,其中fping默认使用的位置是/usr/sbin/fping,由于fping命令默认只能让root使用,所以需要给fping命令chmod u+s的权限。

使用ping实现的自动发现会有一个缺点,只要能ping的主机,都会匹配discover和action动作,加入对应的主机,即使该主机上没并有安装zabbix agent。

三、基于zabbix agent实现

这个操作步骤和上面ping实现的基本相同,不同的是,其可以通过验证相应的key信息进行确认,这样会更严密。discovery rule规则如下:

zabbixagent-discovery
zabbixagent-discovery

action内容如下:

zabbix discovery actions
zabbix discovery actions

上面可以看到加的几个条件,确认使用的自发现规则,接收的system.uname字符串中必须包含有Linux的,并且自发现状态是up的。

四、小结

zabbix的discovery规则还有很多,比如其于ftp、ssh、snmp、telnet等,这个可以根据自己的需求灵活处理。不过对于linux或windows主机来说,一般情况下不太建议使用自动发现功能进行批量增加,这个比较影响server端的性能,而是建议使用自动注册。后面会专门再讲述下自动注册功能。