Instalando o serviço de monitoramento Nagios

Se você é um administrador de redes e precisa monitorar uma boa quantidade de computadores/serviços, fique sabendo que existe uma ferramenta gratuita que pode te ajudar a desempenhar sua função no dia-a-dia. O Nagios é um software que faz monitoramento de redes e checagens de serviços e além de tudo não é pago.

[ Hits: 116.917 ]

Por: Danilo Lopes Rogério em 21/07/2007 | Blog: https://www.linkedin.com/in/danilo-rogério-8b1398104


Criando os arquivos de configuração



Criando o contacts.cfg:

# vi contacts.cfg

#'dstec' contact definition
define contact{
contact_name   dstec ;(nome do membro)
alias   DSTEC ;(Informações úteis de descrição)
service_notification_period  24x7;(período de alerta, será definido no arquivo "timeperiods")
host_notification_period   24x7;(período de alerta, será definido no arquivo "timeperiods"
service_notification_options     w,c,r;(notificar serviços se w=warning, c=critical, r=recovery)
host_notification_options   d,u,r ;(notificar hosts se d=down, u=ureachebla, r=recovery)
service_notification_commands   notify-by-email ;(tipo de notificação, neste caso via e-mail)
host_notification_commands    host-notify-by-email;( tipo de notificação, neste caso via e-mail)
email   dstec@dominio.gov.br ;(aqui se define o endereço de envio da notificação)
}

:wq

Criando o contactgroups.cfg:

# vi contactgroups.cfg

# Definindo grupo
define contactgroup {
   contactgroup_name    dstec-admins ;(nome do grupo)
   alias                   Administradores ;(alias de informação)
   members                 dstec ;(membros definidos no contacts.cfg)
}

Criando o dependencies.cfg:

# touch dependencies.cfg

Criando o hosts.cfg:

# vi hosts.cfg

Aqui é um pouco mais difícil. Neste arquivo, primeiro você criará uma definição (template) de host, logo em seguida você criará uma sub-definição (sub-template) de host e a partir de então você aplicará essas definições aos hosts existentes na rede e que serão monitorados.

Exemplo:

# vi hosts.cfg

Criando a definição primária de hosts.

Nota: Os arquivos abaixo seguem com os comentários em inglês devido a falta de documentação à respeito, desculpem.

#Definindo uma template
define host{
name                              generic-host ; (The name of this host template)
notifications_enabled              1                 ; (Host notifications are enabled)
event_handler_enabled              1               ; (Host event handler is enabled)
flap_detection_enabled             1               ; (Flap detection is enabled)
process_perf_data                  1               ; (Process performance data)
retain_status_information          1                 ; (Retain status informationacross program restarts)
retain_nonstatus_information    1               ; (Retain non-status information) across program
register                          0               ; DONT REGISTER THIS DEFINITION - ITS NOT #A REAL HOST, JUST A TEMPLATE!
contact_groups                        dstec-admins
}

;Criando uma sub-definição de hosts:

define host{
use                        generic-host ;(Definição primária que será utilizada)
name                       generic-switch-borda ;(define qual nome esta sub-definição terá)
check_command         check-host-alive ;(tipo de verificação que será utilizada)
max_check_attempts  10 ;(quantidade de checagens até o envio da notificação)
notification_interval   60 ;(intervalo de cada notificação, neste caso a cada 60 minutos)
notification_period     24x7 ;(período de alerta,  será definido no arquivo “timeperiods”)
notification_options    d,u,r ;(notificar somente em caso de d=down u=unreachable r= recovery)
register                   0
}

;Agora sim vamos editar as linhas referentes a um verdadeiro host existente em sua rede (vou utilizar como exemplo um switch, já que criamos uma sub-definição para um switch.)

define host{
use                      generic-switch-borda ;(define qual sub-definição será utilizada)
host_name           switch-sede-terreo ;(nome dado para este host, Obs: não usar espaços)
alias                   Sw4 sede terreo sala 01 R-06 ;(informações úteis para caracterização do host)
#parents             intermediario05 ;(host pai, ou seja, onde este host se conecta)
address              10.10.40.93 ;(endereço ip deste host, altere este endereço para um ip de sua rede)
}

Obs: Neste exemplo teríamos que definir previamente o host chamado "intermediario05", senão ocorreria um erro na inicialização do serviço.

Agora é só preencher os hosts que serão monitorados, aí vai uma dica: para os demais hosts podemos criar sub-definições diferentes como por exemplo /"servidores", "rede interna", "access point", "roteadores" e outros. Assim não só os arquivos como a monitoração da rede ficará mais organizada.

:wq

Criando o hostgroups.cfg:

# vi hostgroups.cfg

Neste arquivo podemos criar vários grupos, isto serve para facilitar na distinção de hosts (quando se tem uma rede muito complexa).

define hostgroup{
   hostgroup_name     switchs ;(nome do grupo)
   alias              Switchs de Borda ;(informação útil sobre o grupo)
   members      switch-sede-terreo ;(nome dos membros deste grupo, não devemos    por espaço e os mesmos devem ser separados por vírgula da seguinte forma:  switch-sede-   terreo, switch-sede-terreo-01)
}

:wq

Criando o hostextinfo.cfg:

# vi hostextinfo.cfg

define hostextinfo{
host_name          switch-sede-terreo ;(É aqui onde a criação de grupos é útil pois podemos tanto adicionar hosts isolados ou grupos de hosts o que poupa tempo)
hostgroup_name   switchs ;(nome do grupo)
name               switchs-borda ;(nome dado ao hostextinfo criado)
icon_image         forecp90.png ;(imagem que aparecerá como ícone)
icon_image_alt     forecp90.png ;(imagem que aparecerá como ícone em mudança de                estado)
statusmap_image    forecp90.png ;(imagem que aparecerá no status map)
2d_coords          100,100 ;(coordenadas para a exibição no status map)
3d_coords          100.0,50.0,75.0 ;(coordenadas para a exibição no 3D map)
}

Obs: Nas coordenadas não é necessário alterar os valores para cada hostextinfo criado. Também é provável que as figuras citadas "forecp90.png" não existam em seu servidor.

As imagens ficam em "/usr/local/nagios/share/images", você pode conseguir mais imagens em http://www.nagiosexchange.org.

Criando o services.cfg:

# vi services.cfg

Aqui iremos proceder da mesma forma do host.cfg, iremos criar os arquivos de forma hierárquica.

;Criando uma definição de serviços:

define service{
        name                                    generic-service
        active_checks_enabled              1      
        passive_checks_enabled            1      
        parallelize_check                      1      
        obsess_over_service               1    
        check_freshness                      0          
        notifications_enabled               1      
        event_handler_enabled            1      
        flap_detection_enabled            1      
        process_perf_data                   1      
        retain_status_information         1      
        retain_nonstatus_information    1      
        passive_checks_enabled           1
        register                                 0      
}

;Criando a sub-definição de serviços:

define service{
use                              generic-service
name                            is-alive ;(nome da sub-definição do serviço)
service_description        Tempo de Resposta ;(Descrição das características do serviço)
check_period                  24x7 ;(Período de checagem,  será definido no arquivo "timeperiods")
max_check_attempts      3
normal_check_interval    3
retry_check_interval       1
contact_groups               dstec-admins ;(grupo definido no contactsgroup para envios de                    notificações)
notification_interval        30
notification_period          24x7 ;(Período de envio de notificações,  será definido no arquivo                "timeperiods")
notification_options         c,r ;(Opções de notificação c=critical, r=recovery)
check_command             check_ping!30,10%!100,40% ;(tempo para checagem de ping)
register                         0
notifications_enabled      1
}


;Definindo formas de checagem de serviços para os hosts:

define service{
        use                                 is-alive ;(sub-definição a ser utilizada)
        hostgroup_name            (Host ou grupo de hosts que serão checados por este serviço)
        host_name                     switch-sede-terreo
        service_description         Tempo de resposta
}

;Também poderá ser acrescentado a linha abaixo (Exemplo):

   check_command               check_oracle_listener!bdjur06 ;(Comando para ser utilizado em   conjunto com o plugin, lembre-se que no nosso caso já definimos isso como sendo ping. )

:wq

Criando o servicesgroups.cfg:

# vi servicesgroups.cfg

define servicegroup{
servicegroup_name  monit-switchs ;(nome do grupo criado, não use espaços)
alias                       Serviços de Monitoramento de Swtich ;(Alias de informação)
members                switch-sede-terreo ;(Nome do membro que foi definido no arquivo hosts.cfg)
}

:wq

Criando o timeperiods.cfg:

Aqui iremos definir os períodos e monitoração e envios de alertas e notificações.

Nota: Observe que em vários arquivos definimos o valor "24x7", isto ocorreu apenas para ficar mais intuitivo (24 horas e 7 dias por semana). Assim você poderia colocar qualquer outro nome, desde que crie o mesmo no arquivo "timeperiods".

# vi timeperiods.cfg

define timeperiod{
timeperiod_name   24x7 ;(nome do timeperiod)
alias               Horário de funcionamento da minha rede ;(alias de informação)
monday          00:00-24:00 ;(monitora na segunda-feira das 0 às 24)
tuesday          00:00-24:00 ;(monitora na terça-feira das 0 às 24)
wednesday   00:00-24:00 ;(monitora na quarta-feira das 0 às 24)
thursday       00:00-24:00 ;(monitora na quinta-feira das 0 às 24)
friday           00:00-24:00 ;(monitora na sexta-feira das 0 às 24 )
}

Caso você possua uma parte da rede a qual não quer que seja monitorada num determinado horário, dia ou uma combinação dos dois, este é o arquivo onde se configura isto, basta adicionar outro período de monitoramento.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalando o Apache
   3. Primeiras configurações
   4. Demais configurações
   5. Criando os arquivos de configuração
   6. Testando o funcionamento
   7. Utilizando pacotes RPM
Outros artigos deste autor

Instalando e configurando o BackupPC

Instalando a ferramenta CACTI

Leitura recomendada

VPN no CentOS 5 - via Yum

Instalando o VirtualBox no Ubuntu 10.04

Pebrot: Um cliente MSN (modo texto) muito eficiente

Asterisk 1.6 com MD3200 em Linux Ubuntu Server 8.10

Instalação do Ambiente .NET (#C) no Slackware 15.0

  
Comentários
[1] Comentário enviado por fisicorj em 21/07/2007 - 10:31h

Valeu pelo tuto. estava querendo colocar esse serviço no meu server...

[2] Comentário enviado por Ricardo Coelho em 21/07/2007 - 11:24h

Parabéns pelo tuto. É por isso que esse mundo free é show...

[3] Comentário enviado por ikamig em 23/07/2007 - 09:38h

Grande Danilo!!
Mandou muito bem no Artigo! Nota 10!
Parabéns!!!!
Ficou muito bem descrito e explicado! Quem quiser instalar o Nagios em sua rede vai conseguir colocar o sistema no ar já com uma grande quantidade de informações por este artigo.
Fico aguardando agora um artigo parecido sobre o MRTG, CACTI e ZABBIX.
ehehehehehe

Abraços

[4] Comentário enviado por danilo.roger em 24/07/2007 - 10:58h

Aí meus amigos uma breve correção:

Na parte:

Entre em /usr/local/nagios:

# cd /usr/local/nagios
# chown -R nagios.nagios *
# chmod -R 644

A ultima linha deverá ser "chmod -R 644 etc/" , foi um erro de digitação .... mas tá aí a forma certa! Desculpem!

[5] Comentário enviado por juno em 24/07/2007 - 12:34h

Parabéns
Danilo,
Muito bom seu tutorial, mas eu venho de um gerenciador mais simples o bigbrother (que tenho que instalar um cliente dele nas máquinas que quero monitorar) e quero trocá-lo pelo nagios; um passo que não observei , talvez porque não precise é a configuração do lado do cliente; gostaria de mais detalhes à respeito.
Abraços,
Juno

[6] Comentário enviado por rodrigosrossi em 24/07/2007 - 16:54h

muito legal adorei o tutorial :D
valew ae me ajudo mt.
falow.

[7] Comentário enviado por martintec em 25/07/2007 - 18:55h

?comentario=

amigao nao sei se o e apache ou se fiz algo errado mas nao ta rolando

qdo clico nos links ao lado ex: view config ele pede uma senha e depois da erro na pagina

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


uso debian 4 + nagios2 e apache2.


Grato

[8] Comentário enviado por danilo.roger em 30/07/2007 - 16:45h

Caro martintec, já tive uma breve experiencia com o apache no Debian, achei um pouco mais complexo a forma como são ditribuídos os arquivos, prometo-lher passar uma resposta mais consistente, mas por enquanto peço-lhe para verificar as propriedades dos arquivos, deverão estar todos nagios.nagios desde a pasta inicial como cito no arquivo.

Até breve.

[9] Comentário enviado por lipecys em 20/02/2008 - 16:13h

Valeu pelo artigo, muito bom.

[10] Comentário enviado por pedro.es em 16/04/2008 - 16:52h

Prezados Senhores, algum de voces. Tem o tuto para instalar no servidor windows, estou usando outros programas com o xampp.

[11] Comentário enviado por vitormicillo em 30/07/2008 - 14:48h

Danilo, sei que faz um certo que você escreveu este artigo sobre o nagios, entratanto estou tendo algumas dificuldades em acessar ele de outro computador.
na máquina local esta perfeito, porem ao entrar em outro pc pela rede ele me posta a seguinte mensagem:

You don't have permission to access /nagios/ on this server.

Sei que deve ser algo no apache, mas não encontro a solução, será que pode me ajudar. Utilizo o Fedora 8

[12] Comentário enviado por danilo.roger em 06/08/2008 - 12:00h

Cara desculpa pela demora na resposta mas analise o seguinte:
No apache dentro da tag "Directory temos um linha assim:
"Allow from all" esta linha é que permite o acesso de qualquer maquina ao servidor http.

Se nesta linha por exemplo tiver assim:

Allow from 127.0.0.1

Apenas a maq local poderá acessar e as demais não. Verifique isso e me dê um retorno.

[13] Comentário enviado por rosario em 01/11/2008 - 11:46h

Bom dia Amigo.

Muito legal o seu Tutorial.

Mas como eu sou novato na area do Linux e ainda estou em fase de apredizagem estou com um problema que eu acredito que seja simples maas devido o meu pouco conhecimento neste sistema Operacional não estou conseguindo resolver.

Vamos lá:

Realizei todo o seu Tutorial.

Na hora que estou executando o comando:
"./nagios -v /usr/local/nagios/etc/nagios.cfg" está me retornado a mensagem "bash: ./nagios: Permissão negada".

Como que eu posso resolver este error?

Desde já agradeço.

Se alguem ler este tópico e poder me ajudar o meu msn é jferosario@hotmail.com.


[14] Comentário enviado por sandrocarva em 20/11/2008 - 11:27h

Mesma situação do Rosario, alguem pode nos ajudar?

[15] Comentário enviado por sandrocarva em 20/11/2008 - 11:35h

Rosario,
corrigi esse erro dando permissao de execução para o arquivo /usr/local/nagios/bin/nagios.

tenta isso

[16] Comentário enviado por danilo.roger em 20/11/2008 - 14:33h

Sim Sandrocarva esta é a solução correta. quanto ao amigo Rosario respondi a duvida dele diretamente por e-mail, porém faltou tempo para postar aqui na comunidade. Mas sua solução deverá ser tomada por todos que tiverem estas mesmas dificuldades.

[17] Comentário enviado por rodrigo.sanbuin em 24/12/2008 - 13:26h

Amigos,

Meu servidor Nagios esta aparecendo a seguinte mensagem quando autentico com nagiosadmin e password:

"Forbidden

You don't have permission to access /nagios/ on this server.

Apache/2.2.8 (Ubuntu) Server at localhost Port 80"


Notei que alguem postou essa dúvida no forum, porêm esse problema acontece no PROPRIO SERVIDOR e não nas maquinas que querem conectar via http://, será que alguem poderia me ajudar nessa questão?

Obrigado e um Feliz Natal a todos


Rorigo


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts