Zabbix SNMP LLD实践(自动发现)

Zabbix SNMP LLD实践(自动发现),第1张

在使用Zabbix监控网络设备的时候,经常会遇到这样的工作场景:

需要监控一个某个OID下的所有的对象,如下图监控华三交换机的电源模块的状态。 要监控的OID都有拥有同一个父OID,只是最后一位的数字不同。

这时候我们最好使用LLD功能,让Zabbix自动创建监控的item。

下面我们就说说怎么用LLD来做这个事儿。

目的:通过LLD能够自动创建item,避免繁琐对手动一个一个创建item。同时带来的一个好处是,即使被监控对对象发生变化(比如上图对4个子OID某一天变成了10个),ZBX也能够自动匹配出变化后对数据。

第一步,在Zabbix中创建LLD规则

各个字段解释:

名称:就是这个LLD规则的名字,无需多说

类型:根据SNMP版本进行选择,我用的V2

键值:因为zabbix要求每一个监控项都要有唯一对key,所以我们此处填写一个,有意义即可。注意:这个值和我们最终想要自动创建对对item不是一回事,所以不需要太注意,自己看懂就行。

主机接口:一般是默认的,设备对IP和接口信息。

SNMP community: 团体名

SNMP OID:最重要的其实就是这个字段

Zabbix在系统内部已经内置了一个自动发现函数discovery,这个函数有两个 参数,参数一是{#SNMPVALUE},通过在轮训参数二这个 OID之后获得的数据,参数二是OID(父级 别OID)。

按照图片进行配置之后,实现了一个什么效果呢?

Zabbix会通过调用discovery函数,轮训参数二的OID(理解为用命令snmpwalk 参数二OID就可以),将获取到的结果,赋值给{#SNMPVALUE}。

所以这个步骤配置完成之后,{#SNMPVALUE}的结果就类似于一个数组,里面存有所有子OID和对应数据。

现在我们已经通过步骤一拿到了类似于snmpwalk的结果并赋值给了{#SNMPVALUE}。那怎么把这个结果进行处理,让系统获得子OID命名对item,这就进入到item原型配置界面了。如下:

在咱们创建对LLD规则中新建 “监控项原型”。这是就会有人问,啥叫监控项原型?我语文不好,给解释下呗。好,你可以这样理解,我们不是通过LLD自动创建item吗,那item按照什么格式创建啊?比如,创建出来对item名称是啥, key又是啥 , item分组分到哪里???这些信息就叫做,监控项原型。

各个字段说明:

名称:就是LLD要创建对item的name

类型:根据版本选择,不多说了

键值:就是创建对item对key咋定义的

SNMP OID:这个oid和上个图片中的oid有啥区别?

这样理解,步骤一需要填写的是父OID,因为在上图中我们需要根据规则轮训父oid的所有数据,得到了所有子oid和对应对值。

而在这个界面我们需要定义 “父oid. index” 这样一个东西,{#SNMPINDEX}是zabbix内置变量,就是咱们snmpwalk 父oid之后结果的最后一位。

所以到这里就知道了,“父oid. index” 其实就是咱们定义的子OID的表达式

稍等片刻,最后得到如下的效果:

所以总结一下就是,通过步骤一获得所有父节点下的数据(所以步骤一填写父节点OID),通过步骤二定义item原型,对步骤一拿到对数据进行切分处理。(所以步骤二是子节点对OID),这里稍微注意一下Zabbix对内置函数和变量(disvovery,{#SNMPVALUE},{#SNMPINDEX})就可以轻松理解使用LLD这个功能了。

大多数设备都支持snmp,例如路由器、交换机、打印机等等,我想以后的智能家居也会有snmp支持,使用zabbix监控家里的电视机、冰箱、洗衣机、电饭煲,很有趣。如果不知道监控项目的oid,那么看文章末尾的参考地址。那么如何自定义SNMP OID来监控服务器呢?下一节最最后来谈谈zabbix的snmp监控:snmp+shell+zabbix。

笔者之前一直用zabbix监控服务器的各项状态,最近老板交待一项新工作,监控类似交换机、路由器之类的网络设备的接口流量。老板的要求就是职工的需求,立即开始监控准备工作。为了统一管理,决定还是使用zabbix来监控网络设备,但网络设备和服务器的监控方法有所不同。下面请大家跟着笔者一起一步一步来完成我们的小目标吧。

监控的目标是类似交换机这样的设备,所以不能使用zabbix提供的客户端来获取目标设备的数据。另一种解决方案是使用SNMP(简单网络管理协议),它是TCP/IP协议族中的其中一个协议,其主要作用就是监控设备的各项指数并进行反馈。现在的可配置式网络设备基本都支持该协议,同时zabbix自身对SNMP的支持也是相当强悍。

本文以华为交换机为例,其它品牌的交换机或路由器实现思路都是一致的,只是使用的命令有所不同。具体实现方式如下:

交换机的配置就这么几步就可以了,接下来我们配置zabbix。

配置全部在zabbix前端进行,我们对关键配置进行说明

SNMP community:在交换机上配置的团体名

端口:从交换机上获取SNMP信息的端口,默认为161,本例中为10050

其它采用默认设置即可,每30秒获取一次交换机信息

获取了监控目标的端口信息,接下来需要设置具体监控项,本例中需要监控目标端口的入流量和出流量。

点击“监控项原型”。

再点击“创建监控项原型”进入配置界面

键值:ifInOctets[{#IFDESCR}],唯一值,这里就是名称变量出处

SNMP OID:获取每一个端口的入流量,SNMPINDEX是每个端口的索引号

储存值:一定要选择差量(简单变化),意思是每次从交换机获取的流量都是真实的流量,这和监控服务器网卡数据不一样。

其它采用默认设置即可。

接下来设置出流量监控原型

到这里,我们对交换机入流量和出流量的监控工作已经完成了。zabbix是一款非常强大的运维工作,它的自定义监控项以及自定义触发报警机制能够帮助运维人员快速而主动的发现问题。作为一个运维人员,我们应该掌握zabbix的使用方法。如果大家在配置过程中有什么疑问,欢迎留言,我们一起探讨交流。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11617713.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存