Depois de muito pesquisar ler livros sobre o assunto resolvir fazer este pequeno tutorial sobre a instalação e configuração do nagios, não esquecendo que fontes temos demais, mas devemos filtra-las pois são várias e nem sempre quando você acrescenta um determinado comando nada roda da forma correta. Então vamos lá mãos a obras, este tutorial e simples para ser entendido se segue passos a serem, executados então faça-os corretamente. Apesar do Nagios ser complexo quando se coloca o mesmo para rodar tudo funciona da forma desejada, fiz um laboratório de teste em casa mesmo. Tudo e sem muita conversa parte logo para o que dever ser feito.
Instalação do nagios
Nagios – Debian
Começando...
Instalando as dependências
sudo apt-get -y install openssl
sudo apt-get -y install libssl-dev
sudo apt-get -y install mcrypt
sudo apt-get -y install build-essential
sudo apt-get -y install nmap
sudo apt-get -y install xinetd
sudo apt-get -y install apache2
sudo apt-get -y install libjpeg62
sudo apt-get -y install libjpeg-dev
sudo apt-get -y install libpng12-0
sudo apt-get -y install libpng12-dev
sudo apt-get -y install libgd2-xpm
sudo apt-get -y install libgd2-xpm-dev
sudo apt-get -y install fontconfig
sudo apt-get -y install sudo
Criando usuários para o Nagios
sudo useradd -m nagios
sudo groupadd nagios
sudo usermod -G nagios nagios
sudo mkdir /usr/local/nagios
sudo chown -R nagios.nagios
/usr/local/nagios
sudo groupadd nagcmd
sudo usermod -G nagios nagcmd –
erro aqui
Baixando o Nagios 2.9
mkdir downloads
cd downloads
wget -c
http://ufpr.dl.sourceforge.net/sourceforge/nagios/nagios-2.9.tar.gz
Compilando o Nagios
tar xzvf nagios-2.9.tar.gz
cd nagios-2.9
sudo ./configure --prefix=/usr/local/nagios
--with-cgiurl=/nagios/cgi-bin --with-htmurl=/nagios/ --with-nagios-user=nagios
--with-nagios-grp=nagios --with-gd-lib=/usr/lib --with-gd-inc=/usr/lib
Depois instale-o com o comando:
sudo make all
sudo make install
sudo make install-init
sudo make install-commandmode
sudo make install-config
Baixando e instalando o Nagios-plugins
wget -c
http://ufpr.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.9.tar.gz
tar xzvf
nagios-plugins-1.4.9.tar.gz
cd nagios-plugins-1.4.9
./configure
--prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
sudo ./configure
sudo make all
sudo make install
cd /usr/local/nagios/etc
sudo mkdir original
sudo cp *.cfg-sample original
for i in *cfg-sample; do
sudo mv $i `echo $i|sed -e
s/cfg-sample/cfg/`
done
Modificando as permissões da pasta do Nagios
sudo chown -R nagios.nagios
/usr/local/nagios/var/rw
sudo chmod u+rwx
/usr/local/nagios/var/rw
sudo chmod g+rwx
/usr/local/nagios/var/rw
sudo chmod g+s
/usr/local/nagios/var/rw
Testando o nagios
sudo /usr/local/nagios/bin/nagios
-v /usr/local/nagios/etc/nagios.cfg
Dentro de etc no nagior executar:
../Bin/nagios -v nagios.cfg
* Fale com um
amigo/colega/conhecido de confiança que saiba mexer no programa. * Renomear o
arquivo para seunome-seusobrenome.txt
Baixando e Instalando NRPE
wget -c
http://ufpr.dl.sourceforge.net/sourceforge/nagios/nrpe-2.9.tar.gz
tar xzvf nrpe-2.9.tar.gz
Compilando o nrpe
cd nrpe-2.9
sudo ./configure
sudo make all
sudo make install-plugin
sudo make install-daemon
sudo make install-daemon-config
sudo make install-xinetd
Adicionando o usuário nagios como
sudo sem senha
echo 'nagios ALL=NOPASSWD:ALL' | sudo tee -a
/etc/sudoers
Adicionando o NRPE como serviço
echo 'nrpe 5666/tcp # NRPE'| sudo tee -a
/etc/services
sudo /etc/init.d/xinetd restart
sudo cp sample-config/nrpe.cfg
/usr/local/nagios/etc/
Compilando os binários do NRPE
para a pasta do Nagios
sudo cp src/nrpe
/usr/local/nagios/bin/
sudo cp src/check_nrpe
/usr/local/nagios/libexec/
Baixando e instalando o NSCA
wget -c
http://ufpr.dl.sourceforge.net/sourceforge/nagios/nsca-2.7.2.tar.gz
Compilando o NSCA
tar xzvf nsca-2.7.2
cd nsca-2.7.2
sudo ./configure
sudo make
sudo make install
Baixando um Skin para o Nagios
wget -c
http://packzaitan.googlecode.com/files/nagios_skyns.tar.gz
tar xzvf nagios_skyns.tar.gz
sudo mv /usr/local/nagios/share
/usr/local/nagios/share.old
sudo mv share /usr/local/nagios/
sudo mkdir
/usr/local/nagios/etc/services
sudo mkdir /usr/local/nagios/etc/hosts
sudo mkdir
/usr/local/nagios/etc/backup
sudo mkdir
/usr/local/nagios/etc/backup/hosts
sudo mkdir
/usr/local/nagios/etc/backup/services
sudo chown -R nagios.nagios
/usr/local/nagios/*
Configurando o Apache2
echo 'ScriptAlias /nagios/cgi-bin
/usr/local/nagios/sbin/
<Directory
"/usr/local/nagios/sbin/">
AllowOverride AuthConfig
Options ExecCGI
Order
allow,deny
Allow
from all
</Directory>
Alias /nagios
/usr/local/nagios/share/
<Directory
"/usr/local/nagios/share">
Options None
#AllowOverride AuthConfig
#Order
allow,deny
#Allow
from all
#AuthName "Nagios Access"
#AuthType Basic
#AuthUserFile /usr/local/nagios/etc/htpasswd.users
#require
valid-user
</Directory>' > nagios
sudo cp nagios /etc/apache2/sites-enabled/
Modificando as configurações do
cgi do Nagios
sudo sed -i
's/^use_authentication=.*/use_authentication=0/' /usr/local/nagios/etc/cgi.cfg
Adicionando o Nagios para ser
executado durante o Boot
sudo ln -s /etc/init.d/nagios
/etc/rcS.d/S99nagios
Finalizando a Instalação e restartando o Apache2 e o Nagios
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/nagios restart
Arquivos de configuração do nagios
Todos estes arquivos estão dentro
de etc do nagios. Procedimentos:
cgi.cfg– Não altere;
checkcommands.cfg – criar este;
commands.cfg* – Altera este ver
linhas a serem descomentadas e acrecestadas;
contactgroups.cfg* – criar este e
acrescentar as linhas necessárias;
contacts.cfg *- criar este e
acrescentar as linhas necessárias;
hostgroups.cfg* - criar este e
acrescentar as linhas necessárias;
hosts.cfg *- criar este e
acrescentar as linhas necessárias;
localhost.cfg – arquivo padrão da
máquina de monitoramento, já estando pré-configurado;
nagios.cfg *– arquivo principal
do nagios , acrescentar linhas necessárias e descomentar algumas;
nrpe.cfg – arquivo do agente
remoto do nagios;
resource.cfg – arquivo padrão de
instalação deixar como esta;
services.cfg *– arquivo necessário
criar e adicionar os comandos.
*Arquivos alterados e criados.
Configuração dos arquivos
commands.cfg
###### comandos novos
################################################################################
## 'check_nrpe'
define command{
command_name
check_nrpe
command_line
/usr/local/nagios/libeexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
###############################################################################
###############################################################################
##
check nsclient
define
command{
command_name
check_nt_disk
command_line
$USER1$/check_nt -H $HOSTADDRESS$ -p 1248 -v USEDDISKSPACE -l $ARG2$ -c $ARG3$
}
define
command{
command_name
check_cpuload
command_line $USER/check_nt -H $HOSTADDRESS -p 1248 -v
CPULOAD -l $ARG1$
}
define
command{
command_name
check_nt_uptime
command_line $USER1$/check_nt -H $HOSTADDRESS -p 1248 -v
UPTIME
}
define
command{
command_name
check_nt_clientversion
command_line $USER1$/check_nt -H $HOSTADDRESS -p 1248 -v
CLIENTVERSION
}
define
command{
command_name check_nt_process
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 1248 -v
PROCSTATE -l $ARG1$
}
define
command{
command_name
check_nt_service
command_line
$USER1$/check_nt -H $HOSTADDRESS$ -p 1248
-v SERVICESTATE -d SHOWALL -l $ARG1$
}
define
command{
command_name check_nt_memuse
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 1248 -v
MEMUSE -w $ARG$ -c $ARG2$
}
###############################################################
# notificao por e-mail
###############################################################
define command{
command_name
host-notificacao-por-email
command_line
/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type:
$NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress:
$HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" |
/usr/bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is
$HOSTSTATE$ **" $CONTACTEMAIL$
}
define
command{
command_name
notificacao-por-email
command_line
/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type:
$NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress:
$HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional
Info:\n\n$SERVICEOUTPUT$" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$
Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **"
$CONTACTEMAIL$
}
contactgroups.cfg
define contactgroup {
contactgroup_name suporte
alias Grupo
Suporte
members anderson
}
contacts.cfg
define
contact {
contact_name anderson
alias anderson oliveira
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands
notificacao-por-email
host_notification_commands host-notificacao-por-email
email aosamp25@hotmail.com
}
hostgroups.cfg
define hostgroup {
hostgroup_name servidores
alias Servidores
windows e linux
contact_groups suporte
members suporte
}
hosts.cfg
define
host{
name host-padrao
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
register 0
}
nagios.cfg
Nele veja as linhas adicionadas e outras descomentadas
#cfg_dir=/usr/local/nagios/etc/windows
cfg_file=/usr/local/nagios/etc/commands.cfg
cfg_file=/usr/local/nagios/etc/localhost.cfg
cfg_file=/usr/local/nagios/etc/checkcommands.cfg
cfg_file=/usr/local/nagios/etc/contactgroups.cfg
cfg_file=/usr/local/nagios/etc/contacts.cfg
#cfg_file=/usr/local/nagios/etc/dependencies.cfg
#cfg_file=/usr/local/nagios/etc/escalations.cfg
#cfg_file=/usr/local/nagios/etc/hostgroups.cfg
cfg_file=/usr/local/nagios/etc/hosts.cfg
cfg_file=/usr/local/nagios/etc/services.cfg
#cfg_file=/usr/local/nagios/etc/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/windows.cfg
services.cfg
# Template de Servico
define service{
name
service-padrao
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
register 0
}
Outros arquivos
Neste caso estava monitorando uma máquina com Windows
a modo de teste estão foram criados algumas pastas e arquivos .cfg para a
mesma. Segue os procedimentos:
# mkdir /usr/local/nagios/etc/objects
Dentro de cada um criar os respectivos arquivos
.cfg:
#
touch /usr/local/nagios/etc/objects/windows.cfg
Obs: Instale e configure corretamente o nsclient na
máquina com Windows.
Configuração de cada arquivo windows.cfg
define
host{
use host-padrao
host_name host-hppc
alias casa
address 192.168.1.101
check_command check-host-alive
max_check_attempts 10
notification_interval 120
notification_period 24x7
notification_options d,u,r
contact_groups suporte
}
#####################################################
###disk
C########
define
service{
use
service-padrao
host_name
host-hppc
service_description
Disco C
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups suporte
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_nt_disk!C!85%!90%
}
########################################################
##
MEMUSE
define
service{
use
service-padrao
host_name host-hppc
service_description memuse
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 1
retry_check_interval 1
contact_groups suporte
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_nt_memuse!80!90
}
Para finalizar teste o nagios, executando o comando
dentro de etc do mesmo ../Bin/nagios –v nagios.cfg.
Reiniciar o serviço do nagios: #/etc/init.d/nagios
stop e depois # #/etc/init.d/nagios start
Depois basta acessar pelo o navegador: ip do
servidor/nagios
Fontes
http://www.vivaolinux.com.br/artigo/Monitoracao-de-Hosts-e-Servicos-com-o-NAGIOS/
http://under-linux.org/wiki/Tutoriais/Monitoramento/nagios-install
Costa Felipe. ambiente de rede monitorado com Nagios e Cacti . Editora moderna. 2008