1. Home /
  2. Configurando /
  3. Configurando snmp-trap no OpTrap do Opmon
  1. Home /
  2. OpMon /
  3. Módulos Adicionais /
  4. Configurando snmp-trap no OpTrap do Opmon
  1. Home /
  2. OpMon /
  3. Configurando snmp-trap no OpTrap do Opmon

Configurando snmp-trap no OpTrap do Opmon

Objetivo

Esta documentação tem como objetivo demonstrar como configurar o recebimento de traps no Opmon.

Suporte

Essa configuração é suportada pela OpServices para os clientes OpMon Premium e pelos parceiros para os clientes OpMon PRO.

Público-Alvo

Administradores do OpMon.

Versões Compatíveis

  • OpMon 6.0 ou superior

Pré-requisitos

  • snmptrapd
  • net-snmp-perl*

Configurando OpTrap.

Instale o pacote abaixo.

yum install net-snmp-perl*

A configuração do OpTraps resume-se a inicialização do processo. Execute os seguintes comandos:

service snmptrapd start
chkconfig --level 3,4,5 --add snmptrapd

Verifique se o daemon esta rodando. Execute o seguinte comando:

netstat -an | grep 162

Deve aparecer resposta conforme abaixo:

udp        0      0 0.0.0.0:162                 0.0.0.0:*

Para testar, rode o comando abaixo e veja se aparece na interface, na opção de traps desconhecidas.

snmptrap -v 2c -c public 127.0.0.1 '' linkUp ifDescr s eth0 ifAdminStatus i 1 ifOperStatus i 1

 

Seguindo os passos acima, já estamos com o servidor pronto e configurado para o recebimento de traps, basta pedir configurar o envio de traps dos equipamentos para o OpMon, porém, as traps enviadas serão identificadas como traps desconhecidas, pois o OpMon ainda não sabe o que elas significam. Para isso devemos configurar o arquivo /etc/snmp/snmptt.conf.

Para o armazenamento de Traps, o OpMon utiliza a seguinte estrutura da base de dados:

    DB – snmptt
TABLES – snmptt, snmptt_archive e snmptt_unknownNa table snmptt ficam armazenadas as traps comuns, na tabela snmptt_archive as traps arquivadas, e na tabela snmptt_unknown as traps desconhecidas.
Toda trap recebida é considerada como desconhecida caso não tenha sido previamente ajustada no arquivo /etc/snmp/snmptt.conf. Exatamente por isso esse arquivo deve ser configurado, segue exemplo:
EVENT linkUp .1.3.6.1.6.3.1.1.5.4 “Network” OK
FORMAT A linkUp trap signifies that the ifOperStatus object for one of its communication links has transitioned out of the down state. $*
EXEC /usr/local/opmon/libexec/eventhandlers/submit_check_result $r service_name_opmon 1 “alertName:$*”EVENT EventLog .1.3.6.1.4.1.311.1.13.1.* “Security” Warning
FORMAT Failure: Reason:$14 – User Name:$11 – Workstation Name:$12
EXEC /usr/local/opmon/libexec/eventhandlers/submit_check_result $r service_name_opmon 1 “Failure: Reason:$14 – User Name:$11 – Workstation Name:$12”

Este formato segue a seguinte sintaxe:

EVENT event_name event_OID “category” severity
FORMAT format_string
EXEC command_string
Severity Example: Minor, Major, Normal, Critical, Warning

Não é necessário usar o arquivo /etc/snmp/snmptt.conf para manter todas as traps, você pode criar vários arquivos, uma para cada sistema por exemplo, apenas precisa fazer a devida referência deles no arquivo de inicialização /etc/snmp/snmptt.ini.
Após estes procedimentos, o recebimentos de traps funcionará normalmente, sendo distinguidas as traps.
Para identificar as traps não precisa obrigatoriamente ter a mib, você pode habilitar no /etc/snmp/snmptt.ini a opção DEBUGGING = 2, verifique o local de gravação na opção DEBUGGING_FILE = /var/log/snmptt.debug.
Nesse arquivo você vai ter as entradas no seguinte formato:
Items passed from snmptrapd:
value 0: 10.1.3.84
value 1: 10.1.3.84
value 2: .1.3.6.1.2.1.1.3.0
value 3: 0:0:00:00.00
value 4: .1.3.6.1.6.3.1.1.4.1.0
value 5: SNMPv2-SMI::enterprises.18016.2.1.2
value 6: .1.3.6.1.4.1.18016.2.1.2.1
value 7: teste9
value 8: .1.3.6.1.4.1.18016.2.1.2.2
value 9: RHQ Agent
value 10: .1.3.6.1.4.1.18016.2.1.2.3
value 11: jsoa30.sc.senai.br
value 12: .1.3.6.1.4.1.18016.2.1.2.4
value 13:
value 14:
value 15:  - Condition 1: Availability goes UP
value 16:
value 17:  - Date/Time: 2017/07/10 14:57:54 BRT
value 18:
value 19:  - Details: UP
value 20: "
value 21: (null)
value 22: .1.3.6.1.4.1.18016.2.1.2.5
value 23: medium
value 24: .1.3.6.1.4.1.18016.2.1.2.6
value 25: http://10.1.1.84:7080/coregui/CoreGUI.html#Resource/12884/Alerts/History/10331
value 26: .1.3.6.1.4.1.18016.2.1.2.7
value 27: jsoa30.sc.senai.br::RHQ Agent

Host IP address (10.1.3.84) could not be resolved by DNS.  Variable $r / $R etc will use the IP address
Agent IP address was blank, so setting to the same as the host IP address of 10.1.3.84
Agent IP address (10.1.3.84) is the same as the host IP, so copying the host name: 10.1.3.84

Trap received from 10.1.3.84: SNMPv2-SMI::enterprises.18016.2.1.2
0:              hostname
1:              ip address
2:              uptime
3:              trapname / OID
4:              ip address from trap agent
5:              trap community string
6:              enterprise
0+:             passed variables

Value 0: 10.1.3.84
Value 1: 10.1.3.84
Value 2: 0:0:00:00.00
Value 3: .1.3.6.1.4.1.18016.2.1.2
Value 4: 10.1.3.84
Value 5:
Value 6:
Agent dns name: 10.1.3.84
Ent Value 0 ($1): .1.3.6.1.4.1.18016.2.1.2.1=teste9
Ent Value 1 ($2): .1.3.6.1.4.1.18016.2.1.2.2=RHQ Agent
Ent Value 2 ($3): .1.3.6.1.4.1.18016.2.1.2.3=jsoa30.sc.senai.br
Ent Value 3 ($4): .1.3.6.1.4.1.18016.2.1.2.4=
Ent Value 4 ($5): = - Condition 1: Availability goes UP
Ent Value 5 ($6): = - Date/Time: 2017/07/10 14:57:54 BRT
Ent Value 6 ($7): = - Details: UP
Ent Value 7 ($8): "=(null)
Ent Value 8 ($9): .1.3.6.1.4.1.18016.2.1.2.5=medium
Ent Value 9 ($10): .1.3.6.1.4.1.18016.2.1.2.6=http://10.1.1.84:7080/coregui/CoreGUI.html#Resource/12884/Alerts/History/10331
Ent Value 10 ($11): .1.3.6.1.4.1.18016.2.1.2.7=jsoa30.sc.senai.br::RHQ Agent
Se observamos o evento acima, a trap que precisamos está no Value 3 que responde pela OID, assim conseguimos montar um regra no seguinte formato. Onde cada variável desejada é representada por $, por exemplo $1 retorna teste9.
EVENT alertNotification .1.3.6.1.4.1.18016.2.1.2 "Status Events" Warning
FORMAT alertName:$1 - alertResourceName:$2 - alertPlatformName:$3 $5 - alertSeverity:$9 - alertUrl:$10 $7 $6
EXEC /usr/local/opmon/libexec/eventhandlers/submit_check_result $r system_trap 1 "alertName:$1 - alertResourceName:$2 - alertPlatformName:$3 $5 - alertSeverity:$9 - alertUrl:$10 $7 $6"

 

O resultado desta trap tanto na interface OpTrap como no serviço system_trap será assim:

alertName:teste9 - alertResourceName:RHQ Agent - alertPlatformName:jsoa30.sc.senai.br - Condition 1: Availability goes UP - alertSeverity:medium - alertUrl:http://10.1.1.84:7080/coregui/CoreGUI.html#Resource/12884/Alerts/History/10331 - Details: UP - Date/Time: 2017/07/10 14:57:54 BRT

O resultado no serviço system_trap ficará em WARNING pois estamos enviando o valor 1 após o nome do serviço.
Abaixo um exemplo de como podemos manipular.

 

Lembre de voltar a opção DEBUG para 0.
Habilite a limpeza dos dados históricos da tabela na cron descomentando a linha em /etc/cron.d/snmptt e reiniciando a crond.

Updated on 14/01/2022

Esse artigo foi útil para você?

Ficou com alguma dúvida?

Perguntas & Respostas

Participe da nossa comunidade e tire dúvidas ou compartilhe respostas e ideias.

Participar

Professional Support

Não encontrou a resposta que procura? Não se preocupe, estamos aqui para ajudar!

Abrir chamado

Treinamento Online

Através da plataforma Udemy, você encontra todos os treinamentos das nossas soluções.

Inscreva-se