Nagios
Ir para navegação
Ir para pesquisar
Sobre
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.
Vídeo
Instalação
- Instalando Dependências:
apt-get install wget apache2 apache2-utils php5 libapache2-mod-php5 build-essential libgd2-xpm-dev snmp snmpd libnet-snmp-perl libgd-tools xinetd rcconf zip unzip
Criando usuários e Grupos
useradd -m nagios passwd nagios groupadd nagcmd usermod -a -G nagcmd nagios usermod -a -G nagcmd www-data
Download Nagios Core/Nagios Plugin
cd /opt wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.1.tar.gz wget http://www.nagios-plugins.org/download/nagios-plugins-2.2.1.tar.gz
Descompactando, Compilando e Instalando o Core
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>
Criando usuário para acesso
htpasswd -s -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
Descompactando, Compilando e Instalando o Plugins
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
cp /usr/local/nagios/etc/objects/localhost.cfg /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
cp /usr/local/nagios/etc/objects/localhost.cfg /usr/local/nagios/etc/objects/linux.cfg
- Editar o Arquivo linux.cfg
nano /usr/local/nagios/etc/objects/linux.cfg
- Alterar apenas host_name, alias, address para o host linux a ser monitorado.
- Editar /usr/local/nagios/etc/objects/localhost.cfg
nano /usr/local/nagios/etc/objects/localhost.cfg
- Remover as linhas referente aos serviços e grupos, mantendo apenas o que for localhost
Cadastrar Hosts Windows
- Editar /usr/local/nagios/etc/nagios.cfg
nano /usr/local/nagios/etc/nagios.cfg
- Adicionar o caminho do .cfg (config) dos hosts Windows.
# Definitions for monitoring a Windows desktop cfg_file=/usr/local/nagios/etc/objects/windows_server.cfg
- Fazer uma cópia do arquivo /usr/local/nagios/etc/objects/windows.cfg em /usr/local/nagios/etc/objects/windows_server.cfg:
cp /usr/local/nagios/etc/objects/windows.cfg /usr/local/nagios/etc/objects/windows_server.cfg
- Modificar conforme o exemplo abaixo:
############################################################################### ############################################################################### # # 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
cp /usr/local/nagios/etc/objects/localhost.cfg /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 }