Usando Linux para muchas cosas y disfrutando de videojuegos, en dispositivos moviles, consolas y pc. Using Linux for many things and enjoying video games, mobile devices, consoles and pc

Mostrando entradas con la etiqueta nrpe. Mostrar todas las entradas
Mostrando entradas con la etiqueta nrpe. Mostrar todas las entradas

Monitorea pfSense por medio de NRPE y Nagios

DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios
Tu firewall pfSense esta funcionando perfecto dejandote tiempo para hacer otras tareas y estas confiado, que malo puede pasar? Pasar, puede pasar que se dañe un disco o que estes bajo ataque y no te hayas dado cuenta, pueden pasar muchas cosas y preciso en el momento en que no estabas mirando logs o monitoreando tu confiable firewall. Por esto es que hoy te traigo este articulo en el que agregaremos una capa de monitoreo con NRPE a tu pfSense para incluirlo en Nagios. Todo como ya es costumbre en español, paso a paso y con screenshoots para que no te pierdas y puedas hacerlo fácilmente

Requerimientos para agregar pfSense a Nagios

  • pfSense firewall 2.x instalado y actualizado a la fecha
  • Nagios instalado y actualizado a la fecha
  • Plugins de Nagios instalados y actualizados
  • Conectividad a internet y entre ambos equipos

-Vamos al menú System - Package Manager - Available Packages, escribimos en la caja de texto nrpe. Presionamos Enter y nos aparecerá debajo, le damos click a su botón verde Install
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

-Se nos pide confirmar la instalación. Damos click al botón verde Confirm
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

-Se instala con éxito el paquete nrpe en nuestro pfSense
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

-A continuación vamos al menú Services - NRPEv2 y le damos click
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

-En la pagina que nos aparecerá activamos el servicio Enable NRPE, permitimos parámetros activando Allow Arguments. Por default ya vendrán varios comandos activos para ejecutarlos via el daemon NRPE
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

-En la sección Commands las columnas tienen los significados, nombre (el que usaremos en los conf de nagios y solo permite caracteres de la a-z o A-Z en ese rango), ejecución con privilegios (sudo), listado de plugins instalados en el firewall pfSense (podemos escogerlos en su lista desplegable), parámetro warning (no es grave pero hay que prestar atención), parámetro critical (es grave), parámetros extras. Esta sección nos permite crear nuevos comandos o eliminar los ya creados por medio del botón Delete
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

Permitimos trafico NRPE entre pfSense y Nagios

-Este paso solo es necesario si tu equipo Nagios esta fuera de la LAN y hará la conexión via internet (Si ambos equipos están en la LAN, no es necesario y puedes saltar al siguiente paso a crear los comandos NRPE). Creamos un Alias en el menú Firewall - Aliases. Damos click al botón verde +Add
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

-Escribimos un nombre (Nagios), Description (descripcion), Type (Host(s)) y por ultimo tenemos dos variantes, un hostname (en caso de que tengas tu equipo Nagios con un dominio y es visible en internet) o con la ip publica. Damos click al botón Save
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

-Seguidamente vamos al menú Firewall - Rules y agregamos una regla dando click al botón verde Add (sugiero que sea para colocarla al final)
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

-En la sección Source elegimos Single host or alias y escribimos Nagios (el alias que nos creamos en el paso anterior). En Destination elegimos WAN address y Destination port range any y any en la ultima columna. La explicación de la regla es que aceptaremos conexiones del equipo Nagios en la interfaz de red Wan por cualquier puerto. Escribimos un comentario sobre esta regla en Description y damos click al botón Save
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios

Creamos un comando NRPE en pfSense para monitorear con Nagios

-Para crear un comando nuevo damos click al botón inferior verde +Add y nos aparecerá uno en blanco en la parte inferior del listado. Para este articulo agregare un chequeo de https, entonces escribimos check_https (primera columna izquierda), activamos Sudo, elegimos check_http (tercera columna), dejamos en blanco la cuarta y quinta columna. Escribimos en la sexta columna -H pfgw -S (-H con el hostname del equipo y -S para que verifique via https). Damos click al botón Save
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios


Agregamos pfSense Firewall a Nagios por medio de NRPE

-En nuestro servidor Nagios nos vamos al directorio de objects a crear definiciones
cd /usr/local/nagios/etc/objects

-Hacemos una copia del conf localhost creando uno nuevo para pfsense llamado firewall.cfg
cp localhost.cfg firewall.cfg

-Editamos templates.cfg y creamos una plantilla para pfSense (el dia de mañana puede que tengas otro que agregar a Nagios)
vi templates.cfg
# pfSense definition

define host{
 name                   pfsense           ;Nombre de la plantilla    
 use                    generic-host      ;Basado en plantilla generic-host
 check_period           24x7              ;Se chequea 24 horas por 7 dias        
 check_interval         5                 ;Chequeo cada 5 minutos            
 retry_interval         1                 ;Se reintenta en caso de fallo al minuto            
 max_check_attempts     10                ;Maximo se repite el chequeo 10 veces          
 check_command          check-host-alive  ;Comando a usar para verificar que el host este activo
 notification_period    24x7              ;Enviar notificaciones 24 horas por 7 dias    
 notification_interval  120               ;Intervalo de envio de notificaciones de 120 minutos          
 notification_options   d,u,r             ;Opciones d (down) u (up) y r (recovery)        
 contact_groups         admins            ;Enviar notificaciones al grupo admins      
 register               0                 ;No se registra al ser una plantilla            
}

-Modificamos nuestro horario de trabajo
vi timeperiods.cfg
# 'workhours' Definición de horario laboral normal de 8am a 5pm de lunes a viernes
define timeperiod{
        timeperiod_name workhours
        alias                      Normal Work Hours
        monday                08:00-17:00
        tuesday                08:00-17:00
        wednesday          08:00-17:00
        thursday              08:00-17:00
        friday                  08:00-17:00
        }

-Editamos el cfg de firewall y creamos la definición de nuestro pfSense firewall (OJO, reemplazar las xxx por la ip real del equipo al igual que el hostname y alias). A continuacion creamos un hostgroup donde iremos agrupando a los firewalls que vayamos colocando en Nagios y comenzamos a crear uno por uno los comandos a ejecutar por medio de NRPE en el equipo remoto, en este caso, nuestro firewall (recuerda que nombre al equipo pfgw en su alias)
vi firewall.cfg
define host{
        use                     pfsense            ; Nombre de plantilla a usar
                                                   ; Esta definición hereda variables de la plantilla
        host_name         pfgw.test.com
        alias                   pfgw
        address              xxx.xxx.xxx.xxx ;IP del equipo
        }

define hostgroup{
        hostgroup_name  firewalls ; Nombre del grupo
        alias           Firewall servers ; Nombre largo del grupo
        members         pfgw     ; Lista separada por comas de equipos pertenecientes al grupo
        }

#Usuarios / pfgw
define service{
        use                             local-service
        host_name                       pfgw
        service_description             Usuarios
        check_command                   check_nrpe!check_users
        }

#Carga / pfgw
define service{
        use                             local-service
        host_name                       pfgw
        service_description             Carga
        check_command                   check_nrpe!check_load
        }

#Particion /  pfgw
define service{
        use                             local-service
        host_name                       pfgw
        service_description             Particion /
        check_command                   check_nrpe!check_root
        }

#Particion /var  pfgw
define service{
        use                             local-service
        host_name                       pfgw
        service_description             Particion /var
        check_command                   check_nrpe!check_var
        }

#Procesos zombie  pfgw
define service{
        use                             local-service
        host_name                       pfgw
        service_description             Procesos zombie
        check_command                   check_nrpe!check_zombie_procs
        }

#Total de procesos  pfgw
define service{
        use                             local-service
        host_name                       pfgw
        service_description             Total de procesos
        check_command                   check_nrpe!check_total_procs
        }

#Https  pfgw
define service{
        use                             local-service
        host_name                       pfgw
        service_description             Https
        check_command                   check_nrpe!check_https
        }

-Editamos nagios.cfg y agregamos una linea para incluir a firewall.cfg
vi ../nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/firewall.cfg

-Ya casi terminamos pero debemos verificar que todo nuestro trabajo esta ok y no tenemos errores en los archivos de configuracion de nagios
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Nagios Core 4.1.1
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 08-19-2015
License: GPL

Website: https://www.nagios.org
Reading configuration data...
   Read main config file okay...
   Read object config files okay...

Running pre-flight check on configuration data...

Checking objects...
Checked 9 services.
Checked 2 hosts.
Checked 1 host groups.
Checked 0 service groups.
Checked 1 contacts.
Checked 1 contact groups.
Checked 25 commands.
Checked 5 time periods.
Checked 0 host escalations.
Checked 0 service escalations.
Checking for circular paths...
Checked 2 hosts
Checked 0 service dependencies
Checked 0 host dependencies
Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

-Reiniciamos el servicio de Nagios
systemctl restart nagios

-Abrimos un browser y navegamos a la pagina de nuestro Nagios Core. En ella ya debemos poder ver el equipo pfgw (pfSense) con todos los servicios que estamos chequeando via check_nrpe
DriveMeca monitoreando un firewall pfSense con NRPE en un Nagios


Artículos recomendados: Que tanto usas tu proxy, Estadisticas de squid en pfsense 2
                                            Como instalar y configurar pfSense Squid Transparent Proxy
                                            pfSense SquidGuard tutorial paso a paso
                                            Como actualizar pfSense paso a paso

Ahora si podemos decir que no estamos ciegos con respecto a que esta pasando en nuestro firewall pfSense. Gracias a NRPE podemos agregar mas chequeos dependiendo de nuestras necesidades. Te gusto el articulo? hazme un favor, compártelo en tus redes sociales (compartir es sexy). Escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark

Como instalar NRPE en Nagios paso a paso

DriveMeca instalando monitoreo remoto de Nagios con NRPE
No te conformas con solo verificar uptime de otros equipos por medio de Nagios, quieres hacerlo sin quitar tus firewalls? Entonces necesitas leer este articulo en el cual mostrare como instalar NRPE en Nagios paso a paso para monitorear un equipo Linux Ubuntu. Las siglas NRPE quieren decir Nagios Remote Plugin Executor que viene a ser ejecutor de plugin remoto Nagios.
NRPE se instala en el servidor Nagios y en los equipos (servidores y equipos desktop Linux) a los cuales no podemos acceder por firewall o  porque queremos sacar info como usuarios logeados, espacio en disco, etc lo cual normalmente solo es posible chequear localmente. Por tanto debemos instalar (compilar) lo mismo en el servidor que en el cliente.

Requerimientos para NRPE en servidor y cliente

  • Accesos de root al servidor Nagios
  • Accesos de root a los equipos monitoreados

IP's de equipos:

Servidor: 10.10.10.4
Cliente Ubuntu: 10.10.20.33

Primeros pasos en Servidor Nagios con NRPE

-Descargamos, descomprimimos y entramos a su directorio
wget -c http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
tar xzvf nrpe-2.15.tar.gz
cd nrpe-2.15

-Compilamos e instalamos
./configure 
...
..
*** Configuration summary for nrpe 2.15 09-06-2013 ***:

 General Options:
 -------------------------
 NRPE port:    5666
 NRPE user:    nagios
 NRPE group:   nagios
 Nagios user:  nagios
 Nagios group: nagios

make all
cd ./src/; make ; cd ..
make[1]: Entering directory `/root/nrpe-2.15/src'
gcc -g -O2 -I/usr/include/openssl -I/usr/include -DHAVE_CONFIG_H -I ../include -I ./../include -o nrpe ./nrpe.c ./utils.c ./acl.c -L/usr/lib64  -lssl -lcrypto -lnsl -lwrap  
gcc -g -O2 -I/usr/include/openssl -I/usr/include -DHAVE_CONFIG_H -I ../include -I ./../include -o check_nrpe ./check_nrpe.c ./utils.c -L/usr/lib64  -lssl -lcrypto -lnsl 
make[1]: Leaving directory `/root/nrpe-2.15/src'

*** Compile finished ***

Pasos en equipo Ubuntu Linux a monitorear con NRPE

-Abrimos una consola e instalamos dependencias
sudo apt install libssl-dev apt-file xinetd

-Actualizamos cache y buscamos. OJO, en el caso de un equipo de 64bits, el path sera diferente, por eso es mejor buscarlo con apt-file
sudo apt-file update

sudo apt-file search libssl | grep libssl-dev
libssl-dev: /usr/lib/i386-linux-gnu/libssl.a
libssl-dev: /usr/lib/i386-linux-gnu/libssl.so
libssl-dev: /usr/lib/i386-linux-gnu/pkgconfig/libssl.pc
libssl-dev: /usr/share/doc/libssl-dev/changelog.Debian.gz
libssl-dev: /usr/share/doc/libssl-dev/changelog.gz
libssl-dev: /usr/share/doc/libssl-dev/copyright

-Descargamos, descomprimimos y entramos a su directorio
wget -c http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz
tar xzvf nrpe-2.15.tar.gz
cd nrpe-2.15

-Compilamos tomando el path para with-ssl-lib del paso anterior con apt-file
./configure --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/i386-linux-gnu
...
..
*** Configuration summary for nrpe 2.15 09-06-2013 ***:

 General Options:
 -------------------------
 NRPE port:    5666
 NRPE user:    nagios
 NRPE group:   nagios
 Nagios user:  nagios
 Nagios group: nagios

-Terminamos de compilar
make all

-Nos creamos el usuario nagios para ejecutar nrpe cuidando de colocarle contraseña cuando lo pida
sudo adduser nagios

-Copiamos el nrpe binario y su cfg
sudo mkdir -p /usr/local/nagios/etc /usr/local/nagios/bin /usr/local/nagios/libexec
sudo cp sample-config/nrpe.cfg /usr/local/nagios/etc/
sudo cp src/nrpe /usr/local/nagios/bin/
sudo chown -R nagios.nagios /usr/local/nagios

-Modificamos el cfg para agregar la ip del servidor Nagios. En mi caso, el disco es un SATA (partición sda5) por lo cual modifico el comando para verificar espacio en disco. Salimos guardando
sudo vi /usr/local/nagios/etc/nrpe.cfg
allowed_hosts=127.0.0.1,10.10.10.4
command[check_sda5]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda5

-Habilitamos la conexión a través de iptables.  Salimos guardando
sudo vi /etc/hosts.allow
nrpe: 10.10.10.4
nrpe: 127.0.0.1

-Copiamos y configuramos el xinetd para ejecutar el nrpe
sudo cp sample-config/nrpe.xinetd /etc/xinetd.d/nrpe
sudo service xinetd reload

-Probamos funcione y salimos presionando Control ]
telnet localhost 5666
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
^]

telnet> quit

-Descargamos los plugins de Nagios y comenzamos a compilar
cd 
wget -c http://www.nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz
tar xzvf nagios-plugins-2.1.1.tar.gz
cd nagios-plugins-2.1.1
./configure

-Compilamos
make
sudo make install

Pasos para ejecutar NRPE en Nagios

-Copiamos el plugin y cambiamos sus atributos
cp src/check_nrpe /usr/local/nagios/libexec/
chown nagios.nagios /usr/local/nagios/libexec/check_nrpe
chmod 755 /usr/local/nagios/libexec/check_nrpe

-Creamos el comando para NRPE
vi /usr/local/nagios/etc/objects/commands.cfg
define command{
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$
}

-Hacemos una copia de un cfg para crear el de nuestro equipo Linux Ubuntu y mas adelante de otros Linux
cp /usr/local/nagios/etc/objects/localhost.cfg /usr/local/nagios/etc/objects/ubuntu.cfg

-Modificamos el fichero y agregamos los datos del equipo ubuntu (host) y el servicio para chequear el disco /
vi /usr/local/nagios/etc/objects/ubuntu.cfg
define host{
        use                     linux-server
        host_name         bcksrv
        alias                   Servidor Ubuntu BackupPC
        address              10.10.20.33
        }

define service{
        use                             local-service         
        host_name                 ubuntu
        service_description   Disk
        check_command       check_nrpe!check_sda3
        }

-Activamos el nuevo grupo, colocamos nuestra zona horaria y el email del administrador
vi /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/linux.cfg
use_timezone=America/Bogota
admin_email=admin@gmail.com

-Corregimos permisos
chown nagios.nagios /usr/local/nagios/etc/objects/*

-Verificamos y reiniciamos Nagios
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
service nagios reload

-Abrimos un browser y ya nos debe aparecer el equipo Ubuntu con NRPE. Ya seria agregar mas cosas a monitorear por medio de NRPE
DriveMeca instalando monitoreo remoto de Nagios con NRPE

Nagios es una potente herramienta de monitoreo de dispositivos, equipos, etc y una forma relativamente sencilla de agregarlos es por medio de NRPE para poder colocar mas chequeos locales. Que tal te pareció este articulo, ya usas Nagios con NRPE, como te va con la solución, escríbeme en los comentarios aquí debajo y pasa la voz compartiendo el tweet.

Sígueme en twitter google+facebook o email y podrás estar enterado de todas mis publicaciones.
Disfrútenlo.

Share/Bookmark