网络发现是zabbix最具特色的功能之一,它能够根据用户事先定义的规则自动添加监控的主机或服务等

Zabbix的网络发现功能可以基于如下信息进行

    ip地址范围

    可用的服务(ftp,ssh,http,tcp,....)

    zabbix_agent的响应

    snmp_agent的响应

网络发现通常包含两个阶段:discovery和actions

发现事件discovery:

    service:自动发现已有监控主机的服务

    host:发现新的主机

    四类事件:discovered,lost;up,download

zabbix实现网络发现、自动注册、自动监控_第1张图片

可采取的actions:

     remote command:远程命令

     send message:远程消息

     添加/删除主机

     启动/禁用主机

     添加/移除主机到一个group

     链接/取消链接主机到一个模板

     这些事件的配置还可以基于设备的类型、IP、状态、上线/离线等进行配置

网络发现中添加主机时会自动创建interface:

    接口服务自动检测,例如:如果基于SNMP检测成功了,则会自动创建SNMP接口

    如果某个服务同时响应给了agent和SNMP,则两种接口都会创建

    如果同一种发现机制(如agent)返回了非唯一数据,则第一个接口被识别为默认,其他的为额外接口

    即便是某主机开始时只有agent接口,后来又通过SNMP发现了它,同样会为其添加额外的SNMP接口

    不同的主机如果返回了相同的数据,则第一个主机将被添加,余下的主机会被当作第一个主机的额外接口

Agent自动注册:

    zabbix支持active agent的自动注册(auto-resistration)功能,通常用于此前故障的agent重新上线是的场景

    也可基于active agent的自动注册机制来添加被动检测,这会通过active agent注册时提供的“ListenIP”和“ListenPort”进行

    Server端在收到自动注册请求后以接收的IP和Port为接口属性

一次网络发现、Agent自动注册、自动监控的配置过程:

1、创建监控规则

Configuration-->Discovery-->Create discovery rule

IP range:地址范围,注意写法

Checks:这里使用了两种方式

一种是ICMP ping,另外一种是Zabbix agent内建的agent.ping功能,只有两种方式都可以探测的到的时候,规则才会生效

Delay:默认是3600(1个小时),这里为了实验效果,改为了10s。

zabbix实现网络发现、自动注册、自动监控_第2张图片

2、配置发现action,实现自动注册

为了实现实验效果,我们把现有的hosts都删除:

zabbix实现网络发现、自动注册、自动监控_第3张图片

zabbix实现网络发现、自动注册、自动监控_第4张图片

配置action:

Configuration-->Actions-->Create action

注意:Event Source里选择Discovery

zabbix实现网络发现、自动注册、自动监控_第5张图片

配置发现action

(1)在Action里自定义name。邮件的主题和内容,这里设置的是默认

(2)Conditions里,条件选择了两个,分别是我们之前定义的agent.ping和ICMP ping,只有一个满足时执行操作

zabbix实现网络发现、自动注册、自动监控_第6张图片

zabbix实现网络发现、自动注册、自动监控_第7张图片

(3)Operatios里,定义了3个操作

发现主机时,自动发送邮件

添加主机

链接到某一个模板

zabbix实现网络发现、自动注册、自动监控_第8张图片

zabbix实现网络发现、自动注册、自动监控_第9张图片

zabbix实现网络发现、自动注册、自动监控_第10张图片

3、查看验证

在Monitoring里查看发现的状态

zabbix实现网络发现、自动注册、自动监控_第11张图片

查看产生的事件

zabbix实现网络发现、自动注册、自动监控_第12张图片

查看监控的主机,并套用了设置的模板

zabbix实现网络发现、自动注册、自动监控_第13张图片