在大规模的环境中,如果无法做到自动化监控,那么手动添加监控不仅仅是一个恐怖的工作,而且也无法保证完整性。可以使用Zabbix被动模式的自动发现,主动的对全网进行扫描,然后自动添加相关的监控服务器和引用监控模板。
1.1Zabbix Server自动发现
1.修改zabbix-agent.conf文件,确认agent运行在被动模式
[root@linux-node2 ~]# grep '^[a-Z]' /etc/zabbix/zabbix_agentd.conf
…
Server=192.168.90.11
…
2.zabbix自动发现是基于事件如图5-1、图5-2
图5-1
图5-2
1.1.1添加Action
网络发现中的事件可以触发Action,从而自动执行指定的操作。如:通知消息、添加主机、加入组、添加模板、执行脚本等
1.创建一个基于自动发现的Action
图5-3
1.1.2添加条件
A:Discovery rule是添加从自动发现规则中发现的主机。
B:Discovery Status是自动发现的主机是up状态。
C:Service Type是指发现主机是否来自于zabbix-agent
满足以上条件就执行Iperations
图5-4
图5-5
1.1.3执行操作
满足条件则执行如下操作:
1.发送消息给Admin用户(慎重使用,会出现不断发送短信)
2.添加到bjstack组
3.添加一个bkstack-template模板
图5-6
1.1.4查看状态
1.Host主机已经成功监控
图5-7
2.查看哪些主机是通过网络发现在(Monitoring→Discovery)如图5-8
图5-8
3.查看邮件
图5-9
1.2Zabbix Agent自动注册
自动注册主要用于Agent主动且自动向Server注册。与Zabbix自动发现具有相同的功能,但是这个功能特别适合一些特定的环境。(实践前,请先关闭之前网络发现规则以及Action)
1.配置Agent为主动模式,如果没有配置Hostname会使用HostnameItem这个key来发现Hostname
[root@linux-node2 ~]# grep "^[a-Z]" /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
EnableRemoteCommands=1
Server=127.0.0.1
ServerActive=192.168.90.11
Hostname=linux-node2.com
Include=/etc/zabbix/zabbix_agentd.d/
2.修改批量模板为主动模式
图5-10
图5-11
图5-12
1.2.1配置过程
依次选择菜单栏Configuration→Actions→Create actions如图5-13
图5-13
1.2.2添加Action
在Action选项中输入Name名称,如图5-14
图5-14
1.2.3添加条件
选择条件即是Host name like Linux,如果没有配置agent.conf里面的Hostname,即默认寻找Host Metadata为Linux因为取的是uanem -a 参数,如图5-15
图5-15
1.2.4执行操作
满足条件则执行如下操作:如图5-16
1.发送消息给Admin用户
2.添加主机
3.添加到bjstack组
4.添加一个bkstack-template模板(主动模式)
图5-16
1.2.5查看状态
符合条件的主机会自动添加到监控项中,如下主机已经呗监控到。如图5-17
图5-17
自动注册完毕,邮件通知相关人员有机器注册如图5-18
图5-18