Nagios (ocomon.cfg)

Integração do Nagios com Ocomon

Categoria: Networking

Software: Nagios

[ Hits: 10.688 ]

Por: Carlos Eduardo Fraga Ribeiro


Este arquivo mostra como criar dois comandos no Nagios para que ele possa registrar um incidente crítico diretamente na base de dados do Ocomon.

A versão do Nagios é a 3 e a versão do ocomon a 2.0RC6.

Talvez seja necessário alterar as configurações do arquivo para sua necessidade, pois utilizo no NAGIOsQL como frontend e o mesmo cria alguns arquivos *.cfg que não estão na instalação padrão do Nagios.


##ARQUIVO COMMANDS.CFG


define command {
       command_name                        notify-service-by-ocomon
       command_line                        /usr/bin/printf "%b" "INSERT INTO ocomon_rc6.ocorrencias (problema ,descricao ,equipamento ,sistema ,contato ,telefone ,local ,operador ,data_abertura ,data_fechamento ,status ,data_atendimento ,instituicao ,aberto_por ,oco_scheduled ,oco_real_open_date , oco_script_sol ,date_first_queued ,oco_prior ) VALUES ( '1', '***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$', '1', '1', '$HOSTADDRESS$', '12345678', '1', '2', NOW(), NULL , '1', NULL , '1', '2', '0', NOW(), NULL , NOW() , '-1')" | mysql -u root -p123456
}





define command {
       command_name                        notify-host-by-ocomon
       command_line                        /usr/bin/printf "%b" "INSERT INTO ocomon_rc6.ocorrencias (problema ,descricao ,equipamento ,sistema ,contato ,telefone ,local ,operador ,data_abertura ,data_fechamento ,status ,data_atendimento ,instituicao ,aberto_por ,oco_scheduled ,oco_real_open_date , oco_script_sol ,date_first_queued ,oco_prior ) VALUES ( '1', '***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n', '1', '1', '$HOSTADDRESS$', '12345678', '1', '2', NOW(), NULL , '1', NULL , '1', '2', '0', NOW(), NULL , NOW() , '-1')" | mysql -u root -p123456
}





##ARQUIVO CONTACTGROUPS.CFG


define contactgroup {
   contactgroup_name                   Ocomon
   alias                               Ocomon Group
   members                             ocomon
   }   




##ARQUIVO CONTACTS.CFG


define contact {
   contact_name                        ocomon
   alias                               Ocomon User
   use                                 ocomon-contact
   }   




##ARQUIVO COTACTTEMPLATES.CFG

define contact {
   name                                ocomon-contact
   host_notification_period            24x7
   service_notification_period         24x7
   host_notification_options           d,u
   service_notification_options        w,u,c
   host_notification_commands          notify-host-by-ocomon
   service_notification_commands       notify-service-by-ocomon
   register                          0
   }   



##ARQUIVO HOSTTEMPLATES.CFG

define host {
       name                                linux-server
       check_command                       check-host-alive
       use                                 generic-host
       max_check_attempts                  10
       check_interval                      5
       retry_interval                      1
       check_period                        24x7
       contact_groups                      admins,Ocomon
       notification_interval               120
       notification_period                 workhours
       notification_options                d,u,r
       ;                                  
       register                          0

}   

define host {
       name                                windows-server
       hostgroups                          windows-servers
       check_command                       check-host-alive
       use                                 generic-host
       max_check_attempts                  10
       check_interval                      5
       retry_interval                      1
       check_period                        24x7
       contact_groups                      admins,Ocomon
       notification_interval               30
       notification_period                 24x7
       notification_options                d,r
       register                          0

}


##ARQUIVO SERVICETEMPLATES.CFG

define service {
       name                                generic-service
       is_volatile                         0
       max_check_attempts                  3
       check_interval                      10
       retry_interval                      2
       active_checks_enabled               1
       passive_checks_enabled              1
       check_period                        24x7
       obsess_over_service                 1
       check_freshness                     0
       event_handler_enabled               1
       flap_detection_enabled              1
       process_perf_data                   1
       retain_status_information           1
       retain_nonstatus_information        1
       notification_interval               60
       notification_period                 24x7
       notification_options                w,u,r,c
       notifications_enabled               1
       contact_groups                      admins,Ocomon
       failure_prediction_enabled          1
       register                          0

}   


  


Comentários
[1] Comentário enviado por beldran em 01/08/2010 - 20:07h

Essa situaçao seria com o nagios e o ocomon no mesmo servidor ? O meu ocomon fica em outro servidor como seria a configuracao para apontar para um mysql em outro host??

[2] Comentário enviado por eduardofraga em 02/08/2010 - 08:06h

Neste caso você deve mudar para "| mysql -h IP_DO_SERVIDOR_DO_OCOMON -u root -p123456" no final comando.

[3] Comentário enviado por Nicolas777 em 04/10/2012 - 11:24h

Alguém já testou e se sabe se funcionou?

[4] Comentário enviado por Nicolas777 em 07/10/2012 - 14:27h

Testei e funcionou perfeitamente, mesmo não utilizando o NagiosQL.

Obviamente, com algumas alterações na query de gravação no banco.

[5] Comentário enviado por jorgeback em 09/10/2012 - 10:31h

Não entendi uma coisa, o nagios vai cadastrar um chamado no Ocomon, certo?

Ele vai enviar para qual usuario?
Que problema ele vai selecionar?
Para qual área ele vai enviar?
Qual unidade?
.....

Eu teria que configurar isso? Tenho que criar um usario Nagios no meu ocomon?
Obrigado

[6] Comentário enviado por Nicolas777 em 09/10/2012 - 12:40h

Isso esta tudo nessa string. Compare com o seu banco, o que está sendo inserido.

Eu, por exemplo, criei um usuario pro nagios, um equipamento genérico pra ele, e um tipo de problema só pra receber essa notificação.

Aqui, nessa parte do código, são os campos que ele vai inserir os dados dentro da tabela ocorrencias:

"INSERT INTO ocomon_rc6.ocorrencias (problema ,descricao ,equipamento ,sistema ,contato ,telefone ,local ,operador ,data_abertura ,data_fechamento ,status ,data_atendimento ,instituicao ,aberto_por ,oco_scheduled ,oco_real_open_date , oco_script_sol ,date_first_queued ,oco_prior )


Aqui, são os dados que ele vai inserir:

VALUES ( '1', '***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$', '1', '1', '$HOSTADDRESS$', '12345678', '1', '2', NOW(), NULL , '1', NULL , '1', '2', '0', NOW(), NULL , NOW() , '-1')"

Agora, abra seu banco MySQL do ocomon e compare essas informações... lembrando que essas dados são os "ID's" da entidade do banco.


[7] Comentário enviado por Nicolas777 em 09/10/2012 - 12:41h

Outra coisa, verifique se o seu banco se chama ocorrencia_rc.... no meu caso, eu criei ele apenas como ocomon...

[8] Comentário enviado por jorgeback em 09/10/2012 - 14:47h

Meu nagios ta configurado tudo certinho, os comandos tambem, os VALUES tambem!
Como faço teste para ver se está funcionando?
O meu notify-host-by-email e notify-service-by-email ainda estão la configurados, eles podem ficar la ou tem que ser removidos?

(Obs: Meu nagios e grande, tenho servidor com Warning e Critical praticamente 24/7)

[9] Comentário enviado por Nicolas777 em 09/10/2012 - 16:20h

Os comandos notify-host-by-email e notify-service-by-email podem permanecerem la sim, aqui deixei ativo pois não configurei todos os serviços para abrir o chamado no OcoMon.

Derruba um serviço monitorado e verifica em Notifications se o comando notify-service-by-ocomon aparece no log. A mesma coisa com o comando notify-host-by-ocomon, derrubando um host.

Se aparecerem, e mesmo assim não abrir o chamado no OcoMon, pode ser a configuração do MySQL, onde o mesmo pode estar bloqueando o acesso remoto... a não ser que fique no mesmo servidor as duas aplicações.



Contribuir com comentário

  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts