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等。
参考资料:
--end--