Nesta seção vamos realizar um SNMP discovery em um switch.
Ao contrário da descoberta de sistema de arquivos e interface de rede, o item não não necessariamente tem que ter uma chave "snmp.discovery" - tipo de item de SNMP agente é suficiente.
A descoberta de OIDs SNMP é suportada desde o servidor/proxy Zabbix 2.0.
Para configurar a regra de descoberta, faça o seguinte:
Todos os campos de entrada obrigatórios estão marcados com um asterisco vermelho.
Os OIDs a serem descobertos são definidos no campo SNMP OID nas seguintes formato: discovery[{#MACRO1}, oid1, {#MACRO2}, oid2, …,]
onde {#MACRO1}, {#MACRO2} … são nomes válidos de macro lld e oid1, oid2... são OIDs capazes de gerar valores significativos para esses macros. Uma macro interna {#SNMPINDEX} contendo o índice do OID descoberto é aplicado a entidades descobertas. O descoberto as entidades são agrupadas pelo valor da macro {#SNMPINDEX}.
Para entender o que queremos dizer, vamos realizar alguns snmpwalks em nosso switch:
$ 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
E defina SNMP OID para: discovery[{#IFDESCR}, ifDescr, {#IFPHYSADDRESS}, ifPhysAddress]
Agora esta regra descobrirá entidades com macros {#IFDESCR} definidas como WAN, LAN1 e LAN2, macros {#IFPHYSADDRESS} definidas como 8:0:27:90:7a:75, 8:0:27:90:7a:76 e 8:0:27:2b:af:9e, macros {#SNMPINDEX} definidas para os índices de OIDs descobertos 1, 2 e 3:
[
{
"{#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"
}
]
Se uma entidade não tiver o OID especificado, então o macro será omitida para esta entidade. Por exemplo, se tivermos o seguintes dados:
ifDescr.1 "Interface #1"
ifDescr.2 "Interface #2"
ifDescr.4 "Interface #4"
ifAlias.1 "eth0"
ifAlias.2 "eth1"
ifAlias.3 "eth2"
ifAlias.5 "eth4"
Então, neste caso, a descoberta de SNMP discovery[{#IFDESCR}, ifDescr, {#IFALIAS}, ifAlias]
retornará o seguinte estrutura:
[
{
"{#SNMPINDEX}": 1,
"{#IFDESCR}": "Interface #1",
"{#IFALIAS}": "eth0"
},
{
"{#SNMPINDEX}": 2,
"{#IFDESCR}": "Interface #2",
"{#IFALIAS}": "eth1"
},
{
"{#SNMPINDEX}": 3,
"{#IFALIAS}": "eth2"
},
{
"{#SNMPINDEX}": 4,
"{#IFDESCR}": "Interface #4"
},
{
"{#SNMPINDEX}": 5,
"{#IFALIAS}": "eth4"
}
]
A captura de tela a seguir ilustra como podemos usar essas macros no item protótipos:
Novamente, criando quantos protótipos de itens forem necessários:
A captura de tela a seguir ilustra como podemos usar essas macros em protótipos de gatilho:
A captura de tela a seguir ilustra como podemos usar essas macros em protótipos de gráficos:
Um resumo da nossa regra de descoberta:
Quando o servidor for executado, ele criará itens reais, gatilhos e gráficos baseados nos valores que a regra de descoberta SNMP retorna. Na configuração do host eles são prefixados com um link laranja para uma regra de descoberta eles vêm a partir de.