Nagios e Check_MK com Gráficos de uso
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):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | *** 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:
1 | # 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.
1 | # 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
1 2 3 4 | 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
1 2 3 4 5 6 7 8 | 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:
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 ou uma barra de porcentagem deve ter um gráfico associado a ele.
Quando se clica no ícone ou na barra temos uma tela como essa:
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:
1 2 3 4 5 6 7 8 9 10 | 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.