Monitorando equipamentos de rede pelo SNMPv3 no Zabbix

Este artigo discute os recursos do monitoramento de equipamentos de rede usando o protocolo SNMPv3. Falaremos sobre o SNMPv3, compartilharemos minha experiência na criação de modelos completos no Zabbix e mostraremos o que você pode obter ao organizar alertas distribuídos em uma grande rede. O SNMP é o principal protocolo para monitorar equipamentos de rede e o Zabbix é excelente para monitorar um grande número de objetos e resumir volumes significativos de métricas recebidas.

Algumas palavras sobre o SNMPv3


Vamos começar com a nomeação do SNMPv3 e os recursos de seu uso. As tarefas SNMP estão monitorando dispositivos de rede e gerenciamento elementar, enviando comandos simples para eles (por exemplo, ativando e desativando interfaces de rede ou reinicializando o dispositivo).

A principal diferença entre o protocolo SNMPv3 e suas versões anteriores é os recursos de segurança clássicos [1-3], a saber:

  • Autenticação, que determina que a solicitação é recebida de uma fonte confiável;
  • Criptografia, para impedir a divulgação de dados transmitidos quando interceptados por terceiros;
  • Integridade, isto é, uma garantia de que o pacote não foi violado durante a transmissão.

O SNMPv3 implica o uso de um modelo de segurança no qual uma estratégia de autenticação é definida para um determinado usuário e o grupo ao qual ele pertence (nas versões anteriores do SNMP, na solicitação do servidor ao objeto de monitoramento, apenas a "comunidade" era comparada, uma sequência de texto com uma "senha" transmitida de forma clara (texto simples)).

O SNMPv3 apresenta o conceito de níveis de segurança - níveis aceitáveis ​​de segurança que determinam a configuração do equipamento e o comportamento do agente SNMP do objeto de monitoramento. A combinação do modelo de segurança e o nível de segurança determina qual mecanismo de segurança é usado ao processar o pacote SNMP [4].

A tabela descreve combinações de modelos e níveis de segurança SNMPv3 (decidi deixar as três primeiras colunas como no original):



Assim, usaremos o SNMPv3 no modo de autenticação usando criptografia.

Configurar SNMPv3


O equipamento de rede de monitoramento envolve a mesma configuração do protocolo SNMPv3 no servidor de monitoramento e no objeto monitorado.

Vamos começar configurando um dispositivo de rede Cisco, sua configuração mínima necessária é a seguinte (para a configuração usamos CLI, simplifiquei nomes e senhas para evitar confusão):

snmp-server group snmpv3group v3 priv read snmpv3name 
snmp-server user snmpv3user snmpv3group v3 auth md5 md5v3v3v3 priv des des56v3v3v3
snmp-server view snmpv3name iso included

A primeira linha do grupo snmp-server - define o grupo de usuários SNMPv3 (snmpv3group), o modo de leitura (leitura) e o direito de acesso do grupo snmpv3group para exibir determinadas ramificações da árvore MIB do objeto de monitoramento (snmpv3name na configuração abaixo determina quais ramificações da árvore MIB o grupo snmpv3group poderá acessar).

A segunda linha de usuário do servidor snmp - define o usuário snmpv3user, sua associação no snmpv3group, além do uso da autenticação md5 (a senha do md5 é md5v3v3v3) e da criptografia des (a senha do des é des56v3v3v3). É claro que, em vez de des, é melhor usar aes, aqui vou dar apenas um exemplo. Além disso, ao definir um usuário, você pode adicionar uma lista de acesso (ACL) que regula os endereços IP dos servidores de monitoramento que têm o direito de monitorar este dispositivo - essa também é uma prática recomendada, mas não vou complicar o nosso exemplo.

A terceira linha da exibição do servidor snmp define o nome do código que define as ramificações da árvore MIB snmpv3name para que o grupo de usuários snmpv3group possa solicitá-las. O ISO, em vez de definir estritamente uma única ramificação, permite que um grupo de usuários do snmpv3group acesse todos os objetos da árvore MIB do objeto de monitoramento.

Uma configuração semelhante do equipamento Huawei (também na CLI) é a seguinte:

snmp-agent mib-view included snmpv3name iso
snmp-agent group v3 snmpv3group privacy read-view snmpv3name
snmp-agent usm-user v3 snmpv3user group snmpv3group
snmp-agent usm-user v3 snmpv3user authentication-mode md5 
            md5v3v3v3
snmp-agent usm-user v3 snmpv3user privacy-mode des56
            des56v3v3v3

Depois de configurar os dispositivos de rede, você precisa verificar o acesso do servidor de monitoramento via protocolo SNMPv3; usarei o snmpwalk:

snmpwalk -v 3 -u snmpv3user -l authPriv -A md5v3v3v3 -a md5 -x des -X des56v3v3v3 10.10.10.252



Uma ferramenta mais visual para solicitar objetos OID específicos usando arquivos MIB é o snmpget:



Agora, vamos definir um elemento de dados típico para o SNMPv3, como parte do modelo do Zabbix. Para simplicidade e independência do MIB, uso OIDs digitais:



uso macros personalizadas nos campos-chave, porque serão iguais para todos os elementos de dados no modelo. Você pode defini-los como parte do modelo se todos os dispositivos de rede em sua rede tiverem os mesmos parâmetros SNMPv3 ou dentro do host se os parâmetros SNMPv3 para diferentes objetos de monitoramento forem diferentes:



Observe que o sistema de monitoramento possui apenas um nome de usuário e senhas para autenticação e criptografia . O grupo de usuários e a área dos objetos MIB aos quais o acesso é permitido são definidos no objeto de monitoramento.
Agora vamos passar a preencher o modelo.

Modelo de pesquisa do Zabbix


Uma regra simples ao criar qualquer modelo de pesquisa é torná-lo o mais detalhado possível:



presto muita atenção ao inventário, para que seja mais conveniente trabalhar com uma rede grande. Sobre isso um pouco mais tarde, mas por enquanto - gatilhos:



Para facilitar a visualização dos acionadores, seus nomes contêm macros do sistema {HOST.CONN}, para que não apenas nomes de dispositivos, mas também endereços IP sejam exibidos no painel na seção de alerta, embora isso seja mais uma questão de conveniência do que o necessário. Para determinar a indisponibilidade do dispositivo, além da solicitação de eco usual, eu uso a verificação de indisponibilidade do host SNMP quando o objeto está acessível via ICMP, mas não responde a solicitações SNMP - essa situação é possível, por exemplo, ao duplicar endereços IP em dispositivos diferentes, devido a firewalls configurados incorretamente ou configurações SNMP incorretas nos objetos de monitoramento. Se você usar o controle de acesso ao host apenas via ICMP, no momento da investigação de incidentes na rede, os dados de monitoramento poderão não aparecer, portanto, seu recebimento deve ser controlado.

Vamos continuar descobrindo interfaces de rede - para equipamentos de rede, essa é a função de monitoramento mais importante. Como pode haver centenas de interfaces em um dispositivo de rede, é necessário filtrar os desnecessários para não desorganizar a visualização e desorganizar o banco de dados.

Uso a função de detecção padrão para SNMP, com um grande número de parâmetros detectáveis, para uma filtragem mais flexível:

discovery[{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7]



Com essa detecção, você pode filtrar as interfaces de rede por seus tipos, descrições de usuários "descrição" e status administrativo das portas. Filtros e expressões regulares para filtragem no meu caso têm a seguinte aparência:





Após a detecção, as seguintes interfaces serão excluídas:

  • desativado manualmente (adminstatus <> 1), graças ao IFADMINSTATUS;
  • sem descrição de texto, graças ao IFALIAS;
  • tendo * na descrição do texto, graças a IFALIAS;
  • ser oficial ou técnico graças ao IFDESCR (no meu caso, nas expressões regulares IFALIAS e IFDESCR são verificadas por uma expressão regular de alias).

O modelo de coleta de dados SNMPv3 está quase pronto. Não vamos nos concentrar nos protótipos de elementos de dados para interfaces de rede, passaremos para os resultados.

Monitorando resultados


Para começar - um inventário de uma pequena rede:



Se você preparar modelos para cada série de dispositivos de rede - poderá obter um layout conveniente para analisar os dados resumidos do software atual, números de série e notificação da chegada de uma faxineira no servidor (devido ao pequeno tempo de atividade). Um trecho da minha lista de modelos está abaixo:



E agora - o painel principal, com gatilhos distribuídos por nível de gravidade:



Graças a uma abordagem integrada aos modelos para cada modelo de dispositivos na rede, é possível conseguir que, dentro da estrutura de um sistema de monitoramento, seja organizada uma ferramenta para prever falhas e acidentes (se houver sensores e métricas adequados). O Zabbix é bem adequado para monitorar infra-estruturas de rede, servidor e serviço, e a tarefa de atender equipamentos de rede demonstra claramente suas capacidades.

Lista de fontes utilizadas:
1. Hucaby D. CCNP Routing and Switching SWITCH 300-115 Official Cert Guide. Cisco Press, 2014. pp. 325-329.
2. RFC 3410. tools.ietf.org/html/rfc3410
3. RFC 3415. tools.ietf.org/html/rfc3415
4. SNMP Configuration Guide, Cisco IOS XE Release 3SE. Chapter: SNMP Version 3. www.cisco.com/c/en/us/td/docs/ios-xml/ios/snmp/configuration/xe-3se/3850/snmp-xe-3se-3850-book/nm-snmp-snmpv3.html

All Articles