Olá! Visitante, reunimos aqui, informações sobre a ferramenta Nagios, Sistema de Monitoramento de Hosts e Serviços, utilizando protocolos de Redes.
Nagios é uma popular aplicação de monitoramento de rede de código aberto distribuída sob a licença GPL. Ele pode monitorar tanto hosts quanto serviços, alertando quando ocorrerem problemas e também quando os problemas são resolvidos.
Entre os Protocolos utilizados estão: SMTP, POP3, HTTP, NTP, ICMP, SNMP.
tar xvf nagios-4.4.1.tar.gz
cd nagios-4.4.1
./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf **** (caso precise)
Configurando Acesso WEB
nano /etc/apache2/sites-enabled/nagios.conf
ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"
<Directory "/usr/local/nagios/sbin">
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>
Alias /nagios "/usr/local/nagios/share"
<Directory "/usr/local/nagios/share">
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
Require valid-user
</Directory>
cd /opt
tar xvf nagios-plugins-2.2.1.tar.gz && cd nagios-plugins-2.2.1
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make && make install
Nagios na inicialização
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Verificar se arquivo de conf está OK
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
service nagios start
Ativar o CGI no apache
cd /etc/apache2/mods-enabled
ln -s ../mods-available/cgi.load cgi.load
nano /etc/apache2/mods-enabled/mime.conf e remover (#) na linha "#AddHandler cgi-script .cgi"
service apache restart
Cadastrar Grupos
Editar /usr/local/nagios/etc/nagios.cfg
nano /usr/local/nagios/etc/nagios.cfg
Adicionar o caminho do .cfg (config) dos serviços para estes hosts.
# Definitions for monitoring from groups
cfg_file=/usr/local/nagios/etc/objects/groups.cfg
Fazer uma cópia do arquivo /usr/local/nagios/etc/objects/localhost.cfg em /usr/local/nagios/etc/objects/groups.cfg
Remover todas as linhas que não são referentes ao HOST GROUP DEFINITION, deixando como no exemplo:
ATENÇÃO: Para criar um novo grupo, apenas faça como no exemplo abaixo e para adicionar um host em um grupo, seja um novo ou já existente, apenas coloque ao lado de members, o nome do host que irá pertencer ao grupo, separando por vírgulas.
###############################################################################
###############################################################################
## HOST GROUP DEFINITION
################################################################################
###############################################################################
# Definições para o grupo de máquinas Linux
define hostgroup{
hostgroup_name linux-servers ; Nome do Grupo
alias Grupo de Servidores Linux ; Nome Completo do Grupo
members localhost ; Membros (hosts) que iram participar do grupo, separados por (, )
}
# Definições para o grupo de máquinas windows
define hostgroup{
hostgroup_name windows-servers ; Nome do Grupo
alias Windows Desktops ; Nome Completo do Grupo
members windows_10 ; Membros (hosts) que iram participar do grupo, separados por (, )
}
Cadastrar Hosts Linux
Editar /usr/local/nagios/etc/nagios.cfg
nano /usr/local/nagios/etc/nagios.cfg
Adicionar o caminho do .cfg (config) dos hosts Servidores Linux.
# Definitions for monitoring the (Linux) host
cfg_file=/usr/local/nagios/etc/objects/linux.cfg
Fazer uma cópia do arquivo /usr/local/nagios/etc/objects/localhost.cfg em /usr/local/nagios/etc/objects/linux.cfg
###############################################################################
###############################################################################
#
# HOST DEFINITIONS
#
###############################################################################
###############################################################################
# Definição do host Windows que será monitorado, para cada novo host windows
# copie e cole os paremetros abaixo e modifique o host_name, alias, address.
define host{
use windows-server ; Template que será utilizado
host_name windows_10 ; Nome do host a ser monitorado
alias Windows_10_Finaceiro ; Nome completo do host
address 192.168.200.117 ; Endereço IP do host
}
###############################################################################
###############################################################################
#
# SERVICE DEFINITIONS
#
###############################################################################
###############################################################################
#>>> Estes serviços são diferentes do arquivo services.cfg, pois aqui estamos utilizando
#>>> o plugin NSClient no host windows, para ser possivel a execução de comandos no host.
#>>> Para atribuir os serviços em cada host cadastrado acima , é necessário incluir em cada
#>>> Serviço no campo host_name: ex. host_name windows_10, windows_2012, ...
# Create a service for monitoring the version of NSCLient++ that is installed
# Change the host_name to match the name of the host you defined above
define service{
use generic-service
host_name windows_10
service_description NSClient++ Version
check_command check_nt!CLIENTVERSION
}
...
Cadastrar Serviços
Editar /usr/local/nagios/etc/nagios.cfg
nano /usr/local/nagios/etc/nagios.cfg
Adicionar o caminho do .cfg (config) dos serviços para estes hosts.
# Definitions for monitoring the Services
cfg_file=/usr/local/nagios/etc/objects/services.cfg
Fazer uma cópia do arquivo /usr/local/nagios/etc/objects/localhost.cfg em /usr/local/nagios/etc/objects/services.cfg
Remover todas as linhas antes de : SERVICE DEFINITIONS, mantendo apenas as informações dos comentários para baixo.
Em: host_name, adicionar o nome dos hosts que serão monitorados, como no exemplo:
host_name localhost, server-logs
NAGIOS Mandando E-mail
Editar o arquivo /usr/local/nagios/etc/objects/contacts.cfg
nano /usr/local/nagios/etc/objects/contacts.cfg
Configurar conforme exemplo para o nagios enviar e-mail:
define contact{
contact_name nagiosadmin ; Nome curto do contato
use generic-contact ; Template que será utilizado generic-contacts
alias Nagios Admin ; Nome completo do Usuário
host_notification_period 24x7 ; Tempo de notificação de host
service_notification_period 24x7 ; Tempo de notificação de serviço
host_notification_options d,u,r ; Opções de notificação de host (d= Down, u= Unknown, r= Recovery)
service_notification_options u,c,r ; Opções de notificações de serviço (u= Unknown c= Critical r= Recovery)
host_notification_commands notify-host-by-email ; Opção de host para notificar por e-mail
service_notification_commands notify-service-by-email ; Opção de serviço para notificar por e-mail
email [email protected] ; <<***** Altere para o seu e-mail
}
Exemplo de arquivo para Windows Server
###############################################################################
# WINDOWS.CFG - SAMPLE CONFIG FILE FOR MONITORING A WINDOWS MACHINE
#
#
# NOTES: This config file assumes that you are using the sample configuration
# files that get installed with the Nagios quickstart guide.
#
###############################################################################
###############################################################################
###############################################################################
#
# HOST DEFINITIONS
#
###############################################################################
###############################################################################
# Definição do host Windows que será monitorado, para cada novo host windows
# copie e cole os paremetros abaixo e modifique o host_name, alias, address.
define host{
use windows-server ; Template que será utilizado
host_name windows_10 ; Nome do host a ser monitorado
alias Windows_10_Finaceiro ; Nome completo do host
address 192.168.200.117 ; Endereço IP do host
}
###############################################################################
###############################################################################
#
# SERVICE DEFINITIONS
#
###############################################################################
###############################################################################
#>>> Estes serviços são diferentes do arquivo services.cfg, pois aqui estamos utilizando
#>>> o plugin NSClient no host windows, para ser possivel a execução de comandos no host.
#>>> Para atribuir os serviços em cada host cadastrado acima , é necessário incluir em cada
#>>> Serviço no campo host_name: ex. host_name windows_10, windows_2012, ...
# Create a service for monitoring the version of NSCLient++ that is installed
# Change the host_name to match the name of the host you defined above
define service{
use generic-service
host_name windows_10
service_description NSClient++ Version
check_command check_nt!CLIENTVERSION
}
# Create a service for monitoring the uptime of the server
# Change the host_name to match the name of the host you defined above
define service{
use generic-service
host_name windows_10
service_description Uptime
check_command check_nt!UPTIME
}
# Create a service for monitoring CPU load
# Change the host_name to match the name of the host you defined above
define service{
use generic-service
host_name windows_10
service_description CPU Load
check_command check_nt!CPULOAD!-l 5,80,90
}
# Create a service for monitoring memory usage
# Change the host_name to match the name of the host you defined above
define service{
use generic-service
host_name windows_10
service_description Memory Usage
check_command check_nt!MEMUSE!-w 80 -c 90
}
# Create a service for monitoring C:\ disk usage
# Change the host_name to match the name of the host you defined above
define service{
use generic-service
host_name windows_10
service_description C:\ Drive Space
check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
}
# Create a service for monitoring the W3SVC service
# Change the host_name to match the name of the host you defined above
define service{
use generic-service
host_name windows_10
service_description W3SVC
check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC
}
# Create a service for monitoring the Explorer.exe process
# Change the host_name to match the name of the host you defined above
define service{
use generic-service
host_name windows_10
service_description Explorer
check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
}