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.314 ]

Por: Tiago MDR em 24/09/2010


NagiosQL (versão 3.0.3)



Conforme dito anteriormente, o NagiosQL disponibiliza uma interface gráfica que facilita o trabalho de configurar hosts, serviços e entre outros itens do Nagios.

Instalação:

# cd /var/www
# wget
http://sourceforge.net/projects/nagiosql/files/nagiosql/NagiosQL%203.0.3/nagiosql303.zip/download
# unzip nagiosql303.zip
# mv nagiosql3 nagiosql


A criação do arquivo abaixo é importante para que a instalação seja possível:

# touch /var/www/nagiosql/install/ENABLE_INSTALLER
# chown -R www-data:www-data /var/www/nagiosql/config/


O restante da instalação será executada via navegador:

http://servidor.com.br/nagiosql

Siga os passos apresentados pelo sistema de configuração como: banco de dados, nome do usuário de banco de dados, senha etc.

Ao finalizar a instalação, remova o arquivo ENABLE_INSTALLER:

# rm -f /var/www/nagiosql/install/ENABLE_INSTALLER

Para confirmar a remoção, tecle F5 no navegador para atualizar a pagina e realize o login no sistema.

O NagiosQL necessita de uma estrutura de diretórios que deve ser criada da seguinte forma:

# mkdir -p /etc/nagiosql/{hosts,services,backup/{hosts,services}}
# chmod -R 6755 /etc/nagiosql/
# chown -R www-data.nagios /etc/nagiosql/


A próxima etapa é alterar as permissões do diretório do Nagios para que o NagiosQL consiga atualizar as informações dos arquivos.

IMPORTANTE: Faça backup dos dados do Nagios antes de executar o próximo passo devido a alteração das permissões.

# chgrp www-data /usr/local/nagios; chmod 775 /usr/local/nagios
# chgrp www-data /usr/local/nagios/etc/nagios.cfg; chmod 664 /usr/local/nagios/etc/nagios.cfg
# chgrp www-data /usr/local/nagios/etc/cgi.cfg; chmod 664 /usr/local/nagios/etc/cgi.cfg


Agora é necessário editar o /usr/local/nagios/etc/nagios.cfg indicando o diretório /etc/nagiosql como local de arquivos de configuração.

Comente as linhas padrões de configuração do Nagios:

# You can specify individual object config files as shown below:
#cfg_file=/usr/local/nagios/etc/objects/commands.cfg
#cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
#cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
#cfg_file=/usr/local/nagios/etc/objects/templates.cfg

# Definitions for monitoring the local (Linux) host
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

E adicione as linhas abaixo:

# NAGIOSQL CONFIGURATION - START###################
###################OBLIGATORY###################
cfg_file=/etc/nagiosql/contacttemplates.cfg
cfg_file=/etc/nagiosql/contactgroups.cfg
cfg_file=/etc/nagiosql/contacts.cfg
cfg_file=/etc/nagiosql/timeperiods.cfg
cfg_file=/etc/nagiosql/commands.cfg
cfg_file=/etc/nagiosql/hostgroups.cfg
cfg_file=/etc/nagiosql/servicegroups.cfg
cfg_dir=/etc/nagiosql/hosts
cfg_dir=/etc/nagiosql/services

###################OPTIONALS###################
cfg_file=/etc/nagiosql/hosttemplates.cfg
cfg_file=/etc/nagiosql/servicetemplates.cfg
cfg_file=/etc/nagiosql/servicedependencies.cfg
cfg_file=/etc/nagiosql/serviceescalations.cfg
cfg_file=/etc/nagiosql/hostdependencies.cfg
cfg_file=/etc/nagiosql/hostescalations.cfg
cfg_file=/etc/nagiosql/hostextinfo.cfg
cfg_file=/etc/nagiosql/serviceextinfo.cfg
#NAGIOSQL CONFIGURATION - END####################

A partir de agora duas opções de configurações poderão ser tomadas:
  • Opção 1 - Configurar cada um dos hosts no NagiosQL; ou
  • Opção 2 - Importar as configurações do Nagios para o NagiosQL.

Para importar os dados do Nagios, na interface do NagiosQL, via navegador, escolha "Tools > Data Import".

Crie um diretório import no diretório padrão do Nagios e coloque os arquivos que deverão ser importados neste diretório, no caso de possuir algum.

# mkdir /usr/local/nagios/import

O NagiosQL, por padrão, busca as configurações do Nagios em /etc/nagios, mas como a instalação está em /usr/local/nagios.

Crie um link simbólico de /usr/local/nagios para /etc/nagios.

# ln -s /usr/local/nagios /etc/nagios
# ln -s /usr/local/nagios/etc/nagios.cfg /etc/nagios/nagios.cfg
# ln -s /usr/local/nagios/etc/cgi.cfg /etc/nagios/cgi.cfg


Obs.: Pode-se também alterar estes diretórios através da interface do NagiosQL caso não queira criar links simbólicos ("Administration > Domains > Modify").

Este é opcional, permite que o comando nagios seja visível pelo bash:

# ln -s /usr/local/nagios/bin/nagios /usr/bin/

Agora é necessário configurar alguns parâmetros do NagiosQL.

Na interface do NagiosQL, siga para "Administration > Domains" e clique no ícone "Modify".

O diretórios referentes ao Nagios apresentado na página de configuração do NagiosQL são para o Nagios instalados via aptitude. Como o Nagios foi compilado, altere os itens deixando-os da seguinte forma:
  • Nagios command file: /usr/local/nagios/var/rw/nagios.cmd
  • Nagios binary file: /usr/local/nagios/bin
  • Nagios process file: /usr/local/nagios/var/nagios.lock

O Nagios não será iniciado enquanto os arquivos de configuração do Nagios não forem disponibilizados nos diretórios descritos no arquivo de configuração.

Para verificar erros que possam impedir a inicialização do Nagios, execute o comando abaixo:

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

ATENÇÃO: Sempre que algo for adicionado ao Nagios seu serviço deverá ser reiniciado. No próprio NagiosQL é possível reiniciar o serviço do Nagios e checar por erros nas configurações.

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

Servidor DHCP rápido e fácil para Conectiva Linux

Gerenciando serviços de sistemas Linux

Configuração universal do servidor X (modo gráfico)

Debian Linux 4 iniciando o Windows como terminal server

OpenSUSE Internet Installation

  
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