INSTALAÇÃO
Para a instalação do
Nagios é necessário primeiro baixar as dependências:
apt-get install wget
install build-essential apache2 php5-gd wget libgd2-xpm
libgd2-xpm-dev
libapache2-mod-php5
sendmail -y
Em seguida deve-se
criar o usuário e o grupo que fará a operação dos serviços:
useradd nagios
groupadd nagios
usermod -a -G nagios
nagios
A instalação do
sistema foi feita através dos códigos-fontes da versão 3.4.3 do
Nagios baixada através do endereço
http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.4.3.tar.gz
. Colocar o arquivo na pasta /opt e descompactar o arquivo com o
comando tar xvzf nagios-3.4.3.tar.gz. Dentro da pasta do Nagios,
para efetuar a instalação, devemos executar os seguintes comandos:
./configure
--with-nagios-group=nagios --with-command-group=nagios
--with-mail=/usr/bin/sendmail
make all
make install
make install-init
make install-config
make
install-commandmode
make install-webconf
Em seguida criaremos o
login padrão para acesso à interface web do Nagios:
htpasswd –c
/usr/local/nagios/etc/htpasswd.users nagiosadmin
Para incluir o serviço
na inicialização do sistema, execute o seguinte código:
ln -s
/etc/init.d/nagios /etc/rcS.d/S99nagios
O início manual do
serviço é feito através do comando:
service nagios start
Sua reinicialização é
feita através do comando:
service nagios restart
Sua paralização é
feita através do comando:
service nagios start
ESTRUTURA
A estrutura padrão de diretórios do Nagios é a seguinte:
/usr/local/nagios – Raíz do sistema
/usr/local/nagios/bin - Binários do sistema, incluindo o plugin NRPE
/usr/local/nagios/etc - Arquivos de configuração básica do sistema
/usr/local/nagios/etc/objects – Arquivos de configuração de comandos, templates, contatos,
grupos de hosts, e modelos de configurações para monitoramento de diferentes tipos de
hosts.
/usr/local/nagios/include – Arquivos a serem incluídos na configuração do sistema (vazio
por padrão)
/usr/local/nagios/libexec – Binários dos plugins de checagem de hosts
/usr/local/nagios/sbin – Binários de execução do CGI
/usr/local/nagios/share – Arquivos utilizados para o web front-end do Nagios
/usr/local/nagios/var – Arquivos de log, de bloqueio de inicialização quando o sistema já
está executando, etc.
CONFIGURAÇÕES
Todos os arquivos de configuração do Nagios deve conter por padrão a extensão “.cfg”,
e devem ser discriminados (ou apenas os seus diretórios) no arquivo de configuração
principal /usr/local/nagios/etc/nagios.cfg.
As configurações principais devem ser feitas no arquivo /usr/local/nagios/etc/nagios.cfg alterando-se
apenas algumas linhas conforme demonstrado abaixo:
28 cfg_file=/usr/local/nagios/etc/objects/commands.cfg
29 cfg_file=/usr/local/nagios/etc/objects/hostgroups.cfg
30 cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
31 cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
32 cfg_file=/usr/local/nagios/etc/objects/templates.cfg
33 cfg_file=/usr/local/nagios/etc/hosts/servers/localhost.cfg
As linhas acima definem quais arquivos de configurções específicos serão utilizados
39 cfg_dir=/usr/local/nagios/etc/hosts/
Essas linhas informam quais diretórios de arquivos de configurações de monitoramento serão utilizados.
Note a diferença entre as linhas dos arquivos de configurações que começam com “cfg_file=”, essas
linhas começam com “cfg_dir=”.
117 check_external_commands=1
A linha acima define se o Nagios vai utilizar comandos externos, definidos no arquivo
“/usr/local/nagios/etc/objects/commands.cfg”. Por padrão o Nagios não verifica comandos externos, o
número “1” indica que ele passa a verificar.
PLUGINS
Os plugins são os
responsáveis por coletar informações de monitoramento dos hosts
incluindo o localhost. Eles devem ser baixados na pasta /opt através
do endereço
http://sourceforge.net/projects/nagiosplug/files/nagiosplug/1.4.16/nagios-plugins-1.4.16.tar.gz/download?use_mirror=ufpr
, e descompactado da mesma forma que o Nagios. Em seguida, dentro da
pasta descompactada nagios-plugins-1.4.16 executar os comandos abaixo
para realizar a instalação:
./configure
--with-nagios-user=nagios --with-nagios-group=nagios
make
make
install
Cada
plugin tem a sua configuração específica, e os argumentos de cada
um podem ser visualizados apenas executando-os sem nenhum parâmetro,
exemplo:
./plugin
NRPE
O plugin NRPE é o mais importante plugin do Nagios. Ele consegue trabalhar com a arquitetura
cliente-servidor, e é totalmente customizável nos hosts.
O plugin NRPE pode ser adquirido através do endereço:
http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
Deve ser salvo no diretório /opt e então descompactado com o comando:
tar xvzf nrpe-2.13.tar.gz
Dentro do diretório que foi descompactado, deve-se executar os seguintes comandos para compilação e
instalação do plugin:
./configure
make
make install
Para a utilização do NRPE devemos adicionar as seguintes linhas ao arquivo
/usr/local/nagios/etc/objects/commands.cfg:
# 'check_nrpe' command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
Essas linhas permitem ao Nagios executar os comandos do plugin NRPE.
Para clientes Linux, a instalação é muito similar, o download é o mesmo e deve ser salvo no diretório /opt.
Depois de descompactado, deve-se entrar no diretório descompactado e executar os seguintes comandos:
./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu
make
make install
Em seguida deve-se copiar o arquivo de configuração que está em sample-config/nrpe.cfg para o diretório
do plugin /usr/local/nagios/bin/. As linha abaixo devem ser alterada colocando-se os hosts que tem
permissão para coletar os dados do plugin:
81 allowed_hosts=127.0.0.1, ip.do.servidor.nagios
A partir da linha 201 deve-se configurar os comandos utilizados pelo NRPE, por exemplo:
201 command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
202 command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
203 command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
204 command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
205 command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
O NRPE utiliza os plugins locais para coletar os dados do host, então basta adicionar a linha de comando
seguindo o padrão acima e utilizando os plugins locais.
No servidor, para se utilizar o NRPE deve-se criar as linhas (exemplo):
define service{
use generic-service
host_name host
service_description Processos em Execucao
check_command check_nrpe!check_total_procs
}
NSCLIENT++
O NSClient++ é um plugin para monitoramento de hosts Windows.
O download do plugin deve ser feito em http://files.nsclient.org/stable/NSCP-0.4.1.73-x64.msi .
A instalação no Windows é bem simples, basta avançar até pedir o endereço IP do servidor Nagios, na
senha deixe em branco, vamos configurá-la mais tarde. Após a instalação, o arquivo c:\Arquivos de
Programas\NSclient\NSC.ini , as seguintes linhas devem ser descomentadas:
[modules]
FileLogger.dll
CheckSystem.dll
CheckDisk.dll
NSClientListener.dll
SysTray.dll
CheckEventLog.dll
CheckHelpers.dll
CheckWMI.dll
[Settings]
use_file=1
allowed_hosts=
[NSClient]
allowed_hosts=
port=1248 9
E na linha da Password você escolherá uma senha para que o Nagios se conecte ao Nsclient++.
A configuração no Nagios é feita no arquivo /usr/local/nagios/etc/objects/commands.cfg adicionando-se as
seguintes linhas:
define command{
command_name check_nt
command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -s nagios -v $ARG1$ $ARG2$
}
No arquivo de configurações dos hosts os serviços são definidos seguindo os seguintes padrões:
define service{
use generic-service
host_name host
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
}
PNP4NAGIOS
O pnp4nagios é um utilitário que gera gráficos através dos dados de performance gerados pelo Nagios.
O utilitário pode ser adquirido através do endereço
http://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.19.tar.gz e salvo no
diretório /opt do servidor Nagios.
Sua instalação é feita através de códigos-fontes descompactando-se o arquivo baixado e entrando no
diretório descompactado. Em seguida executar os seguintes comandos:
./configure --with-nagios-user=nagios –with-nagios-group=nagios
make all
make install
make install-webconf
make install-config
make install-init
make fullinstall
Deve-se instalar também o pacote rrdtool:
apt-get install rrdtool
O primeiro passo para a configuração do pnp4nagios é a configuração do arquivo nagios.cfg. Deve-se
alterar as seguintes linhas:
711 process_performance_data=1
736 service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
737 service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\t
HOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::
$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$
\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::
$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
738 service_perfdata_file_mode=a
739 service_perfdata_file_processing_interval=15
740 service_perfdata_file_processing_command=process-service-perfdata-file
744 host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
745 host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::
$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::
$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOST
STATETYPE$
746 host_perfdata_file_mode=a
747 host_perfdata_file_processing_interval=15
748 host_perfdata_file_processing_command=process-host-perfdata-file
Em seguida deve-se alterar o arquivo commands.cfg nas seguintes linhas:
285 define command{
286 command_name process-service-perfdata-file
287 command_line /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/
var/spool/service-perfdata.$TIMET$
288 }
289
290 define command{
291 command_name process-host-perfdata-file
292 command_line /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/
var/spool/host-perfdata.$TIMET$
293 }
Salve o arquivo, reinicie o nagios e no navegador visite o endereço:
http://nagios/pnp4nagios para que a instalação seja finalizada.
Para que os gráficos sejam gerados, a seguinte linha deve ser adicionada aos serviços configurados nos
arquivos dos hosts:
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
E a partir de agora os gráficos serão gerados para cada serviço em que a linha acima foi adicionada.
TEMPLATES
Os templates do Nagios definem o modelo de monitoramento do hosts. Esses modelos estão armazenados
em /usr/local/nagios/etc/objects/templates.cfg e são definidos da seguinte forma:
define host{
name generic-host ; Nome do template
notifications_enabled 1 ; Notificações de host estão habilitadas
event_handler_enabled 1 ; Manipulação de eventos estão habilitadas
flap_detection_enabled 1 ; Detecção de flaps está habilitada
failure_prediction_enabled 1 ; Predição de falhas está habilitada
process_perf_data 1 ; Processar dados de performance
retain_status_information 1 ; Retém informações de status se o programa reiniciar
retain_nonstatus_information 1 ; Retém informações non-status se reiniciar
notification_period 24x7 ; Envia notificações todo o tempo
register 0 ; Não registrar porque é apenas um template
}
Os templates específicos herdam várias características dos templates genéricos, mas pode ser totalmente
customizáveis.
define host{
name linux-server ; Template de host Linux
use generic-host ; Utiliza o template de host genérico
check_period 24x7 ; Checa os hosts todo o tempo
check_interval 5 ; Intervalo de 5 minutos entre as checagens
retry_interval 1 ; Intervalo de 1 minuto caso a checagem dê errado
max_check_attempts 10 ; Máximo de 10 checagens caso dê errado
check_command check-host-alive ; Comando que verifica se o host está online
notification_period 24x7 ; Notifica todo o tempo
notification_interval 30 ; Intervalo de notificação de um mesmo evento
notification_options d,u,r ; Eventos notificados (down,unknow,recovery)
contact_groups admins ; Grupo de contatos a ser notificado
register 0
}
define host{
name windows-server
use generic-host
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period 24x7
notification_interval 30
notification_options d,u,r
contact_groups admins
hostgroups windows-servers
register 0
}
define host{
name database-server
use generic-host
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period 24x7
notification_interval 30
notification_options d,u,r
contact_groups admins
register 0
}
define host{
name generic-printer
use generic-host
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period workhours
notification_interval 30
notification_options d,r
contact_groups admins
register 0
}
define host{
name generic-switch
use generic-host
check_period 24x7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period 24x7
notification_interval 30
notification_options d,r
contact_groups admins
register 0
}
define service{
name generic-service
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
failure_prediction_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
is_volatile 0
check_period 24x7
max_check_attempts 3
normal_check_interval 10
retry_check_interval 2
contact_groups admins
notification_options w,u,c,r
notification_interval 60
notification_period 24x7
register 0
}
define service{
name local-service ; The name of this service template
use generic-service ; Inherit default values from the generic-service definition
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
register 0
}
define contact{
name generic-contact
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r,f,s
host_notification_options d,u,r,f,s
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
register 0
}
Os contatos e grupos de contatos são definidos no arquivo contacts.cfg.
Os contatos estão definidos da seguinte forma:
define contact{
contact_name nagiosadmin
use generic-contact
alias Nagios Admin
e-mail nagios@nagios.com.br
}
Os grupos estão definidos da seguinte forma:
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members nagiosadmin
}
EXEMPLO DE HOST
Este é um exemplo básico de um arquivo de configuração de um host, que deve ser salvo como
hostname.cfg
Ele monitorará apenas o número de usuários logados:
define host{
use linux-server
host_name hostname
alias Server Linux
icon_image redhat.jpg
address 192.168.x.x
}
define hostgroup{
hostgroup_name redhat-servers
alias RedHat Servers
}
define service{
use generic-service
host_name hostname
service_description Usuarios Logados
check_command check_nrpe!check_users
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
}
Nenhum comentário:
Postar um comentário