[comment]: # ({89a08baf-03437da9})
# 5 Descoberta de OIDs SNMP (legado)

[comment]: # ({/89a08baf-03437da9})

[comment]: # ({cf8bf5a8-cf8bf5a8})
#### Visão geral

Nesta seção, iremos realizar uma
[descoberta](/manual/discovery/low_level_discovery) SNMP em um switch.

[comment]: # ({/cf8bf5a8-cf8bf5a8})

[comment]: # ({57e63f05-d8452a6a})
#### Chave do item

Ao contrário da descoberta de sistema de arquivos e de interface de rede, o item não necessariamente precisa ter uma chave "snmp.discovery" - o tipo de item de agent SNMP é suficiente.

Para configurar a regra de descoberta, faça o seguinte:

-   Vá para: *Coleta de dados* → *Templates*
-   Clique em *Discovery* na linha do template apropriado

![](../../../../../assets/en/manual/discovery/low_level_discovery/templates_snmp.png)

-   Clique em *Criar regra de descoberta* no canto superior direito da tela
-   Preencha o formulário da regra de descoberta com os detalhes necessários, conforme a captura de tela abaixo

![](../../../../../assets/en/manual/discovery/low_level_discovery/lld_rule_snmp.png)

Todos os campos obrigatórios são marcados com um asterisco vermelho.

Os OIDs a serem descobertos são definidos no campo SNMP OID no seguinte formato: `discovery[{#MACRO1}, oid1, {#MACRO2}, oid2, …,]`

onde *{\#MACRO1}*, *{\#MACRO2}* … são nomes válidos de macros lld e *oid1*, *oid2*... são OIDs capazes de gerar valores significativos para essas macros. Uma macro interna *{\#SNMPINDEX}* contendo o índice do OID descoberto é aplicada às entidades descobertas. As entidades descobertas são agrupadas pelo valor da macro *{\#SNMPINDEX}*.

Aqui está um exemplo em que alguns snmpwalks são executados no 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 o SNMP OID está definido como:
`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**, e macros {\#SNMPINDEX} definidas como os índices dos OIDs descobertos **1**, **2** e **3**:

``` {.java}
[
    {
        "{#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, a macro correspondente será omitida para essa entidade. Por exemplo, se tivermos os 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 SNMP
`discovery[{#IFDESCR}, ifDescr, {#IFALIAS}, ifAlias]` retornará a seguinte estrutura:

``` {.java}
[
    {
        "{#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"
    }
]
```

[comment]: # ({/57e63f05-d8452a6a})

[comment]: # ({96106d89-cc4d2566})
#### Protótipos de item

A captura de tela a seguir ilustra como podemos usar essas macros em protótipos de item:

![](../../../../../assets/en/manual/discovery/low_level_discovery/item_prototype_snmp.png)

Você pode criar quantos protótipos de item forem necessários:

![](../../../../../assets/en/manual/discovery/low_level_discovery/item_prototypes_snmp.png){width="600"}

[comment]: # ({/96106d89-cc4d2566})

[comment]: # ({da4e62e5-042beac9})
#### Protótipos de trigger

A captura de tela a seguir ilustra como podemos usar essas macros em
protótipos de trigger:

![](../../../../../assets/pt/manual/discovery/low_level_discovery/trigger_prototype_snmp.png){width="600"}

![](../../../../../assets/pt/manual/discovery/low_level_discovery/trigger_prototypes_snmp.png){width="600"}

[comment]: # ({/da4e62e5-042beac9})

[comment]: # ({29d1b142-fbe4f4fa})
#### Protótipos de gráficos

A captura de tela a seguir ilustra como podemos usar essas macros em
protótipos de gráficos:

![](../../../../../assets/en/manual/discovery/low_level_discovery/graph_prototype_snmp.png){width="600"}

![](../../../../../assets/en/manual/discovery/low_level_discovery/graph_prototypes_snmp.png){width="600"}

Um resumo da nossa regra de descoberta:

![](../../../../../assets/en/manual/discovery/low_level_discovery/lld_rules_snmp.png){width="600"}

[comment]: # ({/29d1b142-fbe4f4fa})

[comment]: # ({16927fe4-76c066a2})
#### Entidades descobertas

Quando o server é executado, ele criará itens, triggers e gráficos reais com base nos valores que a regra de descoberta SNMP retorna. Na configuração do host, eles são prefixados com um link laranja para a regra de descoberta de onde vieram.

![](../../../../../assets/pt/manual/discovery/low_level_discovery/discovered_items_snmp.png){width="600"}

![](../../../../../assets/pt/manual/discovery/low_level_discovery/discovered_triggers_snmp.png){width="600"}

![](../../../../../assets/pt/manual/discovery/low_level_discovery/discovered_graphs_snmp.png){width="600"}

[comment]: # ({/16927fe4-76c066a2})
