Este artigo presume que você já tenha um Linux instalado e configurado, estou usando o CentOS 5.1 mas não é difícil adaptar este artigo para outras distros.
O artigo não vai cobrir aspectos da configuração do Nagios, se você quer começar a entender o Nagios é bom dar uma olhada na documentação disponibilizada em http://nagios.sourceforge.net/docs/3_0/toc.html. De resto, o objetivo é ser uma referência para quem está procurando configurar o Nagios com SNMP e gerar gráficos pelo projeto pnp4nagios.
Vou começar fazendo o download dos componentes, no meu caso eu criei uma pasta chamada Nagios para trabalhar:
# cd ~
# mkdir nagios
# cd nagios
# wget http://ufpr.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.5.tar.gz
# wget http://ufpr.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz
Descompacte todos os sources em /usr/src / :
# tar -zxvf nagios-3.0.5.tar.gz -C /usr/src/
# tar -zxvf nagios-plugins-1.4.13.tar.gz -C /usr/src/
Instale os pacotes necessários para o Nagios:
# yum install httpd gcc glibc glibc-common gd gd-devel
Crie o usuário e grupo para o Nagios:
# /usr/sbin/useradd -m nagios
# passwd nagios
# /usr/sbin/groupadd nagcmd
# /usr/sbin/usermod -a -G nagcmd nagios
# /usr/sbin/usermod -a -G nagcmd apache
Vamos manter todos os arquivos do nagios dentro de /usr/local/nagios, isso facilita a administração e backup, vamos à compilação:
# cd /usr/src/nagios-3.0.5/
# ./configure –with-nagios-user=nagios –with-nagios-group=nagios –with-command-group=nagcmd
# make all && make install && make install-init && make install-config && make install-commandmode && make install-webconf
Compile os plugins:
# cd ../nagios-plugins-1.4.13
# ./configure –with-nagios-user=nagios –with-nagios-group=nagios
# make && make install
Crie o usuário e senha para acessar a interface web do nagios:
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
# service httpd restart
Configure o script de inicialização do Nagios:
# chkconfig –add nagios
# chkconfig nagios on
Teste se a configuração está correta e inicialize o Nagios:
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
# service nagios start
Agora o Nagios deve estar acessível pelo navegador:
http://ip-do-servidor/nagios/
Vamos baixar e descompactar os plugins SNMP para o Nagios:
# wget http://nagios.manubulon.com/nagios-snmp-plugins.1.1.1.tgz
# tar -zxvf nagios-snmp-plugins.1.1.1.tgz -C /usr/src/
Instale o plugin Net::SNMP para Perl, faremos isto através do cpan:
# perl -MCPAN -e shell
cpan> install Net::SNMP
Agora instalamos os plugins:
# cd /usr/src/nagios_plugins/
# ./install.sh (Aqui ele faz algumas perguntas, normalmente o padrão atende)
Vamos alterar o resource.cfg, ele guarda as variáveis que são utilizadas pelo Nagios nas definições de comando. Normalmente, ele vem somente com a variável $USER1$ setada como /usr/local/nagios/libexec.
Vamos incluir as seguintes variáveis no fim do arquivo:
$USER7$=-C public
$USER8$=public
Substitua public pela sua comunidade snmp
É preciso incluir os comandos abaixo no commands.cfg.
–
define command{
command_name check_snmp_load_v1
command_line $USER1$/check_snmp_load.pl -H $HOSTADDRESS$ $USER7$ -T $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$
}
define command{
command_name check_snmp_int_v1
command_line $USER1$/check_snmp_int.pl -H $HOSTADDRESS$ $USER7$ -n $ARG1$ $ARG2$
}
define command{
command_name check_snmp_mem_v1
command_line $USER1$/check_snmp_mem.pl -H $HOSTADDRESS$ $USER7$ $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$
}
define command{
command_name check_snmp_storage_v1
command_line $USER1$/check_snmp_storage.pl -H $HOSTADDRESS$ $USER7$ -m $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$
}
define command{
command_name check_snmp_hpux_storage_v1
command_line $USER1$/check_snmp_hpux_storage.pl -H $HOSTADDRESS$ $USER7$ -m $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$
}
define command{
command_name check_snmp_hpux_mem_v1
command_line $USER1$/check_snmp_hpux_mem.sh $USER8$ $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$
}
define command{
command_name check_snmp_v1
command_line $USER1$/check_snmp -H $HOSTADDRESS$ $USER7$ -o $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$
}
define command{
command_name check_snmp_process_v1
command_line $USER1$/check_snmp_process.pl -H $HOSTADDRESS$ $USER7$ -n $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$
}
define command{
command_name check_win
command_line $USER1$/check_snmp_win.pl -H $HOSTADDRESS$ $USER7$ -n $ARG1$ $ARG2$
}
–
Não vou dar muitos detalhes dos arquivos de configuração para maquinas Linux e Windows, vou postar aqui só um exemplo para cada um, os detalhes dos comandos você acha em: http://nagios.manubulon.com/
Exemplo para Windows
–
define host{
use Windows-Servers
host_name win01
alias win01
address 171.16.0.5
}
define service {
use generic-service
host_name win01
service_description L_DISK_USAGE_C:
check_command check_snmp_storage_v1!”^C:”!55!99!-f
}
define service {
use generic-service
host_name win01
service_description L_DISK_USAGE_D:
check_command check_snmp_storage_v1!”^D:”!55!99!-f
}
define service {
use generic-service
host_name win01
service_description L_CPU_LOAD
check_command check_snmp_load_v1!stand!80!90
}
define service {
use generic-service
host_name win01
service_description L_MEMORY_LOAD
check_command check_snmp_storage_v1!”Virtual Memory”!80!90!-rf
}
define service{
use generic-service
host_name win01
service_description N_HTTP
check_command check_tcp!80!
}
–
Exemplo para Linux
–
define host{
use Linux-Servers
host_name lin01
alias lin01
address 172.16.0.18
}
define service {
use generic-service
host_name lin01
service_description L_DISK_USAGE_/
check_command check_snmp_storage_v1!/!95!99!-r
}
define service {
use generic-service
host_name lin01
service_description L_CPU_LOAD
check_command check_snmp_load_v1!netsc!90!95
}
define service {
use generic-service
host_name lin01
service_description L_MEMORY_LOAD
check_command check_snmp_mem_v1!-N -w!90,20!95,30
}
define service{
use generic-service
host_name lin01
service_description N_HTTP
check_command check_tcp!80!
}
define service{
use generic-service
host_name lin01
service_description N_SAMBA_DS
check_command check_tcp!445!
}
define service{
use generic-service
host_name lin01
service_description N_SAMBA_NETBIOS
check_command check_tcp!139!
}
–
Não esqueça que as entradas acima são só exemplos! Leia a documentação em http://nagios.manubulon.com/ pra entender o que você vai fazer.
Isso conclui a parte de configurar o nagios e os plugins, eu já postei como configurar o SNMP no XP (http://luizcarlostomaz.wordpress.com/2008/09/09/snmp-no-windows-xp/) e vou postar como configurar no Linux.










