Discovery翻译成中文就是“发现”,准确的讲应该是 Auto Discovery,也就是“自动发现”,但大家的潜意识里已经将discovery设定成自动发现了。
自动发现在Zabbix中有三种方式:1.网络发现(Network discovery);2.(运行于)主动模式的代理自动注册(active Zabbix agent auto-registration);3.低级别自动发现(Low-level discovery)。
(一)网络发现。Zabbix的网络发现能根据以下信息工作:
1.IP地址范围
2.服务的运行状态(SSH, LDAP, SMTP, FTP, HTTP, HTTPS, POP, NNTP, IMAP, TCP, Telnet, Zabbix agent, SNMPv1 agent, SNMPv2 agent, SNMPv3 agent, ICMP ping.)
3.从Zabbix Agent获取数据
4.从SNMP Agent获取数据
由于监控对象的复杂度(设备类型、设备种类、协议)原因,Zabbix的网络发现尚不能获取网络拓扑。
其中基于服务的运行状态发现的原理是除了SNMP是通过查询SNMP OID外,其余的借助Zabbix的net.tcp.service[]函数实现
(二)主动模式的代理自动注册
此种模式在实际中比较少,但当服务器数量比较多时,此模式就比较好用了。应用此模式的前提是监控对象(通常是服务器主机设备)已正确安装Agent并配置好了主机名(Hostname)和主动服务器地址(ActiveServer),并配置好HostMetadata和HostMetadataItem(两者有其一即可),通常HostMetadata是某一类操作系统名称如Linux或Windows,也可以是某类机器的某个名称,如Cisco或Dell,而HostMetadataItem通常是system.uname等用于标识主机的一个键值名。如果需要多个HostMetadata用于更细腻的标识是哪一类生产商型号的哪一类操作系统,那么可以在一行HostMetadata中用空格隔开多个关键字,比如Linux Cisco UCS Cseries。
通过此方法也可以绑定特定的Action,然后通过Action的Operation添加主机、添加到主机分组和绑定特定的template等。
(三)低级别自动发现
低级别自动发现用于某些特定的模板(template),这些模板通常都是系统中固有的,模板中配置了一些自动发现规则( “Configuration” → “Templates” → “Discovery” ),用于自动添加一些某类主机特有的items。这些items包括文件系统中的分区、网卡接口与数量,CPU个数与核心数量以及SNMP OIDs。
用户自己也可以配置一些自动发现规则,用于代替人工手动添加造成的麻烦,比如自动发现端口监听情况,磁盘IO等。
参考资料:
Zabbix官方2.4版本文档 https://www.zabbix.com/documentation/2.4/manual/discovery/low_level_discovery
Zabbix items类型:https://www.zabbix.com/documentation/2.4/manual/config/items/itemtypes/zabbix_agent
--end--