zabbix 自动发现(LLD)与 prometheus 服务发现 在使用方法上类似。比如 zabbix LLD 根据以 json 格式所提供的源数据作为监控项中的变量。例如对 snmp 协议中的网卡数据进行自动发现,我们在交换机上执行几个snmpwalk:
$ snmpwalk -v 2c -c public 192.168.1.1 IF-MIB::ifDescr
IF-MIB::ifDescr.1 = STRING: WAN
IF-MIB::ifDescr.2 = STRING: LAN1
IF-MIB::ifDescr.3 = STRING: LAN2
$ snmpwalk -v 2c -c public 192.168.1.1 IF-MIB::ifPhysAddress
IF-MIB::ifPhysAddress.1 = STRING: 8:0:27:90:7a:75
IF-MIB::ifPhysAddress.2 = STRING: 8:0:27:90:7a:76
IF-MIB::ifPhysAddress.3 = STRING: 8:0:27:2b:af:9e
我们可以发现 SNMP 中网卡设备提供了 index,我们可以根据网卡的 index 找到网卡的相关信息。比如网卡名称与MAC地址等:
{
"data": [
{
"{#SNMPINDEX}": "1",
"{#IFDESCR}": "WAN",
"{#IFPHYSADDRESS}": "8:0:27:90:7a:75"
},
{
"{#SNMPINDEX}": "2",
"{#IFDESCR}": "LAN1",
"{#IFPHYSADDRESS}": "8:0:27:90:7a:76"
},
{
"{#SNMPINDEX}": "3",
"{#IFDESCR}": "LAN2",
"{#IFPHYSADDRESS}": "8:0:27:2b:af:9e"
}
]
}
这与 prometheus 中的 sd 配置文件基本一致,所以我们可以将 prometheus 服务发现的的 json 数据提供给 zabbix LLD。
同时 Zabbix 4.2 版本中新加入内置支持项 prometheus,zabbix 可以直接采集 exporter 中的指标数据并且支持 PromQL 语言。
网友评论