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: 87.502 ]

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

Linux com cara de Windows para atrair novos usuários

Monitoramento e controle de banda por VirtualHost no Apache

UNR (Ubuntu Netbook Remix) 9.04 no Acer Aspire One (AA1)

Porque o RedHat 9 tem problemas com teclados US-International?

Openfire + Gateway + MSN

  
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