Nagios e Check_MK com Gráficos de uso

nagios+check

Como vimos no artigo passado a dupla Nagios+Check_MK é uma ótima combinação, mas quem fez viu também que ele tem a possibilidade de exibir gráficos de quase todos os itens, mas eles não vem por padrão.

Vamos utilizar o pnp4nagios para isso, ele captura informações do check_mk_livestatus e cria gráficos usando o RRDTOOL.

Vamos colocar nosso sistema de monitoração mais interessante com gráficos para impressionar quem gosta de imagens ;-).

Vamos instalar as dependências, como já compilamos o Nagios e o Check_MK temos quase tudo já instalado.

# apt-get install librrds-perl php5-gd rrdtool

Vá em http://sourceforge.net/projects/pnp4nagios/ e baixe a última versão do programa, estou utilizando a versão 0.6.19, e copie para o diretório /usr/src.

Descompacte e entre no diretório.

# cd /usr/src

# tar xvf pnp4nagios-0.6.19.tar.gz

Entre no diretório e vamos rodar o script configure para ajustar as variáveis de ambiente, verificar se o sistema tem as dependências necessárias para compilação e criar os arquivos Makefile:

# cd pnp4nagios-0.6.19

# ./configure

Você deve ter um resultado como esse (lembrando que nosso Nagios está em /opt e o pnp4nagios procura em /usr/local/nagios):

*** Configuration summary for pnp4nagios-0.6.19 09-01-2012 ***

  General Options:
  -------------------------         -------------------
  Nagios user/group:                nagios nagios
  Install directory:                /usr/local/pnp4nagios
  HTML Dir:                         /usr/local/pnp4nagios/share
  Config Dir:                       /usr/local/pnp4nagios/etc
  Location of rrdtool binary:       /usr/bin/rrdtool Version 1.4.7
  RRDs Perl Modules:                FOUND (Version 1.4007)
  RRD Files stored in:              /usr/local/pnp4nagios/var/perfdata
  process_perfdata.pl Logfile:      /usr/local/pnp4nagios/var/perfdata.log
  Perfdata files (NPCD) stored in:  /usr/local/pnp4nagios/var/spool

  Web Interface Options:
  -------------------------         -------------------
  HTML URL:                         http://localhost/pnp4nagios
  Apache Config File:               /etc/apache2/conf.d/pnp4nagios.conf


  Review the options above for accuracy.  If they look okay,
  type 'make all' to compile.

Agora compilamos:

# make all

# make fullinstall

Depois de instalado precisamos fazer algumas alterações no Nagios e no Apache para o pnp4nagios funcionar.

Primeiro vamos alterar o Apache2:

# a2enmod rewrite

# vi /etc/apache2/conf.d/pnp4nagios.conf

Altere a seguinte linha:

De:
AuthUserFile /usr/local/nagios/etc/htpasswd.users

Para:
AuthUserFile /etc/nagios/htpasswd.users

Depois faça algumas alterações de alguns arquivos com o sed:

# sed -i~pnp4nagios '/process_performance_data/s/0/1/;$a\broker_module=/usr/local/pnp4nagios/lib/npcdmod.o  config_file=/usr/local/pnp4nagios/etc/npcd.cfg' /etc/nagios/nagios.cfg

Isto vai inserir a linha que habilita o módulo npcdmod e o arquivo de pnp4nagios.

# sed -i~ '/magic_quotes_gpc/s/On/Off/' /etc/php5/apache2/php.ini

Isto vai desabilitar uma função do PHP que não facilita o trabalho do pnp4nagios.

Agora vamos editar o arquivo do nagios para habilitar os comandos perfdata, como adicionamo o process_performance_data=1 e o broker_module com o sed, vamos adicionar estas linhas no final do arquivo /etc/nagios/nagios.cfg:

# vi /etc/nagios/nagios.cfg

host_perfdata_file=/opt/nagios/var/host-perfdata
service_perfdata_file=/opt/nagios/var/service-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tHOSTOUTPUT::$HOSTOUTPUT$
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$\tSERVICEOUTPUT::$SERVICEOUTPUT$

host_perfdata_file_mode=a
service_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
service_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file
service_perfdata_file_processing_command=process-service-perfdata-file

Agora vamos adicionar as linhas de comando ao final do arquivo commands.cfg:

# vi /etc/nagios/objects/commands.cfg

define command {
	command_name    process-service-perfdata-file
	command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/service-perfdata
}

define command {
	command_name    process-host-perfdata-file
	command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/host-perfdata
}

Agora vamos reinicar o Apache e o Nagios.

# service apache2 restart

# service nagios restart

Acesse no browser: http://ip-do-servidor-nagios/pnp4nagios

Se recebeu esta tela:

pnp4nagios1

Está tudo ok e basta apagar o arquivo install.php.

# rm /usr/local/pnp4nagios/share/install.php

Basta acessar o check_mk e solicitar os gráficos. Todo ítem que tem o ícone de uma estrela icon_action ou uma barra de porcentagem deve ter um gráfico associado a ele.

graficos-check_mk

Quando se clica no ícone ou na barra temos uma tela como essa:

grafico

Agora é só aguardar e deixar os gráficos serem gerados.

UPDATE:
Se houver algum problema com a geração dos gráficos, talvez o npcd não esteja ativo. Vamos colocar no ar manualmente e criar os links simbólicos para o mesmo iniciar com o sistema:

# /etc/init.d/npcd restart

Depois:

# update-rc.d npcd defaults

Assim você vai ter um resultado deste tipo:

root@nagios:/usr/src/pnp4nagios-0.6.19# update-rc.d npcd defaults
 Adding system startup for /etc/init.d/npcd ...
   /etc/rc0.d/K20npcd -> ../init.d/npcd
   /etc/rc1.d/K20npcd -> ../init.d/npcd
   /etc/rc6.d/K20npcd -> ../init.d/npcd
   /etc/rc2.d/S20npcd -> ../init.d/npcd
   /etc/rc3.d/S20npcd -> ../init.d/npcd
   /etc/rc4.d/S20npcd -> ../init.d/npcd
   /etc/rc5.d/S20npcd -> ../init.d/npcd
root@nagios:/usr/src/pnp4nagios-0.6.19# 

Agora clique nos gráficos que deve tudo estar ativo.

Espero que gostem. Não se esqueçam de comentar.