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:
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:
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
Após estes procedimentos, o recebimentos de traps funcionará normalmente, sendo distinguidas as traps.
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
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.