Em uma infraestrutura de rede, nem todos os eventos importantes podem esperar até que uma ferramenta de monitoramento realize sua próxima consulta. Uma interface pode ficar indisponível, um UPS pode reportar uma falha ou um dispositivo pode ser reiniciado a qualquer momento. Nesses cenários, SNMP Trap permite que o próprio dispositivo envie um evento ao sistema de monitoramento quando algo acontece.
No Zabbix, as traps SNMP complementam o monitoramento tradicional baseado em polling, permitindo trabalhar com uma abordagem orientada a eventos e reagir rapidamente a determinadas condições da infraestrutura.
O que é uma SNMP Trap?
SNMP (Simple Network Management Protocol) permite monitorar e administrar dispositivos de rede, como switches, routers, firewalls e UPS.
Em um monitoramento baseado em polling, o Zabbix consulta periodicamente o dispositivo para obter informações. O intervalo de consulta determina a cada quanto tempo um novo valor deve ser coletado.
Uma SNMP Trap funciona de maneira diferente: o dispositivo envia uma mensagem ao sistema de monitoramento quando ocorre um determinado evento.
Por exemplo, um switch pode enviar uma trap quando uma interface muda de estado, enquanto um UPS pode gerar uma notificação diante de uma condição relacionada à energia.
Por isso, polling e traps não devem ser considerados mecanismos excludentes. Em uma implementação do Zabbix, ambos podem ser utilizados de forma complementar.
Como o Zabbix processa uma SNMP Trap?
O fluxo de processamento envolve componentes do Net-SNMP e do Zabbix.
De forma simplificada:
Dispositivo de rede → snmptrapd → trap handler → arquivo de traps → Zabbix SNMP trapper → item SNMP trap → trigger
A documentação oficial do Zabbix sobre SNMP Trap descreve esse fluxo e os componentes necessários para receber e processar as traps.
O processo funciona da seguinte maneira:
- O dispositivo de rede envia a SNMP Trap;
- snmptrapd recebe a trap;
- snmptrapd a envia para um receptor ou handler, que pode ser um script Bash, um receptor Perl ou SNMPTT;
- O receptor processa e grava as informações no arquivo configurado para as traps;
- O processo SNMP trapper do Zabbix lê esse arquivo;
- O Zabbix identifica o host correspondente utilizando a interface SNMP;
- A trap é comparada com os itens configurados por meio de expressões regulares;
- Quando existe uma correspondência, a trap é armazenada como valor do item e pode ser utilizada para gerar um evento por meio de um trigger.
Para conhecer todas as etapas de configuração, consulte a seção de configuração de SNMP traps na documentação do Zabbix.
Configurar o receptor de SNMP Traps
Uma das opções mais comuns é o Net-SNMP snmptrapd, que recebe as mensagens enviadas pelos dispositivos.
Como receptor, pode ser utilizado um script Bash, o receptor Perl fornecido pelo Zabbix (zabbix_trap_receiver.pl) ou o SNMPTT.
A documentação do Zabbix inclui instruções para configurar o receptor de traps em Bash e Perl, assim como o SNMPTT.
Habilitar o SNMP trapper no Zabbix
Em zabbix_server.conf ou zabbix_proxy.conf, configure o processo SNMP trapper e o arquivo onde as traps são armazenadas:
StartSNMPTrapper=1 SNMPTrapperFile=/var/lib/zabbix/snmptraps/snmptraps.log
Esses parâmetros fazem parte da configuração necessária para que o Zabbix server ou Zabbix proxy processe as SNMP traps.
Criar o item SNMP Trap
O host deve ter uma interface SNMP. No campo Key, o Zabbix permite utilizar principalmente:
snmptrap[regexp]
Captura as traps que correspondam à expressão regular especificada.
snmptrap.fallback
Captura as traps que não tenham sido capturadas por nenhum dos itens snmptrap[] dessa interface.
A documentação do Zabbix sobre o tipo de item SNMP trap contém detalhes sobre a configuração desses itens e o comportamento de snmptrap[regexp] e snmptrap.fallback.
Para Type of information, normalmente é utilizado Log quando é necessário que o Zabbix interprete os timestamps presentes nas traps.
Exemplo: detectar uma interface indisponível
Suponhamos que um switch envie uma trap quando uma interface muda para o estado down. Podemos criar um item com:
snmptrap[linkDown]
A partir desse item, é possível criar um trigger que gere um problema quando o Zabbix receber a trap correspondente. A expressão exata deve depender do formato da trap enviada pelo fabricante.
O Zabbix também disponibiliza templates SNMP para dispositivos de rede, que podem ser utilizados como referência ao estruturar o monitoramento de diferentes dispositivos e métricas.
O que acontece com as traps que não correspondem?
snmptrap.fallback permite capturar as traps que não foram associadas a nenhum snmptrap[] da interface correspondente.
Isso é especialmente útil durante a fase inicial de implementação, pois permite analisar as traps recebidas antes de criar regras específicas.
O template SNMP disponível no Zabbix também inclui um item do tipo SNMP trap baseado em snmptrap.fallback.
SNMP Trap não substitui o polling
O polling permite que o Zabbix consulte periodicamente as informações do dispositivo. As traps, por outro lado, permitem receber determinados eventos enviados pelo dispositivo.
Uma arquitetura eficiente pode combinar ambas as estratégias:
Polling + SNMP Traps = métricas periódicas + eventos orientados a mudanças
Essa abordagem permite complementar a coleta periódica de dados com eventos enviados diretamente pelos dispositivos quando determinadas condições ocorrem.
O blog do Zabbix mantém uma seção dedicada a SNMP, com artigos sobre monitoramento, configuração e diferentes cenários de uso.
Confiabilidade das traps
As traps SNMPv1/v2c não possuem confirmação de recebimento, portanto uma trap pode ser perdida durante uma interrupção de comunicação. Quando o dispositivo permite, o SNMP Inform pode utilizar um mecanismo de confirmação.
Em ambientes críticos, não é recomendável depender exclusivamente de traps para determinar o estado de um dispositivo. A combinação com polling permite criar uma estratégia de monitoramento mais completa.
A documentação do Zabbix sobre SNMP Trap também inclui exemplos de configuração utilizando diferentes versões do protocolo SNMP, incluindo SNMPv1, SNMPv2 e SNMPv3.
Rotação e manutenção do arquivo de traps
Em ambientes com muitos dispositivos, o volume de eventos pode crescer rapidamente. Por isso, é importante implementar uma política adequada de rotação de logs e garantir que o processo de rotação não provoque perda de eventos.
A documentação oficial do Zabbix inclui recomendações específicas sobre rotação de logs e requisitos do sistema para SNMP traps.
SNMP Traps em ambientes multivendor
Cada fabricante pode implementar eventos específicos e utilizar MIBs e OIDs próprios.
Ao integrar um novo dispositivo, é recomendável identificar:
- a versão do SNMP;
- o endereço a partir do qual as traps serão enviadas;
- os OIDs envolvidos;
- as MIBs necessárias;
- o formato das traps;
- os eventos que realmente precisam gerar alertas.
O Zabbix oferece diferentes soluções e templates para monitoramento por meio de SNMP, que podem servir como ponto de partida para ambientes multivendor.
Boas práticas para o uso de SNMP Traps
Antes de criar expressões regulares, é importante analisar o formato real das traps e considerar as particularidades de cada fabricante. Também é recomendável manter as MIBs e a documentação do fabricante disponíveis para facilitar a interpretação dos OIDs e dos eventos recebidos.
Não é recomendável depender exclusivamente das traps. O polling permite verificar periodicamente o estado dos dispositivos, enquanto as traps são especialmente úteis para receber eventos específicos. Durante a implementação, snmptrap.fallback pode ser utilizado para identificar e analisar as traps recebidas antes de definir regras mais específicas.
Em ambientes com um volume elevado de eventos, é importante monitorar o arquivo onde as traps são armazenadas e estabelecer uma estratégia adequada de rotação. Em cenários críticos, o SNMP Inform pode ser uma alternativa quando o dispositivo oferece suporte, enquanto a combinação de traps e polling ajuda a construir um monitoramento mais confiável.
Conclusão
SNMP Trap permite que o Zabbix incorpore uma dimensão orientada a eventos ao monitoramento da infraestrutura de rede. Em vez de depender exclusivamente de consultas periódicas, o Zabbix pode receber eventos gerados diretamente por switches, routers, UPS e outros dispositivos compatíveis com SNMP.
A chave está em entender que SNMP polling e SNMP traps cumprem funções complementares. Quando combinados corretamente, permitem construir um monitoramento capaz de observar tanto o estado da infraestrutura quanto os eventos relevantes que ocorrem nela.
Para aprofundar-se na configuração, consulte a documentação oficial do Zabbix sobre SNMP traps e os conteúdos técnicos da seção SNMP do Zabbix Blog.