一、概述
Zabbix可以实现通过扫描IP地址来发现监控节点,只要节点满足发现条件即可,比如安装了agent或开放了snmp端口等,本实验主要是通过配置Zabbix的Discovery(自动发现)功能来实现自动扫描网络节点,并根据节点操作系统类型自动关联模板添加到监控项中,从而实现自动化监控。
二、准备模板
可以根据之前的方法自己定义模板,也可以直接用系统自带的模板,我这里分别定义了“OS linux”、“OS windows”、“Network Device”模板用来将linux,windows和交换机分别进行关联。之前简单说过了linux的模板建立,windows和linux差不多,这里要特别说明一下网络设备模板的配置,这个和其他两个稍有不同。
1.克隆模板,(如果你的网络设备有不同的“SNMP COMMUNITY字符串”最好克隆现有的模板)
进入Configure>Templates,交换机属于SNMP设备,无法安装zabbix agent,因此在模板列表中需要选择“Templates SNMP Device”,这个模板包含了两个子模板“templates snmp generic和templates snmpinterfaces”,分别是针对交换机系统信息和接口信息监控的,一并都克隆过来。主模板命名为Network Device,另外两个子模板取名”Network SNMP Generic“和”Network SNMP Interfaces”。
2.修改“SNMP COMMUNITY“字符串变量
要想读取网络设备的信息,zabbix必须要知道网络设备的snmp community串和具有访问权限,交换机上具体怎么配置就不说了,搞网络的都知道。在zabbix中snmp字符串是通过全局变量来指定的。
进入全局变量定义位置,Administration>General>Marcros,将里面的value值改成自己的snmp字符串,然后“Update”即可,当然还可以Add自己定义其他变量,全局有效.
在模板“Network SNMP interfaces>Items>Number of network interfaces”下会看到模板引用变量的地方。
三、配置Discovery
进入“Configuration>Discovery>Create discovery rule”,新建一个发现规则,这个规则主要是扫描指定的IP段,发现安装了Zabbix agent的服务器,通过通过某个值来判断服务器是否可用。
IP range:可以填写连续的ip段,也可以非连续,如“192.168.1.2,192.168.1.3-5”,用逗号隔开。
Delay:扫描的间隔时间,默认是3600s
Checks:
Check type :选择扫描服务器的方式,一般常用的就是zabbix agent和snmp v2,
Port range:zabbix agent的监听端口,默认不用改。
key:指定扫描服务器的哪些项,我们这里指定system.uname,即服务器的架构信息,只要能正确获得该值,就证明在线。
如果是SNMP设备,那么就要填写SNMP字符串和扫描项,比如sysName.0代表扫描设备主机名,这个项可以通过snmpwalk从网络设备获取,这里不表。
这样添加之后Discovery的配置就完成了。
四、Action添加机器到监控
通过上面的步骤,只是扫描出来设备,并不会添加到我们的监控列表中,因此还需要通过Action这个手段将扫描的机器加入其中。
选择“Configuration>Actions>Discovery>Create action”,添加一个action,用来判断扫描出的机器操作系统类型,并且自动匹配指定模板。
Action页面:只需要写一个名字即可,其他可以不用更改。
Conditions:定义条件,比如找出系统是linux的、扫描状态是ok的、启动了时间超过600s且 安装了zabbix agent的机器
operations:将签名根据条件筛选出来的机器添加到相应的linux模板里面,然后添加完成。
Windows和网络设备的添加方法一样,只不过在conditions里面更改相应的条件值,如下图,这里不再赘述。
这样就完成了扫描节点并根据操作系统来匹配模板。
五、自动移除
当一个机器下线移走,可以通过Action来自动将其从监控列表中移除。也是在“Configuration>Actions>Discovery>Create action”中定义,只是修改一下conditions和operations既可
这里写是怎样简单进行一个扫描和自动发现,其实这部分内容也很多。篇幅有限不能赘述,可以通过官方文档了解更多的内容。
原文地址:http://h11345.blog.51cto.com/780987/1606794