Monitorando redes e servidores com Nagios

Um dos melhores programas de monitoramento de hosts e serviços open source é o Nagios, essa incrível e, a princípio, complicada ferramenta. Existe muita documentação sobre o Nagios, porém poucas reúnem todo o processo, desde a instalação, configuração e testes. Por isso, depois de enfrentar dificuldades, resolvi publicar minhas descobertas.

[ Hits: 187.268 ]

Por: Ricardo Gavioli em 07/07/2007


Apresentação e motivação



Muitos administradores e estudantes ouvem falar (bem) sobre o Nagios. Porém, as corretas instalações e configurações nem sempre são alcançadas, devido ao grande número de funções e serviços que o Nagios oferece.

Depois de apanhar muito durante a instalação e, principalmente, na configuração dessa ferramenta, resolvi fazer um apanhado de todos os meus passos para chegar até um sistema de monitoramento e notificações otimizado e bem configurado.

Preparação do ambiente

Este artigo foi estruturado utilizando:
  • Pentium 4 3.0 GHz
  • 512MB RAM
  • HD 40GB
  • Linux Debian Etch
  • Nagios 2.9
  • Apache2

Antes de iniciarmos os trabalhos com o Nagios, primeiro devemos realizar a preparação do ambiente, para que não tenhamos problemas futuros nem necessidades de recompilação.

O Nagios é uma ferramenta para uso totalmente via Web. Por isso é importante que seu Apache esteja instalado e funcionando, assim como seu MTA (para envio das notificações).

Para o correto funcionamento do Nagios, é importante que os seguintes pacotes estejam instalados:
  • openssl (para monitoramento de hosts remotos)
  • libssl-dev (para compilação do NRPE, explicado adiante)
  • mcrypt (criptografia de envio dos dados remotos)
  • build-essential (para compilação dos pacotes)
  • nmap (para testes das portas)
  • xinetd (para iniciar o serviço NRPE)
  • apache2 (óbvio)
  • gd (para geração dos mapas de status)
  • libjpeg e libpng (criação das imagens dos mapas)

No Debian:

# apt-get install openssl libssl-dev mcrypt build-essential nmap xinetd apache2 libjpeg62 libjpeg-dev libpng12-0 libpng12-dev libgd2-xpm libgd2-xpm-dev fontconfig

Pacotes Nagios

Utilizaremos nessa instalação três pacotes fornecidos no site www.nagios.org/download:
  • nagios-2.9
  • nagios-plugins-1.4.9
  • nrpe-2.8.1

Abaixo os links para download desses pacotes. Se esses links estiverem quebrados, acesse o site www.nagios.org/download e baixe a última versão destes.

Nagios:
Nagios Plugins:
NRPE:
Antes de começar, precisamos também criar o usuário e os diretórios que serão utilizados.

Adicionar usuário nagios:

# adduser nagios

Criar o diretório de instalação:

# mkdir /usr/local/nagios

Acertar a permissão no diretório:

# chown -R nagios. /usr/local/nagios

Criar o grupo de acesso via Web:

# groupadd nagcmd

Definir os usuários do Apache e Nagios como integrantes desse grupo:

# usermod -G nagcmd www-data (verifique se esse é o seu usuário do Apache2)
# usermod -G nagcmd nagios

    Próxima página

Páginas do artigo
   1. Apresentação e motivação
   2. Mãos à obra
   3. Instalação dos plugins e NRPE
   4. Configurando o Nagios
   5. Iniciando pela primeira vez
   6. Configurando o Apache
   7. Onde está a dificuldade?
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Podman - um mecanismo de contêiner sem daemon

Santos Dumont - Pioneiro do Opensource no Brasil

Utilização e instalação do Litrix Live CD

Soluções: open source ou proprietária? Salada mista!

Dropbox - Integração em multiplataformas

  
Comentários
[1] Comentário enviado por removido em 07/07/2007 - 10:56h

Muito bom, esta favoritado
:D

Att

RaFaBRA

[2] Comentário enviado por augustoferronato em 09/07/2007 - 09:30h

Amigo, estou com este problema

It appears as though you do not have permission to view information you requested...

If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI
and check the authorization options in your CGI configuration file.

Não consigo acessar arquivos de configuração.

Você poderia me ajudar?

Att
Augusto

[3] Comentário enviado por cppatricio em 10/07/2007 - 18:04h

Mandou bem hein Gavioli,

Muito bom o artigo.

Parabéns....

[4] Comentário enviado por rgavioli em 10/07/2007 - 23:34h

Olá Augusto!
você descomentou no arquivo cgi.cfg as linhas de autorização ?
#authorization_*=nagiosadmin

Se sim, apesar de não ser necessário, coloque no diretório /usr/local/nagios/libexec as permissões para o grupo nagcmd:
chgrp -R nagcmd /usr/local/nagios/libexec

Qq coisa, avise !
RGavioli

[5] Comentário enviado por rgavioli em 10/07/2007 - 23:36h

Valeu Clayton,
contei com ajuda de algumas pessoas, claro... pra desenvolver esse artigo!
Obrigado ao Fabio Munhoz que me ajudou nas experiências, e ao Fabiano Rodrigues, com a motivação !!!

[6] Comentário enviado por dani_menezes em 17/07/2007 - 14:58h

opa ... tive problemas para extrair o nrpe ...

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error exit delayed from previous errors

qq faltou??

[7] Comentário enviado por dani_menezes em 17/07/2007 - 15:39h

descobri .. eheheh .. tava usando o DAP pra baixar os arquivos .. nao sei pq mas ele corrompia os arquivos. agora ta blz.

[8] Comentário enviado por rgavioli em 17/07/2007 - 15:42h

Olá Daniel.
Provavelmente o arquivo está corrompido... tente baixar direto via WGET no Linux:
# wget http://ufpr.dl.sourceforge.net/sourceforge/nagios/nrpe-2.8.1.tar.gz

Ricardo Gavioli

[9] Comentário enviado por steve_harris em 10/08/2007 - 17:31h

boa tarde, ao instalar o nrpe (./configure) funciona normal, mas qnd faço o make all da o seguinte erro.

steve@ibmserver:/tmp/nagios/nrpe-2.8.1$ sudo make all
make: *** Sem regra para processar o alvo `all'. Pare.

No aguardo de respostas!!!!!!!!!!!!!!!!!!!!!1

[10] Comentário enviado por jmsmaster em 16/08/2007 - 18:37h

Olá pessoal,

A configuração do arquivo hostgroups.cfg não deve conter a linha

contact_groups <grupos_que_fazem_parte>, esta linha deve estar no arquivo hosts.cfg, para cada host configurado.

Quebrei a cabeça para fazer funcionar isso, até encontrar esta solução.

Att.

Josue






[11] Comentário enviado por _holtz_ em 14/09/2007 - 11:41h

Bom dia! Pessoal, Meu Nagios tah funcionando legal, o problema eh que as notificações geradas não estão sendo enviadas para meu e-mail. To usando o exim4, ao usar # echo "teste de envio" | mail -s "teste de envio" meu_e-mail@gmail.com, consigo receber a msg, porém, as notificações no nagios não chegam em meu e-mail. No arquivo contacts.cfg, tah habilitado notify-by-email. Se alguem puder me ajudar eu ficaria agradecido. Obrigado
Att,

Marcelo Holtz

[12] Comentário enviado por rgavioli em 14/09/2007 - 13:22h

Olá holtz,
dê uma olhada no arquivo commands.cfg, na seção #notify-by-email.
Dentro dessa seção, existe a linha "command_line", que é onde fica o comando para envio do e-mail e as variáveis que serão enviadas na mensagem. Pode ser que o comando de envio de e-mail não seja suportado na sua distro.
Fica assim:
command_line /usr/bin/printf "%bla bla bla bla | /usr/bin/mail -s bla bla bla...
De uma olhada com cuidado nessa linha, para não alterar no lugar errado... faça um backup desse arquivo antes de alterar.

Boa sorte.
Ricardo Gavioli

[13] Comentário enviado por _holtz_ em 15/09/2007 - 15:00h

Blz Ricardo, vo dar uma olhada nesse arquivo, aliás, vo olhar de novo, pra ver se não tem nada errado. O estranho é pq to usando Debian etch e Nagios 2.9, assim como seu artigo, porém sem sucesso no envio de e-mails.
Obrigado pela atenção. Vo olhar e posto aqui o resultado e uma possível dúvida. Vlw de novo!

Marcelo Holtz

[14] Comentário enviado por _holtz_ em 18/09/2007 - 12:28h

Bom dia Gavioli, seguinte: Problema resolvido, modifquei o comando Info:\n\n$SERVICEOUTPUT$" | /bin/mail -s "** $NOTIFICATIONTYPE$ alert , o que fez funcionar foi especificar todo o caminho do diretorio depois do pipe, ficando assim | /usr/bin/mail -s. Valeu pela ajuda! Estou com uma outra duvida, o arquivo nagios.cmd, existente /nagios/var/rw/ é deletado toda vez que o nagios é reiniciado, e isso faz com que as permissões de escrita sejam alteradas. Quando vou tentar editar algum arquivo utilizando a interface web, dá erro de permissão desse arquivo. Já utilizei o comando "chown nagios. /usr/local/nagios/var/rw" porém isso não resolveu o problema. Tentei alterar algumas linhas no script de inicialização no Nagios, mas sem sucesso. Alguma solução? Obrigado


Marcelo Holtz

[15] Comentário enviado por diramos em 23/01/2008 - 19:40h

Ricardo.
Ótimo artigo.
Mas tenho uma configuração "extra" a fazer no Nagios que instalei na minha empresa.
É referente à notificação por email.
Por questão de segurança, as caixas postais de email da empresa são configuradas para receber emails somente de contas padrões e previamente cadastradas.
O Nagios tem enviado notificações por email usando o remetente "nagios@mail.meuprovedor".
E as mensagens são barradas pelo Exchange, pois deveira ser no formato de exemplo assim: "diramos@mail.meuprovedor".
Então, a pergunta é: onde eu configuro isso?
Tente mudar o user no nagios.cfg para o padrão nosso e deu erro. Nem carregou o Nagios.
Se puder responder, fico devendo essa.

Abraço

Diramos

[16] Comentário enviado por smurf_o em 03/04/2008 - 19:58h

Valeu pela dica cara, vou testar e ver se esta tudo ok.

Um Abraço

[17] Comentário enviado por luizgalssa em 07/07/2008 - 13:54h

Poxa, excelente artigo.
Desde já informo que já faz parte de minhas páginas Favoritas.
Mantenha sempre esta qualidade.
Abraço.

[18] Comentário enviado por l-x em 26/08/2008 - 16:26h

Cara, pelo post.

Mas estou com um problema esquisito:

qnd eu rodo o ./configure no NRPE ele acusa esse erro:

"checking for SSL... configure: error: Cannot find ssl libraries"

Tentei de várias forma configurar o ssl, mas ele ta redondo. O q posso fazer a respeito?????

[19] Comentário enviado por jgaleti em 09/10/2008 - 16:10h

Aos colegas que estao com dificuldades ao instalar o NRPE, e que estão com problemas com SSL, se estiverem usando o debian ou qualquer derivado dele instalem uma dependencia:
apt-get install libssl-dev
Após instalar entre no diretorio e rode o ./configure e depois o make e os outros comandos do tutorial.
Espero uma resposta positiva de vocês: steve_harris e l-x.

Saudações.

[20] Comentário enviado por donabuba em 15/10/2008 - 15:52h

Olá.
Em minha rede, tenho +/- 200 máquinas sendo monitoradas, por isso, e grande a avalanche de e-mails com notificações.
Gostaria de filtrar essas notificações para que sói sejam enviadas as referentes aos servidores mais importantes da minha rede.
Obrigada.

[21] Comentário enviado por diegoaraujo9 em 05/12/2008 - 10:33h

oi,

dei make install em todos os arquivos e tudo foi compilado corretamente, exceto para o xinetd.d, que apresentou a seguinte mensagem:

impossível criar arquivo comum `/etc/xinetd.d/nrpe': Arquivo ou diretório não encontrado

o que devo fazer?

Obrigado.

[22] Comentário enviado por ashmsx em 14/07/2009 - 11:05h

aqui deu erro na hora do ./configure, rodei o comando abaixo e deu certo flw

root@bond:/home/nagios-1.2# ./configure --prefix=/usr/local/nagios \
--with-nagios-user=nagios \
--with-nagios-grp=nagios \
--with-cgiurl=/nagios/cgi-bin \
--with-htmlurl=/nagios \

[23] Comentário enviado por geber em 20/08/2009 - 19:01h

Olá, alguém pode me ajudar?

Ao acessar a página do Nagios aparece a msg: "It appears as though you do not have permission to view information for any of the hosts you requested... If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI
and check the authorization options in your CGI configuration file."

Já tentei todas as soluções enviadas, mas nenhuma funcionou. Reparei também que após fazer o logon aparece a seguinte informação:

Current Network Status
Last Updated: Thu Aug 20 18:27:45 BRT 2009
Updated every 90 seconds
Nagios® Core™ 3.2.0 - www.nagios.org
Logged in as ? >>>>>>>>>> não aparece a minha conta


Segue abaixo minhas configurações:
Estou utilizando o Debian 5.0.

CGI.CFG:

todos os authorized com nagiosadmin ( authorized_for_system_commands=nagiosadmin )

Pasta /usr/local/nagios:
- dono: nagios
- grupo nagcmd

Agradeço a ajuda!


[24] Comentário enviado por poti em 28/08/2009 - 13:50h

Olá, ao testar a configuração estou tendo o seguinte erro:

Warning: Duplicate definition found for command 'check_http' (config file '/usr/local/nagios/etc/objects/commands.cfg', starting on line 241)
Error: Could not add object property in file '/usr/local/nagios/etc/objects/commands.cfg' on line 242.
Error processing object config files!
Abraços
t+

[25] Comentário enviado por ticopan em 14/09/2009 - 14:04h

Boa tarde... se alguém puder me ajudar com o Nagios eu agradeço. Ao tentar iniciar o Nagios pelo comando: /nagios/bin/nagios -v /nagios/etc/nagios.cfg

Ele me apresenta o seguinte erro:
Error: Could not add object property in file '/nagios/etc/hosts.cfg'

Abaixo segue o conteúdo do arquivo hosts.cfg:

################################################################################
# Sample object config file for Nagios
#
# Read the documentation for more information on this configuration file. I've
# provided some comments here, but things may not be so clear without further
# explanation, so make sure to read the HTML documentation!
#
# Last Modified: 03-10-2002
#
################################################################################


################################################################################
# HOST DEFINITIONS
#
# SYNTAX:
#
################################################################################

# Generic host definition template
define host{
name generic-host ; The name of this host template - referenced in other host definitions, used for template recursion/resolution
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 information across program restarts
retain_nonstatus_information 1 ; Retain non-status information across program restarts

register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
}

# 'Localhost' host definition
define host{
use generic-host ; Name of host template to use

host_name localhost
alias localhost
address 127.0.0.1
check_command check-host-alive
max_check_attempts 10
notification_interval 120
notification_period 24x7
notification_options d,r
contact_groups admins
}

[26] Comentário enviado por fferreira1982 em 22/01/2010 - 13:28h

boa tarde a todos,

Alguem poderia me ajudar?

Acabei e configurar o Nagios em um PC simples para testes e estou com o seguinte problema.

Not Found

The requested URL /nagios was not found on this server.
Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny4 with Suhosin-Patch Server at <meu ip> Port 80

Aguardo contato,
Muito Obrigado
Atenciosamente
Felipe Ferreira


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts