Monitoração de Hosts e Serviços com o NAGIOS

Uma das maiores dificuldades de administradores de redes em ambientes com S.O.´s diversificados e críticos, é a monitoração de hosts e serviços. Por isso, elaboramos um artigo que visa ir um pouco mais a fundo na configuração do Nagios, ajudando iniciantes e experientes a tirar proveito desta consagrada ferramenta.

[ Hits: 122.155 ]

Por: Gilberto Russo em 23/09/2006


Apresentação e instalação



O NAGIOS é um programa de monitoramento de Rede independente de plataforma ou equipamento. Com ele é possível verificar o status de equipamentos ou de toda a rede. Também é possível criar grupos de usuários para receber determinados alertas.

Sistema Operacional: Linux
Mandriva Linux release 2006.0 for i586
Kernel 2.6.12-12mdk on an i686

Ambiente de Teste: Celeron 1.8, 512 RAM, HD 40GB

Pré-Requisitos:
  • Servidor Apache com suporte a CGI
  • Bibliotecas de Imagem para o Status Map (Mapa da Rede)
  • Plugin de VRML no Browser para o 3D- Status Map

Instalação
Instalando Servidor Apache 2.0 no Mandriva

Instale o servidor Web Apache através dos repositórios do Mandriva. Caso desejar poderá instalar o apache através do fonte.

# urpmi apache-modules-2.0.54-13mdk apache-conf-2.0.54-12mdk apache-mpm-prefork-2.0.54-13mdk apache-base-2.0.54-13mdk

Instalando as bibliotecas necessárias de imagem:

# urpmi libgd2 libgd2-devel libpng3 libpng3-devel libjpeg62 libjpeg62-devel zlib1 zlib1-devel

Lista de pacotes das bibliotecas de imagem:

libexpat0-devel-1.95.8-1mdk.i586
libfontconfig1-devel-2.3.2-5mdk.i586
libfreetype6-devel-2.1.10-8mdk.i586
libgd2-2.0.33-3mdk.i586
libgd2-devel-2.0.33-3mdk.i586
libjpeg62-devel-6b-37mdk.i586
libpng3-devel-1.2.8-1mdk.i586
libxorg-x11-devel-6.9-1.cvs20050915.2mdk.i586
libxpm4-devel-3.4k-31mdk.i586
pkgconfig-0.19-2mdk.i586
zlib1-devel-1.2.3-1mdk.i586

Antes de prosseguir a instalação e configuração do Nagios, certifique-se que o servidor Apache está no ar, checando o estado da porta 80:

# netstat -anp | grep -w 80
tcp     0   0 0.0.0.0:80    0.0.0.0:*     OUÇA    3955/httpd

Obtendo o código fonte


Acesse o site oficial do Nagios para realizar o download da versão mais recente do Nagios:
Esse manual está baseado na versão 2.4 lançada dia 31 de maio de 2006.

Você poderá também usar o comando wget para baixar o código fonte direto no servidor caso o mesmo não possua interface gráfica habilitada.

# wget http://superbeast.dl.sourceforge.net/sourceforge/nagios/nagios-2.4.tar.gz

Compilando o Nagios


Antes de descompactar o código fonte do Nagios e realizar a compilação é necessário criar o usuário e grupo que irão controlar os processos desse serviço já definindo o home do mesmo como sendo o diretório onde o Nagios será instalado:

# adduser nagios -d /usr/local/nagios

CheckList:

# tail -1 /etc/passwd
# tail -q /etc/group
# ls -ld /usr/local/nagios


Descompacte o arquivo do código fonte na pasta /usr/local/src por ser a pasta mais indicada pela FHS (File Hierarchy Standard) para armazenamento de fontes:

# tar -xvzf nagios-2.4.tar.gz -C /usr/local/src/
# cd /usr/local/nagios-2.4


Iremos compilar o Nagios sem suporte a banco de dados, então temos apenas que definir algumas informações referente a localizações.
  • --prefix=/usr/local/nagios -> Diretório de Instalação
  • --with-nagios-user=nagios -> Usuário do Nagios
  • --with-nagios-grp=nagios -> Grupo do Nagios
  • --with-cgiurl=/nagios/cgi-bin -> Endereço das páginas CGI's
  • --with-htmurl=/nagios -> Endereço da url principal.

# ./configure --prefix=/usr/local/nagios \
--with-nagios-user=nagios \
--with-nagios-grp=nagios \
--with-cgiurl=/nagios/cgi-bin \
--with-htmurl=/nagios


OBS: Preste atenção enquanto o "configure" checa todas as dependências, pois caso falte alguma ele mostra uma mensagem de aviso na tela.

Para prosseguir a instalação verifique se as informações de instalação foram definidas corretamente. Exemplo:

*** Configuration summary for nagios 2.4 05-31-2006 ***:

 General Options:
 -------------------------
        Nagios executable:  nagios
        Nagios user/group:  nagios,nagios
       Command user/group:  nagios,nagios
            Embedded Perl:  no
             Event Broker:  yes
        Install ${prefix}:  /usr/local/nagios
                Lock file:  ${prefix}/var/nagios.lock
           Init directory:  /etc/rc.d/init.d
                  Host OS:  linux-gnu

 Web Interface Options:
 ------------------------
                 HTML URL:  http://localhost/nagios/
                  CGI URL:  http://localhost/nagios/cgi-bin/
 Traceroute (used by WAP):  /usr/sbin/traceroute

Caso alguma informação acima esteja errada, você poderá executar o comando "make clean" e repetir o processo de checagem com o configure.

Para concluir a instalação você deverá executar os seguintes comandos:

Criação dos binários do nagios:

# make all

Instalação dos binários no diretório /usr/local/nagios:

# make install

Instalação do script de inicialização:

# make install-init

Configuração das permissões para os arquivos de comando:

# make install-commandmode

Criação dos arquivos de configuração (/usr/local/nagios/etc):

# make install-config

Instalando os plugins do Nagios


Plugins são basicamente executáveis compilados ou scripts, desenvolvidos em Perl, Shell e etc que podem ser executados na linha de comando para checar o status de um cliente ou um serviço. O Nagios usa o resultado dos plugins para determinar o status atual dos clientes e serviços da rede. Nagios sem plugins não tem utilidade nenhuma.

No site oficial do Nagios você poderá obter o pacote básico de plugins do Nagios. Estarei nesse manual usando a versão 1.4 dos plugins:

# wget -r http://ufpr.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.3.tar.gz

Descompacte o source dos plugins no diretório /usr/local/src para manter um padrão de File System:

# tar -xvzf nagios-plugins-1.4.3.tar.gz -C /usr/local/src

Compilação dos plugins oficiais do Nagios:

# cd /usr/local/src/nagios-plugins-1.4.3/
# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-grp=nagios
# make all
# make install


CheckList:

# ls /usr/local/nagios/libexec

Todos os plugins instalados do Nagios deverão ficar no diretório /usr/local/nagios/libexec sempre com o prefixo "check".

Exemplos:
  • check_ping - Plugin para checar se um host está ativo.
  • check_ssh - Plugin para checar se a porta do ssh está ativa.
  • check_http - Plugin para checar se a página web está no ar.
  • check_dns - Plugin para checar se o DNS está resolvendo nome.

No site www.nagiosexchange.org existem vários plugins desenvolvidos pela Comunidade Software Livre. Alguns exemplos estarão sendo configurados mais adiante.

    Próxima página

Páginas do artigo
   1. Apresentação e instalação
   2. Configuração
   3. Testando e agradecimentos
Outros artigos deste autor

Proxy reverso e balanceamento de carga utilizando o Pound

Instalando o Squid + SquidGuard

Acesso remoto utilizando FreeNX

Osiris - Integridade do sistema de arquivos

ISCSI - Um sistema de transferência de arquivos diferente

Leitura recomendada

Configurando o CACIC (parte 3)

Instalando Slackware 11.0 em um pendrive

Enlightenment DR17 - A evolução

Instalando servidor Debian - Memento

Configurando servidor MikroTik com Hotspot e páginas de aviso (atraso e bloqueio)

  
Comentários
[1] Comentário enviado por coffani em 23/09/2006 - 17:45h

Esse tuturial era tudo q eu estava precisando, parabens pelo material..

[2] Comentário enviado por pilao51 em 23/09/2006 - 22:46h

Olá, meu nome eh Paulo e ja tenho artigo publicado no VOl, e estava pensando em publicar algo sobre Nagios, mas esse aqui escrito pelo Gilberto Russo, eh o melhor e mais completa artigo sobre nagios q. ja encontrei, muito mais q. nota 10, depois deste nem me atrevo a escrever algo. Parabens mesmo.
Paulo (pilao51)

[3] Comentário enviado por MarioJE em 24/09/2006 - 02:06h

Não é por nada não, mas aqui não carregou.

Apareceu {PAGINATITULO}, {TEXTO} e {PAGINAS}, no lugar do título, do artigo e a lista das páginas.

O que houve??

[4] Comentário enviado por megatux em 24/09/2006 - 03:30h

Estou com o mesmo problema do amigo MarioJE ...

[5] Comentário enviado por marcelovoax em 24/09/2006 - 18:19h

Não vejo nada tb, sera que etou cego?

[6] Comentário enviado por gilberto.russo em 24/09/2006 - 18:50h

Senhores,

parece que está realmente com problemas, vou entrar em contato com o Fabio de Paula (Administrador do Viva o Linux.

Gilberto Russo

[7] Comentário enviado por pilao51 em 25/09/2006 - 14:53h

Para que o Nagios possa enviar e-mails notificando caso algum hosts monitorado apresente problemas, você deverá criar um checkcommand no arquivo checkcommands.cfg. Para isso adicione as seguintes linhas no final do arquivo:

# vi checkcommands.cfg

Ta faltando as linhas para inserir no checkcommands.cfg , vc. pode me mandar.
Paulo (pilao51)

[8] Comentário enviado por fenunes em 25/09/2006 - 17:07h

Outra dica;

Caso você adicione um número grande de monitorações é necessário a instalação de um Banco de Dados.
Eu por exemplo utilizo este sistema de monitoração e uso uma máquina para rodar a aplicação do Nagios e outra pro banco MySQL.
É importante isso para ter um bom desempenho dos dados.

[9] Comentário enviado por pdjailton em 23/11/2006 - 15:11h

voce colocou servicos como o espacço em disco que verificam o espado do disco local, certo! Gostaria de saber como que faço para rodar estes serviços que voce colocou neste artigo em maqinas remotas.

é que eu tenho varios servidores e gostaria de implementar alguns serviços ( como o espaço em disco ) para verificar isso neles, de preferencia atraves do uso do snmp.

sera q pode me ajudar?

[10] Comentário enviado por claytonbh em 14/06/2007 - 16:25h

parabens e otimo tutorial, vc esclareceu algo que muitos nao fizeram que foi a explicação sobre o arguivo nagios.cfg que controla os arquivos como services e comands.

[11] Comentário enviado por removido em 19/06/2007 - 21:01h

Olá gostaria de saber se alguem sabe como alterar o check_command definido no hosts.cfg para utilizar o check_nrpe ao inves do check-host-alive. Já criei o comando no checkcommands.cfg como abaixo e a config do hosts.cfg:

CHECKCOMMANDS.CFG

define command{
command_name check_nrpe1
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c SERVNRPE
}

HOSTS.CFG

define host{

notifications_enabled 0
event_handler_enabled 1
flap_detection_enabled 1
host_name Host1
alias CPU
parents SERVER1
check_command check_nrpe1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
register 0
max_check_attempts 3
notification_interval 30
notification_period 24x7
notification_options d,u,r
address XX.XX.XXX.XX
}

O nagios não está execuntando o comando. O Status do host ficam sempre como pendente.

[12] Comentário enviado por agimenez em 19/10/2007 - 19:02h

Tudo funcionou, só q não recebo a notificação via e-mail!!!

Alem de tudo isso, preciso instalar/ou configurar serviço de e-mail??

Obrigado

[13] Comentário enviado por leandroalos em 22/10/2007 - 16:11h

Alguem sabe como definir os icones de todos os hosts atraves da identificacao apenas do hostgroups?

[14] Comentário enviado por fontebon em 16/01/2008 - 11:31h

Qual MTA devo usar para o envio de e-mail? Exim4?

Alguem tem algum macete para funcionar o envio de e-mail do nagios?


[15] Comentário enviado por urielpunk em 04/05/2009 - 09:15h

Dica*
Para quem não tem costume vale pena lembra que httpd faz link para /etc/httpd/conf.d/nagios.conf

Se reparar no final do # vi /etc/http/conf/httpd.conf tera a linha de comando # Include /etc/httpd/conf.d/nagios.conf, que seria local correto para configurar Nagios Web.

[16] Comentário enviado por vanvanredes em 28/10/2014 - 21:53h

Boa Noite!!!

Estou aki meio que perdida fiz a instalação do nagios e quando adiciono o host o status aparece down alguém ai pode me ajudar??


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts