zabbix自动发现和注册
当网络中存在很多设备需要我们去监控的时候,一台一台地添加很累,所以,我们可以利用server端的某些规则,让它自己去发现局域网中存在的设备,自动地去把它们添加进监控平台里面。zabbix中有个叫Discovery模块,来实现这个需求。
其中:
- Name:规则的名字
- Discovery by proxy:通过代理搜索(不同的代理发现的之际被认为是不同的主机)
- IP range:zabbix_server搜索的范围
- Delay:搜索一次的时间间隔
- Checks:检测方式,如ping或者fping
- Device uniqueness criteria:以IP地址作为被发现主机的标识
- Update interval:多久检测一次
zabbix网络发现可基于以下信息:
- IP范围
- 某些外部服务(FTP、SSH、WEB、IMAP、POP3)
- 来自zabbix客户端的信息(仅支持未加密模式)
- 来自SNMP客户端的信息
一条发现规则始终由一个发现进程处理,IP范围不会在多个发现进程之间分割。并且发现检测与其他检测独立处理。如果一些检测没有找到服务,那么其他的检测仍会处理。
Action
当我们服务器发现IP主机后,并不会自动添加到监控列表,添加这个动作是在被发现后所触发的一个Action。所有的Action都是基于发现这个事件。
比如说我们发现以后可以做到:
- 发送通知
- 添加/删除主机
- 启用/禁用主机
- 添加主机到组
- 从组中删除主机
- 将主机链接到/取消链接模板
- 执行远程脚本命令
比如我们先配置一条发现规则,或者修改默认的规则:
然后创建一个Action:
或者是编辑默认的规则:
此时如果发生以下情况,动作将被激活:
- “Zabbix agent”服务是“up”
- system.uname(规则中定义的Zabbix agent键值)包含“Linux”
- IP地址位于192.168.248.4-254之间
该动作会执行这样的操作:
- 添加主机
- 将发现的主机添加到“Linux servers”组
- 链接主机到“Template OS Linux”模板。Zabbix将自动开始使用“Template OS Linux”模板中的项目和触发器来监控主机
此时我们通过Monitoring下的Discovery来查看通过发现规则找到的主机
这里,由于192.168.248.1是我windows,而我们前面所修改的action是针对Linux(我们上面是添加linux的模块),所以我们在创建一个新的action来针对windows。
其他设置看官方文档