Zabbix的发现功能用于自动发现主机或者监控数据,包括以下三种发现类型:
- 自动网络发现(Network discovery)
- 主动客户端自动注册(Active agent auto-registration)
- 低级别发现(low-level discovery)
1、自动网络发现
Zabbix提供了非常强有力和灵活的自动网络发现功能。通过自动网络发现,可以加速Zabbix的部署,在不断变化的环境中使用Zabbix而不需要过多的管理。Zabbix可以通过以下几种方式自动发现主机并对发现的主机执行指定的动作:
- 基于IP段的自动发现:指定一个IP段,Zabbix会周期性自动扫描该IP段以发现新增加的主机
- 可用的外部服务:指定一个服务(如FTP、SSH、Web等),Zabbix会根据该服务是否启用以添加新的主机
- 从Zabbix客户端接收到的信息:通过检测是否有新增的Zabbix Agent来添加新的主机
- 从SNMP客户端接收到的信息:通过SNMP协议接收信息以自动添加新的主机
自动网络发现由两个步骤组成:发现和动作。
- 发现:Zabbix根据以上几种方式设置的规则来发现新增加的主机
- 动作:在发现新的主机之后,Zabbix根据设定的操作对该主机执行一些操作,如添加主机到Zabbix Web、为该主机链接一个监控模板等
2、在Zabbix Web中定义发现规则
这里以自动发现主机C也就是192.168.0.110(已安装Zabbix Agent)为例来演示如何配置发现规则。
登录Zabbix Web,通过配置—自动发现进入自动发现规则页面,这里可以看到有一条未启用的自动发现规则。这里新增加一条规则,点击“创建发现规则”按钮,进入创建规则页面:
- 名称:自定义的自动发现规则名称
- 由agent代理程序自动发现:是否通过Zabbix Proxy进行自动发现
- IP范围:定义要发现的IP地址段
- 更新间隔:间隔多少时间扫描一次该IP段
- 检查:定义Zabbix通过什么规则来发现新的主机,点击“新的”链接即可创建一条规则
- 设备唯一性准则:以何种方式来使发现的新主机唯一而不会与其他被发现的主机冲突
这里配置发现主机C也就是192.168.0.110的规则,如下:
扫描的IP段为192.168.0.100-192.168.0.110,间隔10s进行一次,检查的规则是通过向Zabbix Agent发送一个请求让其返回主机名(通过这种方式可以提高发现的精确度),点击“添加”按钮即可创建这条自动发现规则:
3、在Zabbix Web中配置发现后的动作
这里配置在发现主机C后,将其添加到群组Linux Servers并建立对主机C的基础监控。
点击配置—动作,即可进入动作配置页面。在标记为③的红框处下拉选择“自动发现”,点击“创建动作”按钮,即可基于自动发现创建一个动作:
- 名称:自定义的名称
- 新的触发条件:定义触发该动作的条件,标记为①的红框处选择的是条件;标记为②的红框处选择的是条件的符号;标记为③的红框处选择的是条件的值;如果有多个条件,还会出现“计算方式”的选项,以选择是多个条件同时满足时触发还是满足一个条件时触发
点击“操作”切换到以下页面:
- 默认标题和消息内容:定义向管理员发送的消息
- 操作:定义这条动作将要执行哪些操作
配置自动发现主机C后的动作如下:
满足运行Zabbix Agent,被自动发现规则Discovery host C发现,且在线时间>=600s,自动发现的状态为在线这四个条件时执行该动作。动作的操作配置如下:
该动作执行的操作:将发现到的主机添加到Linux servers群组,并为其建立基础监控,启用该主机。点击“添加”即可创建该动作:
4、查看是否发现并添加主机
点击监测中—自动发现,进入以下页面:
从这里可以看到自动发现规则是否已经发现了主机,该主机的在线/断线时间;如果已监测的主机中有数据,说明该主机已经应用了动作,正在被Zabbix Server监控。此时点击配置—主机,即可看到已经添加了一台主机:
这里可以看到,Zabbix已经自动发现了主机C,并将其添加到Zabbix Web中开始进行监控了。