quinta-feira, 17 de março de 2016

Criação de Servidor Nagios

Nesta publicação irei mostrar como criar um servidor Nagios 4.1.1 em Debian 7.8, instalar agentes em servidores Windows, Susi 11 e Debian para monitoramento.

Em um servidor Debian 7.8 iremos instalar os pacotes.

1 - Aptitude install apt-get install apache2 php5 build-essential libgd2-xpm-dev snmp snmpd libnet-snmp-perl libgd-tools xinetd rcconf

2 - Depois de instalar os aplicativos iremos criar o usuario Nagios

useradd -m -s /bin/bash nagios
passwd nagios
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd www-data

3 - Agora iremos baixar o Nagios

mkdir /usr/src/nagios
cd /usr/src/nagios

4 - Agora iremos instalar o Nagios:

tar-zxvf nagios-4.1.1.tar.gz
cd nagios-4.1.1/
./configure --prefix=/usr/local/nagios --with-command-group=nagcmd --enable-nanosleep --enable-event-broker --with-snmp --with-net-snmp --with-snmpwalk --with-snmptranslete --with-snmpget
make all
make install
make install-init
make install-commandmode
make install-config
make install-webconf
cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers

5 - Agora vamos criar o usuario para acesso web
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

6 – Vamos baixar os plug-ins do Nagios

tar -xzvf nagios-plugins-2.0.1.tar.gz

7- Vamos fazer a instalação

cd nagios-plugins-2.0.1
./configure --with-nagios-user=nagios --with-nagios-group=nagios -with-snmp -with-snmpd -with-snmpwalk
make
make install

Depois de fazer a instalação, vamos verificar se o Nagios esta funcionando.

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Se não der erro terá que mostrar esta mensagem:


8 – Agora vamos fazer o Nagios inicializar junto com o S. O.

ln -s /etc/init.d/nagios /etc/rc2.d/S99nagios

9 – Após isso vamos reiniciar os serviços

service apache2 restart
service nagios restart

10 – Vamos instalar o serviço de e-mail:

aptitude install postfix postfix-ldap postfix-mysql postfix-pgsql

 Após a instalação do Postfix vamos configurar o email que será enviado
vi/usr/local/nagios/etc/objects/contacts.cfg
Em contact template colocamos o e-mail que será entregue, lembrado que terá que ser feito a configuração do seu servidor de e-mail para que o servidor Nagios possa fazer envio de e-mail sem autenticação.
contact template (defined above)
        alias                           Nagios Admin            ; Full name of user
        email                           email@dominio.com.br,segundoemail@unialco.com.br ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******

11- Agora vamos fazer a configuração no Postfix se comunicar com o servidor de email:

vi/etc/postfix/main.cf                

Nas opções abaixo vamos colocar o IP do servidor de e-mail

mydestination = nagios@dominio.com.br
relayhost = 192.168.200.1 (IP DO SERVIDOR DE E-MAIL)

12- Partir de agora já podemos abrir o Nagios pelo navegador



Agora iremos configurar os Serviços de monitoramento nos Servidores Windows.
No servidor Nagios iremos adcionar o caminho de monitoramento do nosso servidor

vi/usr/local/nagios/etc/ objects/ windows.cfg
cp windows.cfg servidorteste.cfg

Como este arquivo é o padrão, vamos fazer uma cópia dele para que seja feito para o nosso servidor, iremos criar cada arquivos para cada servidor que for monitorado.

define host{
        use             windows-server  ; Inherit default values from a template
        host_name                      nomedoservidor          ; The name we're giving to this host
        alias                              Servidor Windows            ; A longer name associated with the host
        address                          IP DO SERVIDOR             ; IP address of the host
        }
Em HOST GROUP DEFINITIONS é aonde iremos configurar o serviços que sera monitorado no servidor.
define hostgroup{
                     hostgroup_name       NOME DO SERVIDOR                      ; The name of the hostgroup
                     alias                                  SERVIDOR TESTE                              ; Long name of the group
                     }

#SERVICE DEFINITIONS
define service{
                     use                                                         generic-service
                     host_name                                         nomedoservidor
                     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                                         nomedoservidor
                     service_description   Tempo Ligada
                     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                                         nomedoservidor
                     service_description   Processo CPU
                     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                                         nomedoservidor
                     service_description   Memoria Usada
                     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                                         nomedoservidor
                     service_description   C:\ Espaco em Disco
                     check_command                             check_nt!USEDDISKSPACE!-l c -w 80 -c 90
                     }

# Create a service for monitoring the Integracao service
# Change the host_name to match the name of the host you defined above

define service{
                     use                                                         generic-service
                     host_name                                         nomedoservidor
                     service_description   Integracao
                     check_command                             check_nt!PROCSTATE!-d SHOWALL -l prowin32.exe
                     }

# 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                                         nomedoservidor
                     service_description   Explorer
                     check_command                             check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe
                     }

Também podemos adicionar executáveis que fica rodando nos servidores, neste exemplo estou verificando o programa chamado appserver.exe:

define service{
        use                     generic-service
        host_name               totvs11prd
        service_description     TSS
        check_command           check_nt!PROCSTATE!-d SHOWALL -l appserver.exe
        }

Agora vamos fazer o Nagios ler este arquivos que foi criado:

vi/usr/local/nagios/etc/nagios.cfg

Neste arquivos iremos colocar uma cópia conforme mostra abaixo :

# Definitions for monitoring a Windows machine
cfg_file=/usr/local/nagios/etc/objects/servidorteste.cfg

Os arquivos de configuração ira ficar desta forma, após salvar, teremos que validar se não deu nenhum erro pelo comando:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Após não apresentar erros vamos reiniciar os serviços:

service apache2 restart
service nagios restart

Instalando Agente Nagios em Servidores Windows
Resultado de imagem para windows

No servidor Windows vamos instalar o agente Nagios,  neste link abaixo se encontra a versão para Windows.


Após baixar basta executar o .exe



Nesta tela abaixo vamos em Typical


Nesta tela abaixo iremos colocar o IP do Servidor Nagios e marcar os 3 primeiros campos, a parte de senha deixaremos em banco.


Após isso, só ir no Nagios atualizar a pagina que ira aparecer o servidor ativo



Instalando Agente em Servidores Debian
Resultado de imagem para debian

11-      Para monitora um servidor Debian vamos fazer a instalação do agente Nagios:

Aptitude install apt-get install nagios-nrpe-server

22-      Depois de instalado vamos colocar configurar o ip do agente apontando para o servidor.

/etc/nagios/nrpe.cfg

allowed_hosts= IP DO SERVIDOR NAGIOS
Após iremos configurar o agente no servidor Nagios

3-      Vamos em:

vi/usr/local/nagios/etc/nagios.cfg

No campo do Linux vamos colocar outra linha igual com o localhost.

# Definitions for monitoring the local (Linux) host
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
cfg_file=/usr/local/nagios/etc/objects/debian.cfg

14-      Vamos fazer uma cópia do arquivo localhost

/usr/local/nagios/etc/objects
cp localhost.cfg debian.cfg

25-      Agora vamos editar o novo arquivo para fazer a leitura do servidor debian

vi debian.cfg

36-      Dentro do arquivos vamos fazer as alterações conforme mostra abaixo:
# Define a host for the local machine
define host{
        use                                     linux-server             ; Name of host template to use
                                                        ; This host definition will inherit all variables that are defined
                                                        ; in (or inherited by) the linux-server host template definition.
        host_name                     NOME DO SERVIDOR
        alias                                 Debian Teste
        address                          IP DO SERVIDOR TESTE
        }

# Define an optional hostgroup for Linux machines

define hostgroup{
        hostgroup_name                     debian_teste  ; The name of the hostgroup
        alias                                               Linux Servers                ; Long name of the group
        members                                    NOME DO SERVIDOR                      ; Comma separated list of hosts that belong to this group
        }

# Define a service to "ping" the local machine

define service{
        use                                                   local-service         ; Name of service template to use
        host_name                       NOME DO SERVIDOR
        service_description             PING
                     check_command                                                   check_ping!100.0,20%!500.0,60%
        }


# Define a service to check the disk space of the root partition
# on the local machine.  Warning if < 20% free, critical if
# < 10% free space on partition.

define service{
        use                             local-service         ; Name of service template to use
        host_name                       NOME DO SERVIDOR
        service_description             Root Partition
                     check_command                                                   check_local_disk!20%!10%!/
        }



# Define a service to check the number of currently logged in
# users on the local machine.  Warning if > 20 users, critical
# if > 50 users.

define service{
        use                             local-service         ; Name of service template to use
        host_name                       NOME DO SERVIDOR
        service_description             Current Users
                     check_command                                                   check_local_users!20!50
        }


# Define a service to check the number of currently running procs
# on the local machine.  Warning if > 250 processes, critical if
# > 400 users.

define service{
        use                             local-service         ; Name of service template to use
        host_name                       NOME DO SERVIDOR
        service_description             Total Processes
                     check_command                                                   check_local_procs!250!400!RSZDT
        }



# Define a service to check the load on the local machine.
define service{
        use                             local-service         ; Name of service template to use
        host_name                       NOME DO SERVIDOR
        service_description             Current Load
                     check_command                                                   check_local_load!5.0,4.0,3.0!10.0,6.0,4.0
        }



# Define a service to check the swap usage the local machine.
# Critical if less than 10% of swap is free, warning if less than 20% is free

define service{
        use                             local-service         ; Name of service template to use
        host_name                       NOME DO SERVIDOR
        service_description             Swap Usage
                     check_command                                                   check_local_swap!20!10
        }



# Define a service to check SSH on the local machine.
# Disable notifications for this service by default, as not all users may have SSH enabled.

define service{
        use                             local-service         ; Name of service template to use
        host_name                       NOME DO SERVIDOR
        service_description             SSH
                     check_command                                                   check_ssh
                     notifications_enabled                                         0
        }



# Define a service to check HTTP on the local machine.
# Disable notifications for this service by default, as not all users may have HTTP enabled.

define service{
        use                             local-service         ; Name of service template to use
        host_name                       NOME DO SERVIDOR
        service_description             HTTP
                     check_command                                                   check_http
                     notifications_enabled                                         0
        }


17-      Após fazer a alteração no arquivos vamos salvar testar o arquivos se tem algum erro

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Após não dar erro, vamos reiniciar os serviços:

service apache2 restart
service nagios restart 

18-      Agora só atualizar a pagina do Nagios que ira mostrar o servidor Debian sendo monitorado no nagios


Fazer instalação do agente Nagios em Servidor Suse 11

11-      Antes de instalar o agente vamos instalar os compiladores

zypper install gcc make 
2
22-      Agora vamos fazer a instalação do Agente        
       
3
33-      Descompactar o arquivo

tar zxvf nrpe-2.13.tar.gz
cd nrpe-2.13
./configure --disable-ssl
make all
make install-plugin
make install-daemon
make install-daemon-config

14-      Após a instalação vamos editar o arquivo ou caso não cria o arquivo só criar um novo e edita-lo para comunicar com o Servidor Nagios

vi /etc/xinetd.d/nrpe

service nrpe
{
flags = REUSE
type = UNLISTED
port = 5666
socket_type = stream
wait = no
user = nagios
group = nagios
server = /usr/sbin/nrpe
server_args = -c /etc/nagios/nrpe.cfg --inetd
log_on_failure += USERID
disable = no # change
only_from = IP DO SERVIDOR NAGIOS # nagios server's IP address

15-      Depois de salvar o arquivo vamos reiniciar o serviço do agente

service xinetd restart

26-      Vamos ao Servidor Nagios e criar o arquivo que comunica com o Servidor Suse
Este procedimento será o mesmo que foi feito para o servidor Debian. Só repetir o mesmo procedimento.

Nenhum comentário:

Postar um comentário