码迷,mamicode.com
首页 > 其他好文 > 详细

对zabbix discovery(LLD)的理解

时间:2015-10-09 15:36:32      阅读:770      评论:0      收藏:0      [点我收藏+]

标签:zabbix   snmp   lld   

对zabbix discovery(LLD)的理解


一、主要用法,请参考官网文档
https://www.zabbix.com/documentation/2.2/manual/discovery/low_level_discovery

理解:
1、server和agent或者snmp固定时间沟通1次获取数据。
2、处理返回值,通常是一个json格式的k/v词典,k/v 映射到macro上,利用macro和prototypes循环增加items,triggers等内容。
3、通常是在一个template上定义好,直接创建一个host套用模版,等待LLD自动发现。
4、zabbix自带了3种macro的定义:
discovery of file systems:          {#FSNAME}, {#FSTYPE}
discovery of network interfaces:    {#IFNAME}
discovery of SNMP OIDs:             {#SNMPINDEX}, {#SNMPVALUE}


二、QA
【Q】:zabbix是如何使用LLD中的SNMP OIDs来获取数据的
A:仔细阅读官网文档可以发现,zabbix针对SNMP已经内部定义了相关MACRO,直接使用即可。
(查看:3.3 Discovery of SNMP OIDs)
LLD在获取snmp的entity时,可以生成2个macros: {#SNMPINDEX} 和 {#SNMPVALUE}
以这个为例:
# snmpwalk -v 2c -c public 10.10.10.109 1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.2  
SNMPv2-SMI::enterprises.674.10892.5.5.1.20.130.4.1.2.1 = STRING: "Physical Disk 0:1:0"
SNMPv2-SMI::enterprises.674.10892.5.5.1.20.130.4.1.2.2 = STRING: "Physical Disk 0:1:1"
SNMPv2-SMI::enterprises.674.10892.5.5.1.20.130.4.1.2.3 = STRING: "Physical Disk 0:1:2"

{#SNMPINDEX}会获取1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.2这串OID中最后一个值;
{#SNMPVALUE}会取得对应的值。
也就是说,
{#SNMPINDEX} -> 1,{#SNMPVALUE} -> "Physical Disk 0:1:0"
{#SNMPINDEX} -> 2,{#SNMPVALUE} -> "Physical Disk 0:1:1"
{#SNMPINDEX} -> 3,{#SNMPVALUE} -> "Physical Disk 0:1:2"

然后我们通过item prototypes来得到获取到的每个值,例如:
KEY: DiskStatus.[{#SNMPINDEX}]
SNMP OID: 1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.24.{#SNMPINDEX}
对应的数据是:
# snmpwalk -v 2c -c public 10.10.10.109 1.3.6.1.4.1.674.10892.5.5.1.20.130.4.1.24.1
SNMPv2-SMI::enterprises.674.10892.5.5.1.20.130.4.1.24.1 = INTEGER: 3


三、应用
1、监控交换机
直接套用模版【Template SNMP Interfaces】即可。
其中,LLD使用了这个OID(IF-MIB::ifDescr)来获取网卡信息,例如:
# snmpwalk -v 2c -c public 10.0.200.1 IF-MIB::ifDescr
IF-MIB::ifDescr.1 = STRING: GigabitEthernet1/0/1
IF-MIB::ifDescr.2 = STRING: GigabitEthernet1/0/2
IF-MIB::ifDescr.3 = STRING: GigabitEthernet1/0/3
IF-MIB::ifDescr.4 = STRING: GigabitEthernet1/0/4
(略)

结合{#SNMPVALUE}来取值,例如:
【Item prototype】中,【Outgoing traffic on interface $1】我们注意到
Key: ifOutOctets[{#SNMPVALUE}]
SNMP OID: IF-MIB::ifOutOctets.{#SNMPINDEX}

对应的是结果是:
# snmpwalk -v 2c -c public 10.0.200.1 ifOutOctets.1
IF-MIB::ifOutOctets.1 = Counter32: 305669896

即:
ifOutOctets[1] = 305669896




2、监控dell的idrac
参考:https://github.com/endersonmaia/zabbix-templates


对zabbix discovery(LLD)的理解

标签:zabbix   snmp   lld   

原文地址:http://nosmoking.blog.51cto.com/3263888/1701073

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!