O fluxo de comunica??o de uma 'trap SNMP' ¨¦ o inverso do de uma coleta.
Para este tipo de item o dispositivo monitorado inicia a comunica??o enviando um 'trap' que ¨¦ coletado pelo processo 'Áú»¢¶Ä²© Trapper' que est¨¢ presente o Áú»¢¶Ä²© Server e no Áú»¢¶Ä²© Proxy.
Normalmente as 'traps' s?o enviadas quando determinada condi??o ocorre, a partir desta mudan?a o Agente SNMP se conecta ao servidor SNMP (no caso o Áú»¢¶Ä²© Trapper) usando a porta 162 (para as consultas SNMP ¨¦ utilizada a porta 161). Usando 'traps' voc¨º poder¨¢ detectar problemas logo que ocorrerem, sem ter que aguardar uma eventual fila de coletas.
O recebimento de 'traps SNMP' no zabbix foi desenvolvido para funcionar em conjunto com o snmptrapd chamando um script perl ou SNMPTT.
O 'workflow' de um recebimento de trap:
". (Que pode ser habilitado atrav¨¦s da op??o "Registrar traps SNMP n?o correspondentes" dispon¨ªvel em Administra??o
¡ú Geral
¡ú Outros
.)
A configura??o dos campos a seguir ¨¦ espec¨ªfica para itens deste tipo:
Em Configura??o ¡ú Hosts, no campo Interface do Host defina uma interface com o IP ou DNS correto. O endere?o de cada trap recebida ¨¦ comparada com o IP ou com o DNS de todas as interfaces SNMP para localizar os hosts correspondentes.
Utilize uma das chaves de trap SNMP no campo Chave do item:
Chave | ||
---|---|---|
Descri??o | Valor retornado | °ä´Ç³¾±ð²Ô³Ù¨¢°ù¾±´Ç²õ |
snmptrap[regexp] | ||
Captura qualquer trap SNMP que corresponda com um endere?o definido pela express?o regular informada no campo regexp | Trap SNMP | Este item s¨® pode ser definido em interfaces SNMP. Este item ¨¦ suportado desde o Áú»¢¶Ä²© 2.0.0. Observa??o: A partir do Áú»¢¶Ä²© 2.0.5, macros de usu¨¢rio e express?es globais s?o suportadas para este tipo de item. |
snmptrap.fallback | ||
Captura todas as traps SNMP de um determinado IP que n?o tenha sido recebida por nenhum item snmptrap[] daquela interface | Trap SNMP | Este item s¨® pode ser definido em interfaces SNMP. Este item ¨¦ suportado desde o Áú»¢¶Ä²© 2.0.0. |
Express?es regulares de v¨¢rias linhas n?o s?o suportadas neste momento.
Defina o Tipo da informa??o para 'Log' para que os registros de hora sejam processados. Observe que qualquer outro formato, tal qual o num¨¦rico, tamb¨¦m s?o aceit¨¢veis mas requerem um gerenciador de trap personalizado.
Para a monitora??o de trap SNMP, voc¨º primeiro dever¨¢ configura-la.
Para receber as traps, o Áú»¢¶Ä²© Server/Proxy dever¨¢ estar configurado para iniciar o processo de SNMP trapper e apontado para o arquivo de traps que estar¨¢ sendo alimentado pelo SNMPTT ou pelo 'perl trap receiver'. Para fazer isso, edite o arquivo de configura??o (zabbix_server.conf ou zabbix_proxy.conf):
Se o par?metro do systemd tiver sido definido ¨¦ improv¨¢vel que funcione no /tmp.
Primeiramente o 'snmptrapd' precisa estar configurado para utilizar o SNMPTT.
Para uma melhor performance, o SNMPTT precisa estar configurado como um daemon utilizando o snmptthandler-embedded para enviar as traps. Veja mais intru??es sobre configura??o do SNMPTT neste endere?o:
Quando o SNMPTT estiver apto a receber as 'traps', ajuste-o para registrar as traps:
Agora formate as traps de forma a possibilitar que o Áú»¢¶Ä²© as reconhe?a (edite o arquivo snmptt.conf):
N?o utilize traps 'n?o esperadas' - o Áú»¢¶Ä²© n?o estar¨¢ apto a reconhece-las. Traps n?o esperadas podem ser tratadas ao definir um evento geral no snmptt.conf
:
EVENT general .* "General event" Normal
Perl trap receiver
Requerimentos: Perl, pacote Net-SNMP compilado com --enable-embedded-perl (j¨¢ ¨¦ padr?o no Net-SNMP 5.4)
'Perl trap receiver' (olhe em misc/snmptrap/zabbix_trap_receiver.pl) poder¨¢ ser utilizado para encaminhar as traps para o Áú»¢¶Ä²© Server/Proxy diretamente a partir do snmptrapd. Para configurar:
Se o nome do script n?o estiver entre aspas, o snmptrapd ir¨¢ se recusar a iniciar com mensagens similares a estas:
Tanto os 'perl trap receivers' quanto o 'SNMPTT trap configuration' precisam formatar a trap conforme o padr?o a seguir: [timestamp] [the trap, part 1] ZBXTRAP [address] [the trap, part 2], onde
Observe que o "ZBXTRAP" e o "[address]" ser?o removidos da mensagem durante o processamento. Se a trap utilizar outro formato, o Áú»¢¶Ä²© pode analisa-las de forma inesperada.
Exemplo de trap:
11:30:15 2011/07/27 .1.3.6.1.6.3.1.1.5.3 Normal "Status Events" localhost - ZBXTRAP 192.168.1.1 Link down on interface 2. Admin state: 1. Operational state: 2
Esta trap ser¨¢ enviada para um host com a interface SNMP com IP=192.168.1.1:
11:30:15 2011/07/27 .1.3.6.1.6.3.1.1.5.3 Normal "Status Events" localhost - Link down on interface 2. Admin state: 1.
O Áú»¢¶Ä²© n?o prov¨º rota??o de logs que possa ser gerida pelo usu¨¢rio. A rota??o de logs primeiro ir¨¢ renomear o arquivo antigo e ap¨®s isso apaga-lo para garantir que nenhuma trap ser¨¢ perdida, conforme processo a seguir:
O tamanho m¨¢ximo de um arquivo de log para o Áú»¢¶Ä²© ¨¦ de 2GB. O arquivo de log precisa ser rotacionado antes deste limite.
Devido ¨¤ forma de implementa??o, o Áú»¢¶Ä²© precisa que o sistema de arquivos suporte inodes para diferenciar os arquivos (a informa??o ¨¦ obtida atrav¨¦s da fun??o stat()
).
Este exemplo utiliza o snmptrapd + SNMPTT para enviar traps ao Áú»¢¶Ä²© Server:
Teste o funcionamento:
Este exemplo simples utiliza o SNMPTT como traphandle. Para melhor performance em ambientes de produ??o, utilize um script Perl para encaminhar as traps do snmptrapd ao SNMPTT ou diretamente ao Áú»¢¶Ä²©.
This example uses snmptrapd + SNMPTT to pass traps to Áú»¢¶Ä²© server. Setup:
This results in:
This simple example uses SNMPTT as traphandle. For better performance on production systems, use embedded Perl to pass traps from snmptrapd to SNMPTT or directly to Áú»¢¶Ä²©.