一、开始前的准备
通过Zabbix的自动发现功能,可以自动发现网络中已经在运行Zabbix Agent服务的主机,并根据一定的规则做出相应的动作,比如将自动发现的主机添加到某个主机组、并链接某个模板。
例如,配置Zabbix自动发现192.168.0.161-192.168.0.165网络中的主机,需要:
- 1)发现网络中运行Zabbix Agent服务的主机;
- 2)发现规则每10分钟检测一次;
- 3)从发现时如果主机正常运行时间超过30分钟,将主机添加到“Linux servers”Zabbix主机组;
- 4)为添加的主机链接Zabbix模板“Template OS Linux by Zabbix agent”;
- 5)如果主机停机时间超过30分钟,将主机从“Linux servers”Zabbix主机组中删除。
二、定义发现规则
在Zabbix主页,点击“Configuration” -> “Discovery” -> “Create discovery rule”:
- Name:名称,唯一的规则名称;
- Discovery by proxy:是否通过Zabbix Proxy执行发现规则。不同的Proxy发现的主机被认为是不同的主机;
- IP range:IP范围,支持单个IP(192.168.0.161)、IP段(192.168.0-10.1-254)、子网掩码(192.168.0.1/24)、IP列表(192.168.1.251,192.168.0.1-254);
- Update interval:检测间隔,如30s、1m、2h、1d;
- Checks:检查规则,支持的SSH, LDAP, SMTP, FTP, HTTP, HTTPS, POP, NNTP, IMAP, TCP, Telnet, Zabbix agent, SNMPv1 agent, SNMPv2 agent, SNMPv3 agent, ICMP ping。
- Device uniqueness criteria:设备唯一标识,包含IP地址和发现检查类型,使用SNMP或者Zabbix Agent的Check作为唯一标识;
- Host name:主机名;
- Visible name:显示的名称;
- Enabled:只有勾选复选框,该规则才会启用。
关于Zabbix Agent的“system.uname”键值:
# /usr/local/zabbix-agent/bin/zabbix_get -s server01 -k 'system.uname'
Linux server01 3.10.0-1160.15.2.el7.x86_64 #1 SMP Wed Feb 3 15:06:38 UTC 2021 x86_64
更多参考:Zabbix Agent Items
三、查看发现状态
在Zabbix主页,点击“Monitoring” -> “Discovery”,在“Discovery rule”中选择添加的发现规则“自动发现主机规则”,并应用:
四、定义添加主机动作
在Zabbix主页,点击“Configuration” -> “Actions” -> 选择“Discovery actions” -> “Create action”。
4.1、首先定义执行动作的条件
图中定义了四个条件:
- 1)服务类型是“Zabbix agent”;
- 2)发现检查使用“自动发现主机规则”;
- 3)发现主机的状态是“”Up;
- 4)从发现时主机运行时间超过30分钟。
4.2、再定义符合条件时执行的操作
定义了两个操作:
- 1)将主机添加到“Linux servers”主机组;
- 2)为主机链接模板“Template OS Linux by Zabbix agent”。
五、定义删除主机动作
在Zabbix主页,点击“Configuration” -> “Actions” -> 选择“Discovery actions” -> “Create action”。
5.1、首先定义执行动作的条件
图中定义了三个条件:
- 1)发现主机的状态为“Down”;
- 2)从发现时主机停机时间超过30分钟;
- 3)服务类型是”Zabbix agent“。
5.2、再定义符合条件时执行的操作
参考链接:https://www.zabbix.com/documentation/5.0/zh/manual/discovery/network_discovery/rule