Zabbix自动发现与自动注册.
一, 自动发现与自动注册
自动发现? 当场景中出现要添加很多台主机的时候,一台台添加难免太过于繁琐,zabbix提供自动注册,自动发现,可以实现主机的批量添加,
zabbix的发现包括三种类型:
# 自动网络发现 (Network discovery) # 主动客户端自动注册,(Active agent auto-registration) # 低级别发现(low-level discovery)
1.1 zabbix自动网络发现
zabbix 提供非常有力和灵活的自动网络发现功能,通过网络发现,可以实现加速zabbix部署,简化管理,在不断变化的环境中使用zabbix而不需要过多的管理
zabbix 网络发现机遇以下信息:
IP段自动发现 可用的外部服务(FTP,SSH,WEB,POP3,IMAP,TCP等) 从zabbix客户端接收到的信息 从SNMP客户端接收到的信息
(1) 自动发现的原理
网络发现由两个步骤组成: 发现和动作(action)
zabbix周期性地扫描在网络发现规则中定义的IP段,根据每一个规则配置自身的检查频率,每一个规则都定义了一个对指定IP段的服务检查集合.
动作是对发现的主机进程相关的设置过程, 常用的动作有添加,或删除主机,启用或停用主机,添加主机到某一个组中,发现通知等等.
(2) 配置网络发现规则
配置 --->> 自动发现 --->> 创建自动发现
创建动作
配置 --->> 动作 -->> 创建自动发现动作
1.2 主动客户端自动注册
自动注册(agent auto-registration)功能主要用于Agent主动且自动向Server注册。与前面的Network discovery具有同样的功能,但是这个功能更适用于特定的环境,当存在一个条件未知(如agent端的IP地址段、agent端的操作系统版本等信息)时,Agent去请求Server仍然可以实现主机自动添加到zabbix web中的功能。比如云环境下的监控,云环境中,IP分配就是随机的,这个功能就可以很好的解决类似的问题
在客户端配置文件中设置参数, 在zabbix web中配置一个动作
1) 修改客户端配置文件
# 打开客户端配置文件zabbix_agentd.conf,修改如下配置: Server=192.168.10.10 ServerActive=192.168.10.10 #这里是主动模式下zabbix服务器的地址 Hostname=test HostMetadata=linux zabbix.98stack #这里设置了两个元数据,一个是告诉自己是linux服务器,另一个就是写一个通用的带有公司标识的字符串。
自动注册请求发生在每次客户端发送一个刷新主动检查请求到服务器时,请求的延时在客户端中配置文件zabbix_agentd.conf的RefreshActiveChecks 参数中指定,第一次请求将在客户端重启之后立即发送
2) 配置网络自动注册规则
配置 --->> 动作 -->> 创建自动注册动作
1.3 低级别发现 Low-level discovery
在对主机的监控中,可能出现这样的情况,例如对某主机网卡eth0进行监控,可以指定需要监控的网卡是eth0,而将网卡作为一个通用监控项时,根据主机操作系统的不同,网卡的名称也不完全相同,有些操作系统的网卡名称是eth开头的,而有些网卡名称是em开头的,还有些网卡是enps0开头的,遇到这种情况,如果分别针对不同的网卡名设置不同的监控项,那就太繁琐了,此时使用zabbix的低级发现功能就可以解决这个问题。
在 Zabbix中, 支持三种现成的类型的数据项发现,分别是:
文件系统发现 网络接口发现 SNMP OID发现 CPU核和状态
zabbix 自带的 LLD key:
vfs.fs.discovery #适用于zabbix agent监控方式 snmp.discovery #SNMP agent监控方式 net.if.discovery #适用于zabbix agent监控方式 system.cpu.discovery #适用于zabbix agent监控方式
可以用 zabbix-get 来查看key获取的数据,对于snmp,不能通过zabbix-get 来验证,只能在 web 页面中进行配置使用.
例子:
]#/usr/local/zabbix/bin/zabbix_get -s 172.16.213.232 -k net.if.discovery {"data":[{"{#IFNAME}":"eth0"},{"{#IFNAME}":"lo"},{"{#IFNAME}":"virbr0-nic"},{"{#IFNAME}":"virbr0"}]}
作者:闫世成
出处:http://cnblogs.com/yanshicheng