zabbix自动发现和自动注册
熟练通过Zabbix监控平台监控单台客户端之后,企业中有成千上万台服务器,如果手工添加会非常耗时间,造成大量的人力成本的浪费,有没有什么好的自动化添加客户端的方法呢?
Zabbix自动发现就是为了解决批量监控而设计的功能之一,什么是自动发现呢,简单来说就是Zabbix Server端可以基于设定的规则,自动批量的去发现局域网若干服务器,并自动把服务器添加至Zabbix监控平台,省去人工手动频繁的添加,节省大量的人力成本。(自动发现规则由服务端主动发起,Zabbix Server开启发现进程,定时扫描局域网中IP服务器、设备,实现自动刚发现主机、自动将主机添加到主机组、自动加载模板、自动创建项目(item)、自动创建图像等功能。)
自动发现的原理
网络发现由两个步骤组成: 发现和动作(action)
zabbix周期性地扫描在网络发现规则中定义的IP段,根据每一个规则配置自身的检查频率,每一个规则都定义了一个对指定IP段的服务检查集合.
动作是对发现的主机进程相关的设置过程, 常用的动作有添加,或删除主机,启用或停用主机,添加主机到某一个组中,发现通知等等.
自动发现discover进程
说明:用于设置自动发现主机的线程数量,若单台代理所管理机器超过500台,可以考虑加大此数值(仅适用于直接AGENT场景)
# StartDiscoverers=1
### Option: StartHTTPPollers
# Number of pre-forked instances of HTTP pollers.
#
# Mandatory: no
# Range: 0-1000
# Default:
[root@localhost ~]# systemctl restart zabbix-server --如果发现没有探测到主机就要看看有没有探测进程
[root@localhost ~]# ps -ef | grep discove --重启zabbix-server服务之后查看是否存在discover进程,可以看到默认情况下只开启一个探测进程
zabbixs+ 21298 21287 0 20:16 ? 00:00:00 /usr/sbin/zabbix_server: discoverer #1 [processed 1 rules in 0.563187 sec, idle 60 sec]
[root@localhost ~]# vim /etc/zabbix_server.conf --默认情况下发现进程只有一个,如果需要发现的主机可以将参数调大,使用多个进程去发现主机,这样探测速度快
StartDiscoverers=2
[root@localhost ~]# ps -ef | grep discoverer
zabbixs+ 21442 21431 0 20:21 ? 00:00:00 /usr/sbin/zabbix_server: discoverer #1 [processed 0 rules in 0.000338 sec, idle 43 sec]
zabbixs+ 21443 21431 0 20:21 ? 00:00:00 /usr/sbin/zabbix_server: discoverer #2 [processed 0 rules in 0.000497 sec, idle 60 sec]
自动发现
Zabbix最大的特点之一就是可以批量自动主机并监控,利用发现(Discovery)模块,实现自动发现主机、自动将主机添加到主机组、自动加载模板、自动创建项目(Items)、自动创建监控图像,操作步骤如下:Configuration----->discovery------->Create discovery rule
创建发现的规则:
填写server端所扫描的主机ip地址所在范围,例如服务器所在的范围为192.168.179.99-104
修改适合的时间延迟(延迟太短如果主机太多会导致有的主机扫描不到,这里为60S)
Name: 规则名称;
Discovery by proxy : 通过代理探索;
IP range : zabbix_server 探索区域的IP范围;
Delay : 搜索一次的时间间隔;
Checks : 检测方式,如用ping方式去发现主机,zabbix_server需安装fping,此处使用SSH方式发现;
Device uniqueness criteria: 以IP地址作为被发现主机的标识。
探测到了会如下显示:(可以看到有些主机是没有被探测到的,如101,102,SSH不通)
创建发现的动作
Zabbix发现规则创建完毕,客户端Agent安装完后,被发现的IP主机不会自动添加至Zabbix监控列表,需要添加发现动作,添加方法如下:Configuration --> Actions --> Event source(选择Discovery) --> Create action
操作:添加相应的操作,如加模板,加主机等
查看结果
configuration-->hosts-->配置你的zabbix客户端即按照zabbix agent
192.168.179.100上面安装zabbix agent
[root@localhost ~]# yum install zabbix40-agent -y --被监控的主机安装上agent
[root@localhost ~]# rpm -qc zabbix40-agent
/etc/zabbix/zabbix_agentd.conf
Server=192.168.179.103 --要将数据给到103
#ServerActive=127.0.0.1
Hostname=192.168.179.100 --主机ip
[root@localhost ~]# systemctl start zabbix-agent
[root@localhost ~]# netstat -tpln | grep 100
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 15386/zabbix_agentd
tcp6 0 0 :::10050 :::* LISTEN 15386/zabbix_agentd
再来查看可以看到192.168.179.99成功添加进监控项