Escolar Documentos
Profissional Documentos
Cultura Documentos
GUIA DE
INSTALAÇÃO E
CONFIGURAÇÃO
DO NAGIOS –
LINUX
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 1
CABEÇALHO RETIRADO
ÍNDICE
1 – PRÉINSTALAÇÃO......................................................................................................................3
1.1 – O Nagios.................................................................................................................................3
1.2 – Requisitos................................................................................................................................3
1.3 – Licença....................................................................................................................................3
1.4 – Observações............................................................................................................................3
2 – INSTALAÇÃO...............................................................................................................................4
2.1 – Adição do usuário/grupo 'nagios' ao Sistema.........................................................................4
2.2 – Download, Descompactação e Instalação do Nagios e dos plugins.......................................4
2.3 – Configuração da Interface Web – Apache..............................................................................5
2.4 – Configuração do Nagios.........................................................................................................6
2.4.1 – Configuração utilizandose o arquivo minimal.cfg.........................................................6
2.4.2 – Configuração utilizandose arquivos específicos para cada item...................................6
2.4.2.1 – nagios.cfg................................................................................................................7
2.4.2.2 – cgi.cfg......................................................................................................................7
2.4.2.3 – timeperiods.cfg........................................................................................................7
2.4.2.4 – checkcommands.cfg................................................................................................7
2.4.2.5 – contacts.cfg..............................................................................................................8
2.4.2.6 – contactgroups.cfg....................................................................................................8
2.4.2.7 – hosts.cfg...................................................................................................................8
2.4.2.8 – hostgroups.cfg.........................................................................................................9
2.4.2.9 – services.cfg..............................................................................................................9
2.5 – Checagem da Configuração e Inicialização do Nagios........................................................11
2.6 – Monitoramento da Rede........................................................................................................12
2.7 – Execução de Plugins em Hosts Remotos – Addon NRPE....................................................12
2.7.1 – Adição do usuário/grupo 'nagios' aos Hosts Remotos..................................................12
2.7.1.1 – Host Remoto Linux...............................................................................................12
2.7.1.2 – Host Remoto FreeBSD..........................................................................................12
2.7.2 – Download, Instalação e Configuração do NRPE nos Hosts Remotos..........................13
2.7.2.1 – Host Remoto Linux...............................................................................................13
2.7.2.2 – Host Remoto FreeBSD..........................................................................................13
2.7.2.3 – Ambos Linux e FreeBSD......................................................................................14
2.7.3 – Configuração do NRPE no Host Local (Nagios)..........................................................14
2.7.4 – Inicialização do NRPE nos Hosts Remotos..................................................................16
2.8 – Inicialização Automática do Sistema de Monitoramento.....................................................16
2.8.1 – Iniciando o Nagios com o Boot do Sistema (Host Local).............................................16
2.8.2 – Iniciando o NRPE com o Boot do Sistema (Hosts Remotos).......................................17
2.8.2.1 – Método 1 – INETD ou XINETD...........................................................................17
2.8.2.2 – Método 2 – Edição de Arquivos de Inicialização..................................................17
2.8.2.2.1 – Host Remoto Linux (Arquivo rc.local)..........................................................17
2.8.2.2.2 – Host Remoto FreeBSD (Arquivo rc.conf).....................................................17
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 2
CABEÇALHO RETIRADO
1 – PRÉ-INSTALAÇÃO
1.1 – O Nagios
O Nagios é um aplicativo de monitoramento de sistemas e de redes. Ele checa clientes e serviços, por você especificados,
alertando quando as coisas estão indo mal ou se restabelecendo.
O Nagios foi originalmente desenhado para rodar no Linux, apesar dele poder funcionar na maioria dos unices. Para mais
informações sobre em qual sistema operacional o Nagios irá, ou não, funcionar, veja a página de portabilidade em sistemas
operacionais, acessível em http://www.nagios.org/ports.shtml.
Alguma das várias ferramentas do Nagios incluem:
Monitoramento de rede e serviços (SMTP, POP3, HTTP, NNTP, PING, etc.);
Monitoramento dos recursos de clientes (carga de processador, uso de disco, etc.);
Organização simples de plugins que permite aos usuários desenvolverem seus próprios serviços de checagem;
Checagem paralela de serviços;
Habilidade para definir hierarquia de redes de clientes usando clientes pais (parent hosts), permitindo a detecção e
distinção entre clientes que estão desativados e aqueles que estão inalcançáveis;
Notificação de contatos quando problemas em serviços e clientes ocorrerem ou forem resolvidos (via email, pager, ou
métodos definidos pelo usuário);
Habilidade para definir tratadores de eventos (event handlers) que serão executados durante eventos de serviços ou
clientes na tentativa de resolução de problemas;
Rotatividade automática de arquivos de logs;
Suporte para implementação de clientes de monitoramento redundantes;
Interface web para visualização do status atual da rede, histórico de notificações e problemas, arquivos de log, etc.
1.2 – Requisitos
A única exigência para rodar o Nagios é ter um computador rodando Linux (ou variantes do UNIX) e um compilador C.
Você provavelmente necessitará ter o TCP/IP configurado já que a maioria das checagens de serviços serão feitas através da rede.
Você não é obrigado a usar os CGIs incluídos com o Nagios. No entanto, se você optar por usálos, você precisará dos
seguintes programas instalados:
1) Um servidor Web (de preferência Apache);
2) Biblioteca GD (gd library) de Thomas Boutell versão 1.6.3 ou superior (exigida pelas CGIs statusmap e trends).
1.3 – Licença
O Nagios é distribuído sob os termos da GNU General Public License Versão 2 como foi publicado pela Free Software
Foundation. Isto lhe garante permissão de copiar, distribuir e modificar o Nagios sob certas condições. Leia o arquivo 'LICENSE'
que veio na distribuição do Nagios ou leia a versão online da licença para maiores detalhes.
O Nagios é fornecido SEM QUALQUER GARANTIA DE QUALQUER TIPO, INCLUINDO A GARANTIA DE
DESENHO, MECANTIBILIDADE E ADEQUAÇÃO PARA UM PROPÓSITO PARTICULAR.
1.4 – Observações
O Manual do Nagios pode ser baixado do endereço www.nagios.org/docs. Uma versão traduzida do Manual pode ser
encontrada em http://www2.dcc.ufmg.br/~leoh/nagios. Os três itens acima (1.1, 1.2 e 1.3), por exemplo, foram extraídos dessa
última. Destarte, meus sinceros agradecimentos a Leonardo Henrique Machado, mantenedor do site, pelo ótimo trabalho realizado.
A leitura de um desses documentos, previamente à instalação do Nagios, é altamente recomendável.
O Sistema Operacional utilizado como base para a elaboração desse guia foi o Red Hat 9 com kernel linux 2.4.22.
Nagios e o logotipo Nagios são marcas registradas de Ethan Galstad. Todos as demais marcas, servicemarks, marcas
registradas, e servicemarks registrados deverão ser de propriedade de seu(s) respectivo(s) dono(s).
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 3
CABEÇALHO RETIRADO
2 – INSTALAÇÃO
2.2 – Download,
Download, Descompactação e Instalação do Nagios e dos plugins
#mkdir /home/nagios/tmp
> Fazer o download do Nagios e dos plugins (www.nagios.org/download) para o diretório acima.
#cd /home/nagios/tmp
#ls a
. nagios2.0.tar.gz
.. nagiosplugins1.4.2.tar.gz
> Descompactar os arquivos:
#tar xvfz <nome_do_arquivo_do_Nagios> (ex.: #tar xvfz nagios2.0.tar.gz)
#tar xvfz <nome_do_arquivo_dos_plugins> (ex.: #tar xvfz nagiosplugins1.4.2.tar.gz)
> Entrar no diretório do Nagios criado (ex.: #cd /home/nagios/tmp/nagios2.0).
> Rodar o script de configuração do Nagios (Para ver as opções: #./configure help):
prefix: diretório de instalação do Nagios;
withnagiosuser: usuário padrão;
withnagiosgroup: grupo padrão;
withhtmurl: endereço web de acesso ao Nagios (padrão: http://<endereço_local>/nagios);
withcgiurl: endereço web dos CGIs (padrão: http://<endereço_local>/nagios/cgibin).
#./configure prefix=/usr/local/nagios withnagiosuser=nagios withnagiosgroup=nagios withhtmurl=/nagios with
cgiurl=/nagios/cgibin
*** Configuration summary for nagios 2.0 02072006 ***:
General Options:
Nagios executable: nagios
Nagios user/group: nagios,nagios
Command user/group: nagios,nagios
Embedded Perl: no
Event Broker: yes
Install ${prefix}: /usr/local/nagios
Lock file: ${prefix}/var/nagios.lock
Init directory: /etc/rc.d/init.d
Host OS: linuxgnu
Web Interface Options:
HTML URL: http://localhost/nagios/
CGI URL: http://localhost/nagios/cgibin/
Traceroute (used by WAP): /usr/sbin/traceroute
#make all (Compila os fontes)
1
Nesse guia como um todo, as linhas iniciadas pelo caractere '#' referemse a comandos a serem entrados no modo shell. Os trechos que se
encontram entre linhas pontilhadas, quando não se tratarem de observações, referemse a resultados obtidos com a entrada do comando que lhes
antecede.
Regis Soares Machado – Administrador de Redes <regiswork[at]gmail.com>
RODAPÉ RETIRADO
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 4
CABEÇALHO RETIRADO
#make install (Instala o programa principal, as CGIs e os arquivos HTML)
#make installinit (Instala o script de inicialização em /etc/rc.d/init.d)
#make installcommandmode (Instala e configura permissões para o diretório que conterá o arquivo de comandos externos)
#make installconfig (Instala arquivos de configuração de exemplo [*SAMPLE*] em /usr/local/nagios/etc)
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 5
CABEÇALHO RETIRADO
> Ir para o diretório onde foram baixados os plugins: (ex.: #cd /home/nagios/tmp/nagiosplugins1.4.2)
OBS.: Para poderem ser usados, alguns dos plugins precisam que se tenha instalados no computador certos programas e/ou
bibliotecas específicos. No caso da inexistência desses últimos na máquina, os plugins deles dependentes geralmente não são
compilados. Destarte, antes de se iniciar a instalação dos plugins é recomendável a leitura do arquivo REQUIREMENTS.
> Rodar o script de configuração dos plugins (Para ver as opções: #./configure help):
#./configure prefix=/usr/local/nagios withnagiosuser=nagios withnagiosgroup=nagios
#make all
#make install
OBS.: Caso se experimente algum problema relativo a acesso, pode ser necessário alterar algumas permissões.
> Diretório de instalação do Nagios (/usr/local/nagios): #chown nagios:nagios /usr/local/nagios
> Diretório de instalação dos plugins (/usr/local/nagios/libexec): #chown nagios:nagios /usr/local/nagios/libexec
> Arquivos dos plugins: #chown nagios:nagios /usr/local/nagios/libexec/*
Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share">
AllowOverride AuthConfig
Options None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
require validuser
</Directory>
###############################################################################
> Criar o arquivo com o usuário e senha de acesso ao Nagios:
#htpasswd c /usr/local/nagios/etc/htpasswd.users usuario1
> Reiniciar o Apache:
#/usr/sbin/httpd k restart
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 6
CABEÇALHO RETIRADO
> Após isso, já deve ser possível visualizar a interface web do Nagios a partir do endereço http://localhost/nagios no navegador.
Entretanto, as CGIs não fornecerão informação alguma (ainda é necessário configurar corretamente o Nagios).
OBS.: Caso se experimente algum problema relativo a acesso, pode ser necessário alterar as permissões do arquivo htpasswd.users:
#chown apache:apache /usr/local/nagios/etc/htpasswd.users (verificar o usuário e grupo do Apache).
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 7
CABEÇALHO RETIRADO
> Perceba que nem todos os arquivos descritos são estritamente necessários. Entretanto, eles poderão ser usados nos casos em que
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 8
CABEÇALHO RETIRADO
se deseje realizar uma configuração mais avançada do Nagios (fazendose uso de dependências e escalonamentos, por exemplo).
No nosso caso, não utilizaremos nenhum dos arquivos a partir de servicegroups.cfg, inclusive. Em todo caso, conforme já dito
anteriormente, é possível encontrar a descrição e um detalhamento maior dos diferentes itens que irão compor os arquivos acima
nas seções Object Definitions e TemplateBased Object Configuration do Manual do Nagios.
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 9
CABEÇALHO RETIRADO
2.4.2.1 – nagios.cfg
#vi nagios.cfg
> Comentar a linha referente ao arquivo de configuração minimalístico (minimal.cfg):
cfg_file=/usr/local/nagios/etc/minimal.cfg > #cfg_file=/usr/local/nagios/etc/minimal.cfg
> Descomentar as linhas referentes aos arquivos de configuração que serão utilizados:
#cfg_file=/usr/local/nagios/etc/timeperiods.cfg > cfg_file=/usr/local/nagios/etc/timeperiods.cfg
#cfg_file=/usr/local/nagios/etc/checkcommands.cfg > cfg_file=/usr/local/nagios/etc/checkcommands.cfg
#cfg_file=/usr/local/nagios/etc/misccommands.cfg > cfg_file=/usr/local/nagios/etc/misccommands.cfg
#cfg_file=/usr/local/nagios/etc/contacts.cfg > cfg_file=/usr/local/nagios/etc/contacts.cfg
#cfg_file=/usr/local/nagios/etc/contactgroups.cfg > cfg_file=/usr/local/nagios/etc/contactgroups.cfg
#cfg_file=/usr/local/nagios/etc/hosts.cfg > cfg_file=/usr/local/nagios/etc/hosts.cfg
#cfg_file=/usr/local/nagios/etc/hostgroups.cfg > cfg_file=/usr/local/nagios/etc/hostgroups.cfg
#cfg_file=/usr/local/nagios/etc/services.cfg > cfg_file=/usr/local/nagios/etc/services.cfg
> Alterar a opção de formatação da data (DATE FORMAT OPTION) para o padrão europeu:
date_format=us > date_format=euro
2.4.2.2 – cgi.cfg
#vi cgi.cfg
> Realizar as alterações abaixo (e descomentar, se for o caso):
use_authentication=1
authorized_for_system_information=usuario1
authorized_for_configuration_information=usuario1
authorized_for_system commands=usuario1
authorized_for_all_services=usuario1
authorized_for_all_hosts=usuario1
authorized_for_all_service_commands=usuario1
authorized_for_all_host_commands=usuario1
2.4.2.3 – timeperiods.cfg
#vi timeperiods.cfg
> Realizar as alterações abaixo:
###############################################################################
# TIME PERIODS
###############################################################################
define timeperiod{
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
sunday 00:0024:00
monday 00:0024:00
tuesday 00:0024:00
wednesday 00:0024:00
thursday 00:0024:00
friday 00:0024:00
saturday 00:0024:00
}
2.4.2.4 – checkcommands.cfg
#vi checkcommands.cfg
> Realizar a seguinte alteração na definição do comando 'check_local_procs':
$USER1$/check_procs w $ARG1$ c $ARG2$ s $ARG3$ > $USER1$/check_procs w $ARG1$ c $ARG2$
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 10
CABEÇALHO RETIRADO
2.4.2.5 – contacts.cfg
#vi contacts.cfg
> Realizar as alterações abaixo:
###############################################################################
# CONTACTS
###############################################################################
define contact{
contact_name usuario1
alias Usuario 1
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notifybyemail
host_notification_commands hostnotifybyemail
email email@localhost.localdomain # Endereco de email do usuario1.
}
2.4.2.6 – contactgroups.cfg
#vi contactgroups.cfg
> Realizar as alterações abaixo:
###############################################################################
# CONTACT GROUPS
###############################################################################
define contactgroup{
contactgroup_name admins
alias Administradores do Nagios
members usuario1
}
2.4.2.7 – hosts.cfg
#vi hosts.cfg
> Realizar as alterações abaixo:
###############################################################################
# HOSTS
###############################################################################
# Template!
define host{
name generichost ; The name of this host template
notifications_enabled 1 ; Host notifications are enabled
event_handler_enabled 1 ; Host event handler is enabled
flap_detection_enabled 1 ; Flap detection is enabled
failure_prediction_enabled 1 ; Failure prediction is enabled
process_perf_data 1 ; Process performance data
retain_status_information 1 ; Retain status information across program restarts
retain_nonstatus_information 1 ; Retain nonstatus information across program restarts
register 0 ; DONT REGISTER ITS NOT A REAL HOST, JUST A TEMPLATE!
}
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 11
CABEÇALHO RETIRADO
# Localhost
define host{
use generichost ; Name of host template to use
host_name localhost
alias localhost
address 127.0.0.1
check_command checkhostalive
max_check_attempts 10
notification_interval 120
notification_period 24x7
notification_options d,r
contact_groups admins
}
2.4.2.8 – hostgroups.cfg
#vi hostgroups.cfg
> Realizar as alterações abaixo:
###############################################################################
# HOST GROUPS
###############################################################################
define hostgroup{
hostgroup_name servers
alias Servidores
members localhost
}
2.4.2.9 – services.cfg
#vi services.cfg
> Realizar as alterações abaixo:
###############################################################################
#
# SERVICES
#
###############################################################################
###############################################################################
# LOCALHOST NAGIOS
###############################################################################
# Template!
define service{
name genericservice ; The name of this service template
active_checks_enabled 1 ; Active service checks are enabled
passive_checks_enabled 1 ; Passive service checks are enabled/accepted
parallelize_check 1 ; Active service checks should be parallelized
# (disabling this can lead to major performance problems)
obsess_over_service 1 ; We should obsess over this service (if necessary)
check_freshness 0 ; Default is to NOT check service 'freshness'
notifications_enabled 1 ; Service notifications are enabled
event_handler_enabled 1 ; Service event handler is enabled
flap_detection_enabled 1 ; Flap detection is enabled
failure_prediction_enabled 1 ; Failure prediction is enabled
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 12
CABEÇALHO RETIRADO
process_perf_data 1 ; Process performance data
retain_status_information 1 ; Retain status information across program restarts
retain_nonstatus_information 1 ; Retain nonstatus information across program restarts
register 0 ; DONT REGISTER ITS NOT A REAL SERVICE, JUST A TEMPLATE!
}
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 13
CABEÇALHO RETIRADO
# Serviço de checagem do espaço em disco na partição root da máquina local.
# Warning se < 20% livre, Critical se < 10% livre.
define service{
use genericservice ; Name of service template to use
host_name localhost
service_description Root Partition
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_local_disk!20%!10%!/
}
# Serviço de checagem do número de usuários correntemente logados na máquina local.
# Warning se > 20 usuários, Critical se > 50 usuários.
define service{
use genericservice ; Name of service template to use
host_name localhost
service_description Current Users
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_local_users!20!50
}
# Serviço de checagem do número de processos correntemente rodando na máquina local.
# Warning se > 250 processos, Critical se > 400 processos.
define service{
use genericservice ; Name of service template to use
host_name localhost
service_description Total Processes
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_local_procs!250!400
}
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 14
CABEÇALHO RETIRADO
# Serviço de checagem da carga na máquina local.
define service{
use genericservice ; Name of service template to use
host_name localhost
service_description Current Load
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
}
# Serviço de "ping" da máquina local
define service{
use genericservice ; Name of service template to use
host_name localhost
service_description PING
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_ping!100.0,20%!500.0,60%
}
OBS.: Para se obter uma descrição do que realizam, exemplos, bem como detalhes relativos ao uso e às várias opções de
parâmetros aceitas por cada um dos plugins, basta dar o comando '#./nome_do_plugin h[elp]' no diretório em que estes estejam
(ex.: /usr/local/nagios/libexec).
> Alterar a permissão dos arquivos criados:
#chown nagios:nagios /usr/local/nagios/etc/*.cfg
> Para iniciar/parar/reiniciar o Nagios:
#/etc/rc.d/init.d/nagios start [stop] [restart]
OBS.: Caso se experimente algum tipo de problema ou comportamento inesperado, convém verificar se:
i) as permissões para o usuário e grupo 'nagios' foram adequadamente alteradas (observação final do item 2.2);
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 15
CABEÇALHO RETIRADO
ii) o Apache está corretamente configurado e rodando (referirse ao item 2.3);
ii) os arquivos de configuração (/usr/local/nagios/etc/*.cfg) foram editados corretamente (referirse ao item 2.4).
> Após se iniciar o Nagios, é possível conferir se este está mesmo rodando (e ver o seu PID) a partir do comando:
#ps aux | grep nagios
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 16
CABEÇALHO RETIRADO
Figura 01 – Detalhe do monitoramento do host local obtido a partir da guia “Service Detail” na interface web do Nagios.
> Para habilitar o envio de comandos externos ao Nagios, por exemplo, por meio da interface web:
#vi /usr/local/nagios/etc/nagios.cfg > check_external_commands=1
#chown R nagios:apache /usr/local/nagios/var/rw
#adduser nagios
#pw group add nagios
#adduser nagios
Username : nagios
Password : *****
Full Name : Nagios
Uid : 10222
Class :
Groups : nagios
Home : /home/nagios
Shell : /usr/local/bin/bash
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (nagios) to the user database.
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 17
CABEÇALHO RETIRADO
2.7.2 – Download,
Download, Instalação e Configuração do NRPE nos Hosts Remotos
> Fazer o download do addon NRPE (ex.: nrpe2.3.tar.gz, www.nagios.org/download) para o diretório /home/nagios/tmp.
#cd /home/nagios/tmp
#tar xvfz <nome_do_arquivo_do_NRPE> (ex.: #tar xvfz nrpe2.3.tar.gz)
> Entrar no diretório do NRPE criado (ex.: #cd /home/nagios/tmp/nrpe2.3).
#./configure
*** Configuration summary for nrpe 2.3 01232006 ***:
General Options:
NRPE port: 5666
NRPE user: nagios
NRPE group: nagios
#make all
> Realizar, no host remoto, o procedimento de download e instalação dos plugins, conforme descrito no item 2.2, tomandose
apenas o cuidado de alterar a linha abaixo adequadamente:
#./configure prefix=/home/nagios withnagiosuser=nagios –withnagiosgroup=nagios
> Instalar o addon NRPE a partir do mecanismo ports do FreeBSD:
#cd /usr/ports
#make search name=nrpe
Port: nrpe22.0_1
Info: Nagios Remote Plugin Executor
Path: /usr/ports/netmgmt/nrpe2
Maint: paul@nerdlabs.com
Bdeps: perl5.8.7
Rdeps: nagiosplugins1.4_3,1 perl5.8.7
WWW: http://www.nagios.org/
#cd /usr/ports/netmgmt/nrpe2 (#cd <Path>)
#make all
> Marcar as opções SSL (SSL support) e ARGS (Enable command arguments) e dar OK.
*** Configuration summary for nrpe 2.0 09082003 ***:
General Options:
NRPE port: 5666
NRPE user: nagios
NRPE group: nagios
(...)
*** Compile finished ***
(...)
OBS.: No caso do FreeBSD, a instalação do addon NRPE pelo ports cuida automaticamente, também, da instalação dos plugins.
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 18
CABEÇALHO RETIRADO
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 19
CABEÇALHO RETIRADO
OBS.: Apesar de não ser necessário instalar o Nagios, também, em cada um dos hosts remotos, é preciso, sim, instalar nestes,
conforme explicitado acima, os plugins, de modo que estes hosts sejam capazes de efetuar, entre outras coisas, certas checagens de
recursos “locais” como, por exemplo, a verificação do espaço em disco, a partir da interação com o addon NRPE.
OBS2.: Se os sistemas operacionais forem compatíveis, pode ser viável (e, dependendo do caso, menos trabalhoso) realizarse a
simples cópia do diretório dos plugins da máquina onde foi originalmente instalado o Nagios (/usr/local/nagios/libexec) para
/home/nagios no host remoto, como, por exemplo, no caso em que seja possível fazer um acesso remoto de uma máquina para outra
(ex.: #scp /usr/local/nagios/libexec [r] <IP_do_host_remoto>:/home/nagios).
> Editar o arquivo de configuração do NRPE, nrpe.cfg (ex.: #vi /home/nagios/tmp/nrpe2.3/sampleconfig/nrpe.cfg), adicionando
a seguinte linha de definição de comando em COMMAND DEFINITIONS:
command[check_local_disk]=/home/nagios/libexec/check_disk w 20% c 10% p /
> Adicionar a seguinte linha no arquivo /etc/services:
nrpe 5666/tcp #NRPE (Nagios)
> Adicionar entrada ao arquivo /etc/hosts.allow para habilitar o acesso do host que irá rodar o Nagios ao serviço nrpe:
nrpe : <IP_do_host_do_Nagios> : allow
> Inserir, ao final do arquivo de configuração de comandos do Nagios (#vi /usr/local/nagios/etc/checkcommands.cfg):
################################################################################
# NRPE COMMAND
################################################################################
# 'check_nrpe' command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe H $HOSTADDRESS$ c $ARG1$
}
> As definições de serviços que façam uso do plugin/daemon NRPE para obter seus resultados deverão seguir o modelo abaixo:
define service{
use genericservice ; Name of service template to use
host_name algum_host_remoto
service_description algum_serviço_remoto
... etc ...
check_command check_nrpe!yourcommand
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 20
CABEÇALHO RETIRADO
}
OBS.: “yourcommand” é o nome de um comando definido no arquivo nrpe.cfg do host remoto, a exemplo do que foi estabelecido
no item 2.7.1 (command[check_local_disk]=/home/nagios/libexec/check_disk w 20% c 10% p /).
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 21
CABEÇALHO RETIRADO
> Exemplo: Adicionar ao final do arquivo services.cfg
###############################################################################
# HOST REMOTO ALGUM_HOST_REMOTO
###############################################################################
# Serviço de checagem do espaço em disco na partição root do host remoto.
# Warning se < 20% livre, Critical se < 10% livre.
define service{
use genericservice ; Name of service template to use
host_name host_remoto
service_description Particao Root
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_nrpe!check_local_disk
}
# Serviço de "ping" de host remoto
define service{
use genericservice ; Name of service template to use
host_name host_remoto
service_description PING
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_ping!100.0,20%!500.0,60%
}
OBS.: Perceba como, no caso do primeiro serviço definido acima (Partição Root), se fez uso do plugin NRPE (check_nrpe
chamando o comando check_local_disk, definido no arquivo nrpe.cfg do host remoto), por se tratar da checagem de um recurso
local da máquina remota (espaço em disco), não verificável diretamente pela rede. Já a checagem definida no segundo serviço
(PING), por outro lado, é possível de ser realizada diretamente pela rede, não necessitando, assim, recorrer ao plugin NRPE.
> Reiniciar o Nagios:
#/etc/rc.d/init.d/nagios restart
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 22
CABEÇALHO RETIRADO
Figura 02 – Detalhe do monitoramento dos hosts local e remoto obtido a partir da guia “Service Detail” na interface web do Nagios.
> Como se pode perceber, nenhum dos scripts que efetivamente iniciam ou param os serviços em questão estão realmente
localizados nesse diretório (no caso, /etc/rc.d/rc3.d). O que se tem aqui são apenas links simbólicos (soft links) para os mesmos, os
quais se localizam, em efeito, no diretório /etc/rc.d/init.d. Isso é feito para que seja possível reconfigurar a inicialização dos
diferentes runlevels por meio da criação, modificação e deleção de links simbólicos apenas, sem, contudo, afetar os próprios scripts
por eles referenciados. Os nomes dos links podem ser iniciados por K ou por S, seguidos de um número. Os links K referemse a
processos que serão interrompidos (killed) na inicialização do runlevel (execução do comando '/etc/rc.d/init.d/<processo> stop'), ao
passo que os links S representam processos que serão, por sua vez, iniciados (started; execução de '/etc/rc.d/init.d/<processo>
start'). O procedimento de interrupção de processos (links K) ocorre primeiro que o de inicialização (links S), em ambos os casos
obedecendo a ordem numérica respectiva. No caso de processos com a mesma numeração, seguese a ordem alfabética do nome.
> Criar, no diretório de inicialização do runlevel padrão (ex.: /etc/rc.d/rc3.d), um link simbólico para o lançamento do Nagios
(/etc/rc.d/init.d/nagios) com o boot do sistema (ex.: #ln s /etc/rc.d/init.d/nagios /etc/rc.d/rc3.d/S99nagios).
OBS.: Opcionalmente, realizar o mesmo procedimento para o lançamento automático do serviço httpd (Apache) na inicialização:
> Criar, no diretório de inicialização do runlevel padrão (ex.: /etc/rc.d/rc3.d), um link simbólico para o lançamento do serviço
httpd (/etc/rc.d/init.d/httpd) com o boot do sistema (ex.: #ln s /etc/rc.d/init.d/httpd /etc/rc.d/rc3.d/S99httpd).
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 23
CABEÇALHO RETIRADO
>>> PARA CADA UM DOS HOSTS
>>> PARA CADA UM DOS HOSTS REMOTOS A SEREM MONITORADOS, realizar os passos a seguir:
REMOTOS A SEREM MONITORADOS, realizar os passos a seguir:
> Adicionar entradas para o daemon NRPE ao arquivo de configuração, dependendo do sistema, do inetd ou xinetd:
a) INETD (/etc/inetd.conf ou /etc/inet/inetd.conf)
i) WITH tcpwrappers: nrpe stream tcp nowait <user> /.../tcpd <nrpebin> c <nrpecfg> inetd
(obs.: /.../tcpd = /usr/sbin/tcpd, /usr/libexec/tcpd ou /usr/etc/tcpd, por exemplo, conforme o caso)
ii) WITHOUT tcpwrappers: nrpe stream tcp nowait <user> <nrpebin> c <nrpecfg> inetd
b) XINETD: Criar um arquivo chamado 'nrpe' no diretório /etc/xinetd.d contendo:
# default: on
# description: NRPE
service nrpe
{
flags = REUSE
socket_type = stream
wait = no
user = <user>
server = <nrpebin>
server_args = c <nrpecfg> inetd
log_on_failure += USERID
disable = no
only_from = <ipaddress1> <ipaddress2> ...
}
OBS.: <user>: usuário em nome do qual o servidor nrpe deve rodar;
<nrpebin>: caminho do binário nrpe no sistema (ex.: /home/nagios/tmp/nrpe2.3/src/nrpe);
<nrpecfg>: caminho do arquivo de configuração nrpe no sistema (ex.: /home/nagios/tmp/nrpe2.3/sampleconfig/nrpe.cfg);
<ipaddress>: endereços IP dos hosts permitidos a se conectar com o daemon NRPE. Funciona apenas caso o xinetd tenha
sido compilado com suporte a tcpwrappers.
> Reiniciar o inetd ou xinetd, conforme seja o caso:
#/etc/rc.d/inetd [xinetd] restart
>>> PARA CADA UM DOS HOSTS REMOTOS LINUX A SEREM MONITORADOS, realizar o procedimento a seguir:
> Editar o arquivo rc.local (#vi /etc/rc.d/rc.local), adicionando uma linha referente à chamada de execução do cliente NRPE
(ex.: /home/nagios/tmp/nrpe2.3/src/nrpe c /home/nagios/tmp/nrpe2.3/sampleconfig/nrpe.cfg d).
>>> PARA CADA UM DOS HOSTS REMOTOS FREEBSD A SEREM MONITORADOS, realizar o procedimento a seguir:
> Copiar o script de inicialização do NRPE (ex.: /usr/ports/netmgmt/nrpe2/work/nrpe2.sh) para /usr/local/etc/rc.d:
#cp /usr/ports/netmgmt/nrpe2/work/nrpe2.sh /usr/local/etc/rc.d
> Editar o arquivo rc.conf (#vi /etc/rc.conf), adicionando, de forma diferente da acima, a referida linha de chamada automática de
execução do NRPE (nrpe2_enable=”YES”).
Distribuído sob a licença Creative Commons (CC) Attribution-NonCommercial-ShareAlike 2.5 (details at http://creativecommons.org/licenses/by-nc-sa/2.5)
http://creativecommons.org/licenses/by-nc-sa/2.5) 24