Nagios + NagiosQL + PNP4Nagios

Este procedimento tem como objetivo a instalação da aplicação Nagios versão 3.2.1 para monitoração de servidores juntamente com a interface de configuração NagiosQL versão 3.0.3. O PNP4Nagios é utilizado para mensurar capacidade através de gráficos dos dados de performance do próprio Nagios e (opcional) o NDOUtils para a gravação dos dados de coleta do Nagios em MySQL.

[ Hits: 88.273 ]

Por: Tiago MDR em 24/09/2010


Opcional - NDOUtils (versão 1.4b9)



O módulo do NDOUtils permite a exportação dos dados atuais e históricos de uma ou mais instâncias do Nagios para um banco de dados MySQL e isso é totalmente opcional.

# cd /usr/local/src
# wget
http://prdownloads.sourceforge.net/sourceforge/nagios/ndoutils-1.4b9.tar.gz

# tar -xzf ndoutils-1.4b9.tar.gz
# cd ndoutils-1.4b9
# vi README

# ./configure --prefix=/usr/local/nagios/ --enable-mysql --disable-pgsql --with-ndo2db-user=nagios --with-ndo2db-group=nagios
# make
# make install
# make install-init


Por padrão o make install instalará o ndo2db para a instalação do Nagios 3.

Iniciando o banco de dados

Atualmente o NDOUtils suporta somente o MySQL como banco de dados. Recomenda-se a utilização do phpmyadmin para a próxima etapa (aptitude install phpmyadmin).

1. Crie um banco de dados chamado "nagios" ou qualquer outro nome.

2. Adicione um usuário que tenha privilégios SELECT, INSERT, UPDATE e DELETE no banco de dados criado.

3. Execute o script de instalação para criar as tabelas necessárias ao banco de dados para trabalhar com o daemon do NDO2DB. O script para fazer isso (installdb) pode ser encontrado no subdiretório /db do distribuição NDOUtils.

# cd db/
# ./installdb


Configuração:

É hora de configurar o componente addon do NDOUtils. Configurações de exemplo estão incluídas no subdiretório config/ da distribuição NDOUtils.

1. Adicione a seguintes entrada no arquivo principal de configuração do Nagios (/usr/local/nagios/etc/nagios.cfg).

broker_module=/usr/local/nagios/bin/ndomod.o config_file=/usr/local/nagios/etc/ndomod.cfg

2. Instale os arquivos de configuração de exemplo do NDOUtils:

# cd ..
# make install-config


Isto instalará a os arquivos de configuração da distribuição para o sysconfdir (normalmente /usr/local/nagios/etc) como <nomearquivo>-sample.cfg.

Isto irá prevenir sobrescrever as mudanças pessoais. Depois adapte suas mudanças pessoais para o novo arquivo de configuração criado e então os renomeie:

# mv /usr/local/nagios/etc/ndomod.cfg-sample /usr/local/nagios/etc/ndomod.cfg
# mv /usr/local/nagios/etc/ndo2db.cfg-sample /usr/local/nagios/etc/ndo2db.cfg


3. Edite os arquivos de configuração ndomod.cfg e ndo2db.cfg para sua instalação, ou seja, especificar nome do banco de dados, prefixo, usuário/senha etc.

4. Certifique-se que a seguinte entrada esteja no arquivo de configuração do Nagios (nagios.cfg).

event_broker_options=-1

Se esta opção não estiver especificada, o Nagios pode não passar os dados para armazenar no banco de dados.

DICA: Para ajudar na performance geral deve-se pensar quais dados são realmente necessários do NDOUtils.

O Nagios por si só produz muitos dados de eventos, os quais representam a fila interna de scheduling do Nagios.

Para diminuir esse problema, retire o registro do ndomod.o destes eventos.

Configure algo menos ganancioso nas opções do ndo broker (/usr/local/nagios/etc/ndomod.cfg):

data_processing_options=1048573

Colocando em execução

Uma vez que tudo esteja configurado, pode-se começar a colocá-lo em execução.

1. Inicie o daemon ndo2db:

# /etc/init.d/ndo2db start
ou
# invoke-rc.d ndo2db start
ou
# /usr/local/nagios/bin/ndo2db -c /usr/local/nagios/etc/ndo2db.cfg

2. Verifique os logs do sistema para certificar-se do funcionamento.

3. Inicie o daemon do Nagios:

# /etc/init.d/nagios start
ou
# invoke-rc.d nagios start
ou
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

4. Verifique os logs do Nagios para certificar-se que a inicialização foi bem sucedida.

Deve-se ver alguns logs de entrada que digam que o modulo ndomod.o foi carregado com sucesso e conectado ao "data sink".

Se o módulo ndomod.o parecer não carregado, verifique a configuração do Nagios para certificar-se da adição do modulo broker no nagios.cfg.

Se existir erros de conexão ao "data sink", certifique-se que o daemon NDO2DB esteja em execução.

5. Verifique os logs de sistema para certificar-se que o NDO2DB esteja funcionando corretamente.

Deve-se observar alguns logs de entrada indicando que uma conexão foi recebida (pelo modulo ndomod.o carregado pelo Nagios) e uma conexão ao banco de dados foi bem sucedida.

Se existir erros, verifique se o banco de dados correto, nome de usuário, senha e prefixo das tabelas foram especificados corretamente no ndo2db.cfg.

Se existir erros relatando não conseguir executar a query do MySQL, as chances são de que ou as tabelas não foram criadas no banco de dados ou o ndo2db.cfg não batem com a configuração.

Qualquer modificação implicará na reinicialização do daemon NDO2DB.

Para finalizar, configure o daemon do Nagios e do NDO2DB de forma que iniciem automaticamente com o sistema operacional:

# update-rc.d ndo2db defaults
# update-rc.d nagios defaults


Página anterior     Próxima página

Páginas do artigo
   1. Antes de começar
   2. Nagios (versão 3.2.1)
   3. NagiosQL (versão 3.0.3)
   4. Acessando o Nagios e NagiosQL
   5. PNP4Nagios (versão 0.6.3)
   6. Opcional - NDOUtils (versão 1.4b9)
   7. Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Instalando o modem Pctel PCI no Conectiva 10

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

Partições Linux - Faça direito!

NoBreak SMS e GNU/Linux (FC5) - Parte 2 - Criando o serviço

Instalando AJAXTERM em um Fedora

  
Comentários
[1] Comentário enviado por ramos1986 em 24/09/2010 - 08:20h

Parabéns cara pelo artigo, ficou muito bom.

[2] Comentário enviado por 4l3x4ndr3 em 28/09/2010 - 09:00h

Muito bom realmente seu artigo. Estou montando um novo servidor Nagios.
So tenho um dúvida. Estou tentando instalar a tradução do nagiosql. Consegui os arquivos já. Sabes como proceder essa atualizaçao?
Obrigad

[3] Comentário enviado por tiagomdrizzo em 28/09/2010 - 09:55h

A documentação do NagiosQL não é muito clara quanto a adicionar idiomas, porém, em /var/www/nagiosql/config/locale existentem diretórios de idiomas.

Acredito (e não estou afirmando) que se você criar um diretório de mesma estrutura que os demais apresentados neste local, mas com o nome pt_BR e obviamente copiar o arquivo de tradução para lá, o NaqiosQL irá lista-lo em Administration>Settings campo Language.

A não ser que você possua um bom motivo para realizar essa tradução, eu não recomendou você fazer isso. A documentação e ajuda dessa ferramenta está em grande parte em inglês e será sofrível encontrar algo em português que o auxilie no caso de uma erro.
Somente o milton.melo está participando da tradução do NagiosQL atualmente e não estou falando da documentação, somente da interface.

Caso funcione, responda neste tópico para auxiliar outras pessoas que possam que venham a ter o mesmo problema ;)

[4] Comentário enviado por 4l3x4ndr3 em 28/09/2010 - 15:17h

A traduao nao consegui fazer funcionar ainda. Mas nao estou mt interssado nisso.
Te mandei um e-mail sobre outra duvida. Se tiveres como responder agradeco.

[5] Comentário enviado por diramos em 17/04/2012 - 11:29h

Caro Tiago.

Parabéns pelo artigo.
Está claríssimo.
Tenho uma dúvida:
É possível usar o pnp4nagios com a variavel de macros desabilitada no nagios.cfg?
Assim:
enable_environment_macros=0

Meu Nagios é em larga escala e preciso que funcione o pnp4 também.

Grato desde já.

Diramos

[6] Comentário enviado por tiagomdrizzo em 17/04/2012 - 12:09h

Ramos,

Conforme descrevi no procedimento, o modo sincrono --necessita-- que a variavel de macro esteja ativada.
Os outros modos (Bulk e Bulk com NCPD) não necessitam dessa opção ativa, mas são pouca coisa mais chata de configurar.

Como curiosidade existem dois projetos em andamento muito interessantes para a administração do Nagios:

- OMD - omdistro.org - Open Monitoring Distribution - que possui muitas das coisas descritas nesse procedimento instalando de forma automática e com a vantagem de possuir o mod_gearman. Esse addon para o Nagios consegue melhorar muito a coleta de informações. Dependendo da quantidade de itens monitorados em sua rede seria interessante dar uma olhada nele ou instalar pelo menos o mod_gearman em seu servidor.

- FUN - fullyautomatednagios.org - Fully Automated Nagios - é uma distro pronta (sou meio contra essas distros prontas, mas é uma opção) que já entrega tudo configurado. Ele possui o Centreon que, pessoalmente, acho mais organizado que o NagiosQL e entrega uma interface um pouco melhor para gerenciar o Nagios como um todo, além de possuir o modulo para gráficos que eu não lembro agora se é ou não o PNP4Nagios. Porém, ele não possue algumas coisas que o OMD possui (as vezes acho que o OMD foge um pouco do foco com tanta tranqueira que vem com ele, mas enfim).

Um outro projeto que poderia citar aqui é o Icinga, que é um fork do Nagios, que está sendo desenvolvido com uma opções muito interessantes, mas sua documentação está meio fraca ainda. Detalhe é que todos os plugins criados para o Nagios funcionam com o Icinga.

Espero ter ajudado e não te-lo confundido mais rs.

[]'s

[7] Comentário enviado por diramos em 17/04/2012 - 12:36h

Tiago, nossa!
Respondeu prontamente e com rapidez.
Muito Obrigado.
Olha: por conta da minha larga escala (20.000 hosts aproximadamente), já estou implementando o mod_gearman.
Ele já está em produção para testes. Estou só fazendo os ajustes finos aqui.
Seguinte: eu tentei implementar o modo bulk aqui e desativei as macros (enable_environment_macros=0). Mas os gráficos não são gerados nem a pau.
O que pode estar acontecendo? Não teria jeito de eu deixar no modo síncrono mesmo e só ativar as macros que ele precisa?

Aguardo.

Diramos

[8] Comentário enviado por diramos em 17/04/2012 - 12:44h

Tiago, outra coisa:

Não entendi essa parte que você escreveu sobre o modo bulk:

"IMPORTANTE: Como há mais dados a serem processados do que no modo síncrono, o process_perfdata.pl levará mais tempo para coletar os dados, portanto, verifique o valor de TIMEOUT em etc/process_perfdata.cfg e ajuste-o de maneira apropriada."

Onde fica esse arquivo etc/process_perfdata.cfg?
Eu não encontrei ele aqui.

Grato

Diramos

[9] Comentário enviado por tiagomdrizzo em 17/04/2012 - 14:29h

Ramos,

A não ser que tenham mudado algo nas versões novas do 0.6.x (faz muito tempo que não instalo o PNP), o arquivo de configuração deveria estar em /usr/local/pnp4nagios/etc/process_perfdata.cfg que é onde o procedimento aponta implicitamente devido ao caminho de compilação (se o comando find não encontrou o arquivo, talvez seja algo com a versão).
O modo sincrono colhe as informações e apresentam quase em tempo real, já o modo Bulk demora mais para coletar os dados devido a configuração descrita no process_perfdata.cfg.

Quanto a ativar somente as macros que o modo sincrono necessita, infelizmente, não sei lhe responder. Seria necessário verificar a documentação do pnp4nagios no site de desenvolvimento.

Att,

[10] Comentário enviado por diramos em 17/04/2012 - 14:50h

Tiago, seguem mais detalhes daqui prá ver se pode me ajudar:
Eu compilei o pnp4nagios assim:
./configure --prefix=/opt/nagioscaixa --datarootdir=/opt/nagioscaixa/share/pnp --sysconfdir=/opt/nagioscaixa/etc/pnp --with-perfdata-logfile=/var/nagioscaixa/perfdata.log --with-perfdata-dir=/var/nagioscaixa/perfdata --with-perfdata-spool-dir=/var/nagioscaixa/spool

No modo síncrono, ele funcionava direititinho, gerando os dados dos gráficos em /var/nagioscaixa/perfdata/NOME_DO_HOST
Eu acessava os gráficos em: http://NOMESERVIDORNAGIOS/nagios/pnp/index.php/graph?host=LOCALHOST

Alterei o nagios.cfg para o modo bulk e ele ficou assim:

###############################
process_performance_data=1
service_perfdata_file=/var/nagioscaixa/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\t TIMET::$TIMET$\t HOSTNAME::$HOSTNAME$\t SERVICEDESC::$SERVICEDESC$\t SERVICEPERFDATA::$SERVICEPERFDATA$\t SERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\t HOSTSTATE::$HOSTSTATE$\t HOSTSTATETYPE::$HOSTSTATETYPE$\t SERVICESTATE::$SERVICESTATE$\t SERVICESTATETYPE::$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file

#
# host performance data starting with Nagios 3.0
#
host_perfdata_file=/var/nagioscaixa/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\t TIMET::$TIMET$\t HOSTNAME::$HOSTNAME$\t HOSTPERFDATA::$HOSTPERFDATA$\t HOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\t HOSTSTATE::$HOSTSTATE$\t HOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file
##############################

Incluí no meu command.cfg os seguintes comandos:

define command {
command_name process-host-perfdata-file
command_line $USER1$/process_perfdata.pl --bulk=/var/nagioscaixa/host-perfdata
}

define command {
command_name process-service-perfdata-file
command_line $USER1$/process_perfdata.pl --bulk=/var/nagioscaixa/service-perfdata
}

Reiniciei o nagios.
Não deu nenhum erro no nagios.log.

Só que não consigo verificar se os arquivos estão sendo gerados.
E também não consigo ver os gráficos.

Poderia checar onde eu errei?

OBS: ainda não desabilite o enable_MACROS=0 NO NAGIOS.CFG.

aGUARDO

dIRAMOS



[11] Comentário enviado por diramos em 17/04/2012 - 18:25h

Prezado Tiago,
Graças às suas valiosas dicas, consegui resolver aqui. :)
Revisei as configurações e tinha uns errinhos de path.
Agora tá funcionando muito bem.
Para você ter uma idéia, com o mod_gearmand e desabilitando as macros, consegui gerar todos os gráficos.
Atualmente estou checando 2.000 hosts em 01 VM de laboratório e mais 03 Workers.
A latência é mínima (0,3 segundos). E o uso de CPU não chega a 5%.
Agora vou incluir mais umas dezenas de hosts lá prá ver o quanto o bichinho aguenta. rsrsrsrs

Mais uma vez agradeço a presteza e boa vontade em ajudar-nos.
E parabéns pelo artigo.

Diramos

[12] Comentário enviado por jeffr2 em 28/01/2016 - 20:02h

por favor alguem me ajude... instalei o nagios + nagiosql, o nagios em /usr/local/nagios e o nagiosql dentro de share (/usr/local/nagios/share/nagiosql). o apache deixei configurado como user e group ambos "nagios". fiz os apontamentos do nagiosql em "administration > config targets", mas quando eu cadastro um host, ele simplesmente nao aparece no nagios.

--------------
saída:

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Nagios Core 4.1.1
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 08-19-2015
License: GPL

Website: https://www.nagios.org
Reading configuration data...
Read main config file okay...
Read object config files okay...

Running pre-flight check on configuration data...

Checking objects...
Checked 21 services.
Checked 5 hosts.
Checked 4 host groups.
Checked 0 service groups.
Checked 1 contacts.
Checked 1 contact groups.
Checked 24 commands.
Checked 5 time periods.
Checked 0 host escalations.
Checked 0 service escalations.
Checking for circular paths...
Checked 5 hosts
Checked 0 service dependencies
Checked 0 host dependencies
Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...

Total Warnings: 0
Total Errors: 0

Things look okay - No serious problems were detected during the pre-flight check

--------------

o nagios.cfg ta configurado com esse diretório: cfg_dir=/usr/local/nagios/share/nagiosql, o resto deixei comentado.

ainda assim os hosts nao aparecem no nagios, alguém tem uma ideia do que posso ta fazendo de errado??

[13] Comentário enviado por almeidass em 18/11/2016 - 13:57h

Perfeito!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts