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

Por: Tiago MDR em 24/09/2010


Nagios (versão 3.2.1)



O Nagios é uma aplicação de monitoração de rede de código aberto. Ele pode monitorar tanto hosts quanto serviços através de alarmes de estado.

As configurações dos hosts e serviços no Nagios são configurados em vários arquivos de texto e isso além de trabalhoso é muito suscetível a erros, portanto será mostrado também a instalação e configuração de uma interface web para facilitar o controle dessas configurações com o adicional de armazená-las em banco de dados.

Apesar do Nagios existir nos repositórios do Debian, neste procedimento será apresentado a forma compilada de instalação. Isso permite um controle mais organizado das configurações

Instalação do Nagios

Pré-requisitos.

Requisitos para quem utiliza o MTA EXIM (padrão Debian):

# apt-get install sudo mailx lsb-release build-essential apache2 apache2-mpm-prefork php5 php5-mysql php-pear php5-ldap php5-snmp php5-gd mysql-server libmysqlclient-dev rrdtool librrds-perl libconfig-inifiles-perl libcrypt-des-perl libdigest-hmac-perl libdigest-sha1-perl libgd-gd2-perl snmp snmpd libnet-snmp-perl libsnmp-perl libgd2-xpm libgd2-xpm-dev libpng12-dev php-html-template-it

Requisitos para quem usa o MTA POSTFIX:

# apt-get install sudo mailx lsb-release build-essential apache2 apache2-mpm-prefork php5 php5-mysql php-pear php5-ldap php5-snmp php5-gd mysql-server libmysqlclient15-dev rrdtool librrds-perl libconfig-inifiles-perl libcrypt-des-perl libdigest-hmac-perl libdigest-sha1-perl libgd-gd2-perl snmp snmpd libnet-snmp-perl libsnmp-perl libgd2-xpm libgd2-xpm-dev libpng12-dev postfix php-html-template-it

Obs.: O RRDTool será instalado para que posteriormente seja possível a geração de gráficos.

Versões dos softwares instalados pelo APT:

Apache 2.2.15:
  • apache2 2.2.15-3
  • apache2-mpm-prefork 2.2.15-3
  • apache2-utils 2.2.15-3
  • apache2.2-bin 2.2.15-3
  • apache2.2-common 2.2.15-3
  • libapache2-mod-php5 5.3.2-1

MySQL 5.1:
  • libdbd-mysql-perl 4.013-1
  • libmysqlclient-dev 5.1.45-1
  • libmysqlclient16 5.1.45-1
  • mysql-client-5.1 5.1.45-1
  • mysql-common 5.1.45-1
  • mysql-server 5.1.45-1
  • mysql-server-5.1 5.1.45-1

PHP 5.3.2:
  • php5 5.3.2-1
  • php-pear 5.3.2-1
  • php5-cli 5.3.2-1
  • php5-common 5.3.2-1
  • php5-gd 5.3.2-1
  • php5-ldap 5.3.2-1
  • php5-mcrypt 5.3.2-1
  • php5-mysql 5.3.2-1
  • php5-snmp 5.3.2-1
  • php5-suhosin 0.9.31-1
  • libapache2-mod-php5 5.3.2-1
  • libphp-adodb 5.10-1

E ainda:
  • RRDTool 1.4.3-1
  • Net-SNMP 5.4.2.1
  • Perl 5.10.1

Configuração

Considerando que você possua o SNMP configurado, no Debian edite o arquivo /etc/default/snmpd e altere o campo TRAPDRUN de 'no' para 'yes'. No /etc/snmp/snmpd.conf habilite a extensão de agentes adicionando ou descomentando a linha abaixo:

master agentx

Nota de última hora: caso necessite instalar algum módulo do PEAR para o PHP e esteja utilizando um proxy será necessário ativá-lo para o que os plugins do PEAR possam ser instalados. Para fazer isso:

# pear config-set http_proxy http://my_proxy.com:port

Instalação do Nagios (versão 3.2.1)

A instalação do Nagios consiste na criação do usuário Nagios com um senha, compilação dos fontes, copia de arquivo e ajustes finais.

Criando o usuário:

# useradd -m nagios
# passwd nagios


Criando um grupo hábil a usar comandos externos:

# groupadd nagcmd
# usermod -G nagios,nagcmd nagios


O Apache deverá fazer parte do grupo nagios/nagcmd:

# usermod -G nagios,nagcmd www-data

Faça download da última versão do Nagios no site www.nagios.org:

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

# tar -xzf nagios-3.2.1.tar.gz
# cd nagios-3.2.1

#./configure --prefix=/usr/local/nagios --with-command-group=nagcmd --enable-nanosleep --enable-event-broker
# make all
# make install
# make install-init
# make install-commandmode
# make install-config


Não inicie o serviço do Nagios ainda, algumas configurações devem ser feitas.

Configurar a interface Web

Para instalar o arquivo de configuração web do Nagios no diretório conf.d do Apache:

# make install-webconf

Criar a conta nagiosadmin para logging na interface web do Nagios. Lembre-se da senha colocada nesta etapa.

# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

O arquivo /usr/local/nagios/etc/htpasswd.users é onde ficarão os usuários com permissão de acessar a interface web.

Para que as configurações da interface web tenham efeito é necessário reiniciar o Apache:

# invoke-rc.d apache2 reload
ou
# /etc/init.d/apache2 reload

Com o comando abaixo é possível criar os arquivos de inicialização do serviço do Nagios nos diferentes níveis de inicialização:

# update-rc.d nagios defaults

Desta forma é possível inicializar os serviços do Nagios através dos comandos:

# invoke-rc.d nagios start/restart/stop
ou
# /etc/init.d/nagios start/restart/stop

Não inicie o Nagios ainda, os plugins e configurações ainda não foram instalados/feitos.

ATENÇÃO: Da maneira em que o Nagios foi instalado, seus logs serão armazenados em /usr/local/nagios/var/. É aconselhável alterar este caminho no nagios.cfg posteriormente ou criar um link simbólico para isso.

Instalação dos plugins do Nagios (versão 1.4.14)

Caso esteja planejando instalar todos os plugins do Nagios é preciso instalar pacotes adicionais. Leia o arquivo REQUIREMENTS dentro do pacote de instalação dos plugins para mais informação.

Requisitos para os principais plugins:

PluginsInstalação do requisito
check_dnsapt-get install dnsutils fping
check_ldaps, check_http --sslapt-get install libssl-dev
check_tcp --ssl, check_smtp --starttls,check_ldapapt-get install libldap2-dev
check_pqsqlapt-get install libpq-dev
check_radiusapt-get install libradiusclient-ng-dev


# cd /usr/local/src
# wget
http://ovh.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz

Obs.1: A opção --with-openssl é necessária para a utilização de ssl nos plugins.
Obs.2: A opção --enable-perl-modules é opcional e é usada caso utilize plugins em Perl.

Caso necessite de plugins do Perl que não estejam no repositório (o que é difícil, mas não impossível de ocorrer), o download pode ser feito em:
# tar -xzf nagios-plugins-1.4.14.tar.gz
# cd nagios-plugins-1.4.14
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-openssl=/usr/bin/openssl --enable-perl-modules
# make
# make install


Neste momento o Nagios está instalado e pode ser utilizado, configurando os hosts e serviços através dos arquivos de exemplo que acompanham a instalação, mas como a intenção é utilizar uma interface gráfica para a configuração dos itens, não inicie o serviço ou qualquer outra configuração no momento.

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

Configuração de Serviços

Instalação Kickstart (revisado)

Instalar placa de rede wireless do notebook HP dv6636 no Ubuntu

Configurando o Apache para deixar dois servidores web no mesmo link

Converter VMs GNU/Linux XenServer (paravirtualizada) para VMware ESXi 5

  
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