对zabbix discovery(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


IT 敢客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:对 zabbix discovery(LLD)的理解
喜欢 (6)
[313176056@qq.com]
分享 (0)
IT敢客
关于作者:
“我所做的一切都是为了方便我的生活~~~“
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址