Etiquetado: NRPE

Nagios: Añadir un nuevo servicio al cliente linux

Ya tenemos el NRPE y el host configurados vamos a ir añadiendo nuevos servicio que no incluyen los plugins de Nagios. Los nuevos checks se tienen que configurar en el cliente, así que nos conectaremos al cliente e iremos la libreria de servicios:

# cd /usr/local/nagios/libexec/

Vamos a instalar un servicio para monitorizar la memoria, así que nos descargaremos el check_mem.pl del Nagios Exchange. Una vez que lo tengamos descargado le cambiamos los permisos:

# chmod +x check_mem.pl
# chown nagios.nagios check_mem.pl

Añadiremos el servicio al archivo de configuración del NRPE /usr/local/nagios/etc/nrpe.cfg:

command[check_mem]=/usr/local/nagios/libexec/check_mem.pl -f -w 20 -c 10

También podríamos añadir otros servicios para monitorizar por ejemplo el disco sda1 y que tengamos activo el servicio de mysql:

command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda1
command[check_mysql]=/usr/local/nagios/libexec/check_procs -c 1:1 -C mysqld

Ya estaría configurado el cliente, ahora hay que añadirlo en el servidor del Nagios, en el archivo de configuración del host incluiremos los servicios:

define service{
use                            local-service
host_name                      blthd01
service_description            Memoria RAM
check_command                  check_nrpe!check_mem
}

define service{
use                            local-service
host_name                      blthd01
service_description            Particion Root
check_command                  check_nrpe!check_sda1
}

define service{
use                            local-service
host_name                      blthd01
service_description            MySQL
check_command                  check_nrpe!check_mysql
}

Solo quedará reiniciar el servicio de Nagios:

# service nagios restart

Nagios: Configurar un nuevo host y sus servicios

Una vez instalados el Nagios y el NRPE, vamos a configurar el primer host.

Los hosts los tengo configurados por carpetas, es decir, en el /usr/local/nagios/etc tengo varias carpetas, una para servidores, otra para swtich, etcetera, cada una para los hosts que son parecidos.

Lo que haremos primero será crear una carpeta:

# /usr/local/nagios/etc/servers

Añadimos la carpeta al archivo de configuración de Nagios /usr/local/nagios/etc/nagios.cfg, para escribiremos la siguiente linea:

cfg_dir=/usr/local/nagios/etc/servers

Iremos a la carpeta que hemos creado y creamos un nuevo documento finalizado por la extensión .cfg:

# nano server1.cfg

Y escribimos la configuración del servidor:

define host{
        use                     linux-server
        host_name               server1
        alias                   server1
        address                 IP-del-cliente
}

Luego añadiremos los primeros servicios:

define service{
         use                            local-service
         host_name                      server1
         service_description            Particion Root
         check_command                  check_nrpe!check_sda1
}

define service{
         use                            local-service
         host_name                      server1
         service_description            Carga CPU
         check_command                  check_nrpe!check_load
}

Una vez que tengamos esto, vamos a revisar los use, que se encuentra en el fichero templates.cfg. Revisaremos la definición del linux-server:

define host{
name                            linux-server    ; The name of this host template
use                             generic-host    ; This template inherits other values from the generic-host template
check_period                    24x7            ; By default, Linux hosts are checked round the clock
check_interval                  5               ; Actively check the host every 5 minutes
retry_interval                  1               ; Schedule host check retries at 1 minute intervals
max_check_attempts              10              ; Check each Linux host 10 times (max)
check_command                   check-host-alive ; Default command to check Linux hosts
notification_period             24x7    ; Linux admins hate to be woken up, so we only notify during the day
                                        ; Note that the notification_period variable is being overridden from
                                        ; the value that is inherited from the generic-host template!
notification_interval           30              ; Resend notifications every 30 min
notification_options            d,u,r           ; Only send notifications for specific host states
contact_groups                  admins          ; Notifications get sent to the admins by default
register                        0               ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
hostgroups                      linux-servers
}

Solo he añadido el hostgroups con linuxservers, el notificaction_period que lo cambié a 24×7 y el notification_interval lo cambie de 120 minutos a 30.

Luego tendríamos que crear el archivo de configuración de hostgroups en el /usr/local/nagios/etc/objects:

# nano /usr/local/nagios/etc/objects/hostgroups.cfg

Y lo añadimos al archivo de configuración de Nagios:

cfg_file=/usr/local/nagios/etc/objects/hostgroups.cfg

En el hostgroups.cfg añadimos lo siguiente para crear los hostgroups tanto de los servidores que tengamos de linux como de windows, estos ultimos tenemos que revisar que esten incluido en el template de windows-server como hicimos con el de linux:

define hostgroup{
         hostgroup_name  windows-servers ; The name of the hostgroup
         alias           Windows Servers ; Long name of the group
}

define hostgroup{
         hostgroup_name  linux-server ; The name of the hostgroup
         alias           Linux Servers ; Long name of the group
}

Finalmente hay que comprobar que todo esta correctamente:

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

Reiniciamos el servicio de Nagios:

# service nagios restart

Ya tendremos el nuevo host monitorizando dos servicios.

Nagios: Instalación de NRPE en servidor y cliente

Ayer expliqué como instalar el Nagios, hoy explicaré como instalar el NRPE que sirve para hacer la monitorización servicios internos como discos, memoria, CPU, servicios,…

 nagios_nrpe

Lo primero que vamos configurar es un cliente, en este caso es un máquina Ubuntu Server. Lo primero que se debe hacer es generar el usuario de Nagios y ponerle el password:

# /usr/sbin/useradd nagios
# passwd nagios

Descargar los plugins de Nagios y descomprimirlos:

# wget http://nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz
# tar xzf nagios-plugins-2.0.3.tar.gz
# cd nagios-plugins-2.0.3/

Instalamos lo necesario para compilar, la librería ssl y el servicio xinetd.

#apt-get install build-essential libssl-dev xinetd

Compilamos los plugins y los instalamos:

#./configure
# make
# make install

Cambiamos los permisos de la carpeta:

# chown nagios.nagios /usr/local/nagios/
# chown -R nagios.nagios /usr/local/nagios/libexec/

Descargaremos el NRPE y lo descomprimimos:

# wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
# tar xzf nrpe-2.15.tar.gz
# cd nrpe-2.15/

Compilamos el NRPE y lo instalamos:

# ./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu
# make all
# make install-plugin
# make install-daemon
# make install-daemon-config

Instalamos el demonio de NRPE como un servicio bajo xinetd:

# make install-xinetd

Editamos /etc/xinetd.d/nrpe y añadimos la IP del servidor donde esta instalado el Nagios:

only_from = 127.0.0.1

Añadimos la siguiente entrada para el NRPE en el /etc/services:

nrpe            5666/tcp                        # NRPE

Reiniciamos el xinetd y la red:

# service xinetd restart
# service networking restart

Comprobamos que este funcionando correctamente:

# netstat -at | grep nrpe
tcp 0 0 *:nrpe *:* LISTEN

Comprobamos que funcione correctamente el NRPE:

# /usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.15

Ya tendríamos instalado el NRPE en el cliente, ahora lo instalaremos en el servidor de Nagios, que nuevamente es un Ubuntu Server 14.04 LTS.

Descargaremos el NRPE y lo descomprimimos:

# wget http://sourceforge.net/projects/nagios/files/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
# tar xzf nrpe-2.15.tar.gz
# cd nrpe-2.15/

Compilamos el NRPE y lo instalamos:

# ./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnu
# make all
# make install-plugin

Ya estaría instalado el NRPE en el servidor, podemos hacer una prueba para ver si funciona correctamente, por ejemplo, comprobar la carga de CPU, para ello se debe hacer:

# /usr/local/nagios/libexec/check_nrpe -H 'IP-del-cliente-Nagios' -c 'check_load'
OK - load average: 0.13, 0.11, 0.10|load1=0.130;15.000;30.000;0; load5=0.110;10.000;25.000;0; load15=0.100;5.000;20.000;0;

Habrá que añadir en el /usr/local/nagios/objects/commands.cfg el siguiente comando para utilizar el NRPE:

define command{
         command_name    check_nrpe
         command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

Luego en los servicios de cada hosts que se quiera llamar utilizaremos lo siguiente, este ejemplo es para ver la carga de CPU:

define service {
            host_name                       cliente1
            service_description             Check Load
            check_command                   check_nrpe!check_load
            use                             generic-service
}