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 nagios. Mostrar todas las entradas
Mostrando entradas con la etiqueta nagios. Mostrar todas las entradas

Como instalar Nagios en Centos 6.4 paso a paso

DriveMeca instalando Nagios en un servidor Linux Centos 6.x / 7.x paso a paso
Tienes muchos equipos, servidores, dispositivos, etc, que quieres monitorear su uso, servicios? Para eso hoy te mostrare como instalar Nagios en Centos 6.4 / Centos 7 paso a paso. Nagios es un sistema de monitoreo usado ampliamente y un referente en cuanto a estos desarrollos; cuando se habla de monitoreo encontramos a Nagios como lider. Ahora, con esta herramienta podrás por medio de una interfaz web saber el status de los equipos o dispositivos que ingreses.
También genera reportes, alarmas visuales y auditivas entre otras posibilidades para que ese fallo no te coja por sorpresa.

Requerimientos


Preparamos Linux Centos para instalar Nagios

-Instalamos dependencias
yum install gd gd-devel gcc glibc glibc-common wget unzip net-snmp*

-Creamos el usuario nagios y le colocamos contraseña
useradd -m nagios
passwd nagios

-Creamos un grupo para ejecutar comandos via web
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd apache

-Descargamos Nagios Core y Nagios Plugins. En este momento la ultima version es 4.3.1 para Nagios Core y 2.1.4 para Nagios Plugins; recomiendo descargar la ultima version existente
wget -c https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.3.1.tar.gz
wget -c http://www.nagios-plugins.org/download/nagios-plugins-2.1.4.tar.gz

                                         Como actualizar nagios 3 paso a paso
                                         Como crear un usuario de solo lectura en Nagios
                                         Como instalar snmp trap en Nagios
                                         Como instalar PNP4Nagios

Instalamos Nagios en Linux Centos

-Descomprimimos el archivo y entramos a su directorio
tar xzvf nagios-4.3.1.tar.gz
cd nagios-4.3.1

-Compilamos e instalamos nagios bajo el grupo nagcmd
./configure --with-command-group=nagcmd
make all
make install

-Creamos los scripts de inicio
make install-init

-Creamos ficheros de configuracion de ejemplo
make install-config

-Activamos permisos
make install-commandmode

-Instalamos la consola web
make install-webconf

-Creamos un usuario administrador para la interfaz web y le colocamos contraseña
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin

Instalamos plugins de Nagios en Linux Centos

-Salimos del directorio de compilación de Nagios, descomprimimos el tgz de plugins y entramos a su directorio
cd ..
tar xzvf nagios-plugins-2.1.4.tar.gz
cd nagios-plugins-2.1.4

-Comenzamos a compilar e instalamos, esta vez como usuario y grupo nagios
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install

Configuramos Nagios en Linux Centos

-Hacemos una copia de seguridad y editamos contactos
cp /usr/local/nagios/etc/objects/contacts.cfg /usr/local/nagios/etc/objects/contacts.cfg.old
vi /usr/local/nagios/etc/objects/contacts.cfg
define contact{
 contact_name    nagiosadmin           ; El usuario administrador creado en pasos anteriores
 use             generic-contact               ; Hereda valores de la plantilla generic-contact
 alias           Nagios Admin                ; Nombre completo

 email         nagios@localhost       ; <<***** Email del administrador, debe ser uno real y que funcione ******
        }

define contactgroup{
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 nagiosadmin   ;Aquí podemos agregar usuarios administrativos
        }

-Reiniciamos el servicio de apache
Linux Centos 6.x
service httpd restart

Linux Centos 7.x
systemctl restart httpd

-Verificamos este la configuracion de nagios hasta el momento correcta. Debe decirnos que 0 Warnings y 0 Errors

/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 8 services.
 Checked 1 hosts.
 Checked 1 host groups.
 Checked 0 service groups.
 Checked 1 contacts.
 Checked 1 contact groups.
 Checked 24 commands.
 Checked 5 time periods.
 Checked 0 host escalations.
 Checked 0 service escalations.
Checking for circular paths...
 Checked 1 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

-Activamos el servicio de nagios para que se ejecute cada vez que haga boot el servidor y lo iniciamos

Centos 6.x
chkconfig --add nagios
chkconfig nagios on
service nagios start

Centos 7.x
systemctl enable nagios
systemctl start nagios

-Abrimos un browser y navegamos a http://IP-Servidor/nagios Ingresamos con el usuario nagiosadmin y su contraseña creado en pasos anteriores. En la pagina siguiente nos mostrara un menu vertical a la izquierda y dependiendo de donde demos click, los resultados en el centro de la pantalla
DriveMeca instalando Nagios en un servidor Linux Centos 6.x / 7.x paso a paso

-Una opción muy recomendable en Nagios es usar Tactical Overview, mas que todo cuando tenemos muchos dispositivos y servicios en monitoreo. De un vistazo podemos ver todo
DriveMeca instalando Nagios en un servidor Linux Centos 6.x / 7.x paso a paso

-Aunque podemos ir mas al detalle y mirar los servicios de un dispositivo (servidor en este caso) en que estado están y allí por un sencillo sistema de colores veremos como están (verde=ok, amarillo=prestar atención y rojo=error)
DriveMeca instalando Nagios en un servidor Linux Centos 6.x / 7.x paso a paso

-En un momento dado podemos filtrar y solo ver los servicios que presenten warning o error en Nagios
DriveMeca instalando Nagios en un servidor Linux Centos 6.x / 7.x paso a paso

-También podemos mirar mas de cerca a un dispositivo y activar chequeo, desactivarlo, ver reportes sobre su estado, etc
DriveMeca instalando Nagios en un servidor Linux Centos 6.x / 7.x paso a paso


Actualizar Nagios en Linux Centos

-El tiempo pasa y tu instalación nagios puede requerir actualizarse a la ultima versión por seguridad, para corregir errores o agregar mejoras. Primero, como sabemos si necesitamos actualizar nagios? Sencillo. Navegamos a en la consola web a General - Home y allí nos aparecerá el aviso de si estamos o no con la ultima versión
DriveMeca instalando Nagios en un servidor Linux Centos 6.x / 7.x paso a paso

-Una buena política (indispensable diría yo) es tener un backup
cd /root
tar czvf nagios-backup.tgz /usr/local/nagios/

-Es posible que ya no los tengas, pero por si acaso, borramos antiguos archivos html. En las nuevas versiones de nagios son en php
rm /usr/local/nagios/share/{main,side,index}.html

-Descargamos la ultima versión. Siempre la encontraras en el siguiente URL (recuerda que la gratuita es Core). Para este articulo la mas actual es 4.2.1
wget -c  https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.2.1.tar.gz

-Descomprimimos el paquete y entramos a su directorio
tar xzvf nagios-4.2.1.tar.gz
cd nagios-4.2.1

-Compilamos teniendo cuidado de que usar el mismo grupo que original usamos al instalar
./configure --with-command-group=nagcmd
make all
make install

-Verificamos todo este ok con 0 errores o warnings en nuestra configuracion nagios en linux centos
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nagios Core 4.2.1
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 09-06-2016
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 36 services.
Checked 4 hosts.
Checked 2 host groups.
Checked 0 service groups.
Checked 1 contacts.
Checked 1 contact groups.
Checked 28 commands.
Checked 5 time periods.
Checked 0 host escalations.
Checked 0 service escalations.
Checking for circular paths...
Checked 4 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 y verificamos que el servicio nagios quede ejecutando correctamente
systemctl restart nagios
systemctl status nagios

-Volvemos a nuestro navegador y vamos al menú General - Home. Ya debe aparecernos que estamos en la ultima versión de Nagios Core instalado en nuestro Linux Centos 7
DriveMeca instalando Nagios en un servidor Linux Centos 6.x / 7.x paso a paso


Muy bien, ya tenemos nuestro nagios ejecutándose en un servidor Linux Centos 6.x/7.x. No fue complicado cierto? Ya usas Nagios, que versión, cuantos dispositivos monitoreas, 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 monitorear Microsoft Windows desde Nagios facilmente.

Como monitorear equipos Microsoft Windows con Nagios
En la época tan competida de hoy en día, reaccionar rápido es una ventaja competitiva. Nuestros equipos, sean virtuales o físicos, en algún momento pueden fallar y comenzar nuestro sufrimiento. Por eso existen los sistemas de monitoreo y en nuestro caso Nagios, el cual en este articulo veremos como agregarle equipos Microsoft Windows para monitorear.

Nagios puede monitorear todo tipo de equipos gracias a los plugins o módulos desarrollados. Unos opensource, otros comerciales, que nos permitirán en tiempo real conocer como están nuestros equipos Windows. Hoy veremos como monitorear usando los comandos (plugins) comunes de Nagios ademas de instalando el cliente NSClient++

Requerimientos para monitorear equipos con Nagios




Como monitorear equipo Windows en Nagios

Para los equipos Microsoft Windows una forma sencilla y sin complicaciones de monitorearlos es instalandoles un cliente que nos permita leer valores de este OS

Instalamos el cliente NSClient en Microsoft Windows

-Descargamos el cliente NSClient++ desde el siguiente URL. Debemos instalarlo con una cuenta con permisos de administrador para que se ejecute como servicio
Como monitorear equipos Microsoft Windows con Nagios

-Si nuestra cuenta de usuario es administrador, damos doble click al archivo msi descargado. En caso contrario damos click botón derecho del mouse y elegimos Ejecutar como administrador. En la ventana que nos aparece damos click al botón Ejecutar
Como monitorear equipos Microsoft Windows con Nagios

-Nos aparece la ventana del instalador. Damos click al botón Install
Como monitorear equipos Microsoft Windows con Nagios

-Leemos (recomendable aunque pocos lo hacen) la licencia de uso y marcamos el check mark inferior aceptándola. Damos click al botón Next
Como monitorear equipos Microsoft Windows con Nagios

-Daremos click al botón Typical para el tipo de instalación
Como monitorear equipos Microsoft Windows con Nagios

-A continuación se nos mostrara donde se instalar. Marcamos la opción Install sample configuration y damos click al botón Next
Como monitorear equipos Microsoft Windows con Nagios

-Aunque podemos instalar permitiendo conexiones desde todas partes, esto por seguridad no es recomendable. Escribimos la ip de nuestro servidor Nagios en Allowed hosts, una contraseña en NSClient password. Marcamos las tres primeras opciones, Enable common check plugins, Enable nsclient server, Enable NRPE server y damos click al botón Next
Como monitorear equipos Microsoft Windows con Nagios

-Ya estamos listos para instalar. Damos click al botón Install
Como monitorear equipos Microsoft Windows con Nagios

-Se nos pedirá confirmar la instalación. Damos click al botón Si
Como monitorear equipos Microsoft Windows con Nagios

-Terminamos con éxito la instalación. Damos click al botón Finish
Como monitorear equipos Microsoft Windows con Nagios

-Abrimos el Administrador de tareas (combinación de teclas Ctrl Shift Esc) y verificamos se este ejecutando nscp en la pestaña Servicios
Como monitorear equipos Microsoft Windows con Nagios

-Abrimos el firewall de nuestro Microsoft Windows Server, damos click a Reglas de entrada y a continuación buscamos NSClient++. Le damos doble click para abrir
Como monitorear equipos Microsoft Windows con Nagios

-Nos aparece la ventana de propiedades, debe mostrarse Habilitado
Como monitorear equipos Microsoft Windows con Nagios

-En la pestaña Protocolos y puertos activamos Tipo de protocolo TCP, Puerto local - Puertos específicos 12489. Damos click al botón Aplicar y después Aceptar para cerrar la ventana
Como monitorear equipos Microsoft Windows con Nagios


Cambios en Nagios para monitorear Microsoft Windows

-Nos movemos al directorio etc de nagios y modificamos su configuracion descomentando el fichero windows.cfg que viene de ejemplo con Nagios
cd /usr/local/nagios/etc/
vi nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/windows.cfg

-Entramos al directorio objects y creamos una copia de seguridad de windows.cfg. Es buena practica por si algo sale mal, tener una copia
cd objects/
cp windows.cfg windows.cfg-old

Personalizamos comando check_nt en Nagios

-Modificamos el comando check_nt en el archivo commands.cfg para tomar un tercer parámetro ($ARG3$) como contraseña
vi commands.cfg
# 'check_nt' command definition
define command{
        command_name    check_nt
        command_line    $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ -s $ARG3$
}

Agregamos equipo Windows en Nagios

-Editamos el archivo windows.cfg. Agregaremos un host windows y una serie de servicios. Generalmente ya están creados, solo es verificar datos y guardar cambios
vi windows.cfg
define host{
        use             windows-server  ; Heredar propiedades de esta plantilla
        host_name       server  ; El nombre de nuestro servidor o equipo Windows
        alias           Windows Server  ; Un alias o nombre asociado
        address         192.168.70.4    ; IP de este equipo, debe ser visible desde nagios
}

#OJO, para el servicio de chequeo de version de NSClient++ como solo se pasa un parámetro,
##debemos dar dos !! pasando en blanco el $ARG2$ y a continuación nuestra contraseña
define service{
        use                     generic-service
        host_name               server
        service_description     NSClient++ Version
        check_command         check_nt!CLIENTVERSION!!contraseña
}

#OJO, para el servicio de chequeo de version de NSClient++ como solo se pasa un parámetro,
##debemos dar dos !! pasando en blanco el $ARG2$ y a continuación nuestra contraseña
define service{
        use                     generic-service
        host_name               server
        service_description     Uptime
        check_command           check_nt!UPTIME!!contraseña
}

define service{
        use                     generic-service
        host_name               server
        service_description     CPU Load
        check_command           check_nt!CPULOAD!-l 5,80,90!contraseña
}

define service{
        use                     generic-service
        host_name               server
        service_description     Memory Usage
        check_command           check_nt!MEMUSE!-w 80 -c 90!contraseña
}

define service{
        use                     generic-service
        host_name               server
        service_description     C:\ Drive Space
        check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90!contraseña
}

define service{
        use                     generic-service
        host_name               server
        service_description     W3SVC
        check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC!contraseña
}

define service{
        use                     generic-service
        host_name               server
        service_description     Explorer
        check_command           check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe!contraseña
}

-Verificamos todo este ok en los cambios realizados
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nagios Core 4.3.1
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 02-23-2017
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 15 services.
Checked 2 hosts.
Checked 2 host groups.
Checked 0 service groups.
Checked 1 contacts.
Checked 1 contact groups.
Checked 24 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 y verificamos este ejecutandose
systemctl restart nagios
systemctl status nagios
● nagios.service - LSB: Starts and stops the Nagios monitoring server
   Loaded: loaded (/etc/rc.d/init.d/nagios; bad; vendor preset: disabled)
   Active: active (running) since Wed 2017-03-08 17:47:23 COT; 19s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 26083 ExecStop=/etc/rc.d/init.d/nagios stop (code=exited, status=0/SUCCESS)
  Process: 26090 ExecStart=/etc/rc.d/init.d/nagios start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nagios.service
           ├─26110 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
           ├─26112 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           ├─26113 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           ├─26114 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           ├─26115 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           ├─26116 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           ├─26117 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var/rw/nagios.qh
           └─26118 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: nerd: Channel opathchecks registered successfully
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: nerd: Fully initialized and ready to rock!
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: wproc: Successfully registered manager as @wproc with query handler
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: wproc: Registry request: name=Core Worker 26117;pid=26117
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: wproc: Registry request: name=Core Worker 26116;pid=26116
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: wproc: Registry request: name=Core Worker 26115;pid=26115
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: wproc: Registry request: name=Core Worker 26114;pid=26114
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: wproc: Registry request: name=Core Worker 26113;pid=26113
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: wproc: Registry request: name=Core Worker 26112;pid=26112
Mar 08 17:47:23 nag.drivemeca.com nagios[26110]: Successfully launched command file worker with pid 26118

-Abrimos un browser y navegamos a nuestra consola Nagios. Ya nos debe aparecer el equipo Windows con sus servicios monitoreados con NSClient++
Como monitorear equipos Microsoft Windows con Nagios

De esta forma podemos agregar servicios valiendonos de los plugins de Nagios que nos muestren en tiempo real el comportamiento de nuestros equipos Microsoft Windows. Es de aclarar que este solución sirve para todas las versiones. El único impedimento en viejas versiones (Windows XP por ejemplo) es que se pueda instalar y ejecutar NSClient++ como administrador


Artículos recomendadosComo instalar MRTG en Linux
                                            Como instalar PNP4Nagios
                                            Monitorea pfSense por medio de NRPE y Nagios
                                            Como instalar NRPE en Nagios paso a paso
                                            Como instalar snmp trap en Nagios
                                            Como crear un usuario de solo lectura en Nagios
                                         

Imagino que ya debes estar mas tranquilo/a con respecto a tu infraestructura Microsoft Windows, que tal te parecio el articulo, ya usas Nagios? monitoreas equipos Windows con NSClient++, no? como lo haces? 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 PNP4Nagios

DriveMeca instalando PNP4Nagios en Nagios 4 en un servidor Linux Centos 7
Tienes Nagios para monitorear dispositivos y te gustaría poder graficar el desempeño de ellos? Bien, te presento PNP4Nagios, un plugin o complemento que analiza datos de desempeño y los almacena por medio de rrd (Round Robin Databases). Hoy te mostrare en este tutorial en español como instalar PNP4Nagios paso a paso, con screenshoots y de forma sencilla.

Requerimientos de PNP4Nagios en Linux Centos 7

-Instalamos dependencias

yum install rrdtool rrdtool-perl php-gd 

-Modificamos httpd.conf activando mod_rewrite

vi /etc/httpd/conf/httpd.conf
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

-Descargamos y descomprimimos PNP4Nagios

wget -c http://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.25.tar.gz

-Descomprimimos el archivo y entramos a su directorio

tar xzvf pnp4nagios-0.6.25.tar.gz
cd pnp4nagios-0.6.25


Compilamos PNP4Nagios en Linux Centos 7

-Nos preparamos para compilar código

./configure
..
..
..
*** Configuration summary for pnp4nagios-0.6.25 03-01-2015 ***

  General Options:
  -------------------------         -------------------
  Nagios user/group:                nagios nagios
  Install directory:                /usr/local/pnp4nagios
  HTML Dir:                         /usr/local/pnp4nagios/share
  Config Dir:                       /usr/local/pnp4nagios/etc
  Location of rrdtool binary:       /bin/rrdtool Version 1.4.8
  RRDs Perl Modules:                FOUND (Version 1.4008)
  RRD Files stored in:              /usr/local/pnp4nagios/var/perfdata
  process_perfdata.pl Logfile:      /usr/local/pnp4nagios/var/perfdata.log
  Perfdata files (NPCD) stored in:  /usr/local/pnp4nagios/var/spool

  Web Interface Options:
  -------------------------         -------------------
  HTML URL:                         http://localhost/pnp4nagios
  Apache Config File:               /etc/httpd/conf.d/pnp4nagios.conf


  Review the options above for accuracy.  If they look okay,
  type 'make all' to compile.

-Compilamos

make all

-Instalamos

make fullinstall
..
..
..
*** Configuration summary for pnp4nagios-0.6.25 03-01-2015 ***

  General Options:
  -------------------------         -------------------
  Nagios user/group:                nagios nagios
  Install directory:                /usr/local/pnp4nagios
  HTML Dir:                         /usr/local/pnp4nagios/share
  Config Dir:                       /usr/local/pnp4nagios/etc
  Location of rrdtool binary:       /bin/rrdtool Version 1.4.8
  RRDs Perl Modules:                FOUND (Version 1.4008)
  RRD Files stored in:              /usr/local/pnp4nagios/var/perfdata
  process_perfdata.pl Logfile:      /usr/local/pnp4nagios/var/perfdata.log
  Perfdata files (NPCD) stored in:  /usr/local/pnp4nagios/var/spool

  Web Interface Options:
  -------------------------         -------------------
  HTML URL:                         http://localhost/pnp4nagios
  Apache Config File:               /etc/httpd/conf.d/pnp4nagios.conf



*** Main program, Scripts and HTML files installed ***

Enjoy.

-Activamos servicios httpd y npcd

systemctl enable npcd
systemctl restart httpd
systemctl start npcd

-Abrimos un browser y navegamos a http://192.168.1.10/pnp4nagios/ El sistema hará un chequeo y todo debe quedarnos en verde, en caso contrario debemos corregir para poder continuar
DriveMeca instalando PNP4Nagios en Nagios 4 en un servidor Linux Centos 7


-Ya instalado, renombramos el php de instalación y prevenimos que se use nuevamente por seguridad

mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/1234install.php
touch /usr/local/pnp4nagios/share/install.ignore
chown nagios.nagios /usr/local/pnp4nagios/share/install.ignore

-Recargamos la pagina en nuestro navegador

-Copiamos código del fichero pnp4nagios-0.6.25/sample-config/nagios.cfg-sample a nagios.cfg

vi /usr/local/nagios/etc/nagios.cfg
process_performance_data=1

service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata

service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$

service_perfdata_file_mode=a

service_perfdata_file_processing_interval=15

service_perfdata_file_processing_command=process-service-perfdata-file

host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata

host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$

host_perfdata_file_mode=a

host_perfdata_file_processing_interval=15

host_perfdata_file_processing_command=process-host-perfdata-file

-Copiamos código del fichero pnp4nagios-0.6.25/sample-config/misccommands.cfg-sample a commands.cfg

vi /usr/local/nagios/etc/objects/commands.cfg
#
# Bulk with NPCD mode
#
define command {
       command_name    process-service-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
}

define command {
       command_name    process-host-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
}

-Definimos plantillas para hosts y servicios

vi /usr/local/nagios/etc/objects/templates.cfg
define host {
 name host-pnp
 action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
 register 0
}

define service {
 name srv-pnp
 action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
 register 0
}

-Usamos las plantillas con algún dispositivo o host recordando que para que funcione debemos tener definido process_performance_data=1, en este caso la plantilla de generic-host debe tenerlo activo, al igual seria con algún servicio.

vi /usr/local/nagios/etc/objects/templates.cfg
define host{
        name                            linux-server    
        use                             generic-host,host-pnp   
        check_period                    24x7            
        check_interval                  5               
        retry_interval                  1               
        max_check_attempts              10              
        check_command                   check-host-alive 
        notification_period             workhours                                                               
        notification_interval           120            
        notification_options            d,u,r           
        contact_groups                  admins          
        register                        0               
        }

-Copiamos
cp contrib/ssi/status-header.ssi /usr/local/nagios/share/ssi/
chown nagios.nagios /usr/local/nagios/share/ssi/status-header.ssi

-Algunos cambios necesarios
mkdir /var/lib/php/session
chown root.apache /var/lib/php/session
chmod 770 /var/lib/php/session/

-Reiniamos servicios
systemctl restart npcd
systemctl restart nagios

Verificamos configuracion de PNP4Nagios en Linux Centos 7

-Verificamos la configuracion de PNP4Nagios
cd /usr/local/pnp4nagios/bin
wget -c http://verify.pnp4nagios.org/verify_pnp_config

perl verify_pnp_config --mode bulk+npcd --config=/usr/local/nagios/etc/nagios.cfg --pnpcfg=/usr/local/pnp4nagios/etc
[INFO]  ========== Starting Environment Checks ============
[INFO]  My version is: verify_pnp_config-0.6.25-R.40
[INFO]  Start Options: verify_pnp_config --mode bulk+npcd --config=/usr/local/nagios/etc/nagios.cfg --pnpcfg=/usr/local/pnp4nagios/etc
[INFO]  Reading /usr/local/nagios/etc/nagios.cfg
[OK  ]  Running product is 'nagios'
[OK  ]  object_cache_file is defined
[OK  ]  object_cache_file=/usr/local/nagios/var/objects.cache
[INFO]  Reading /usr/local/nagios/var/objects.cache
[OK  ]  resource_file is defined
[OK  ]  resource_file=/usr/local/nagios/etc/resource.cfg
[INFO]  Reading /usr/local/nagios/etc/resource.cfg
[INFO]  Reading /usr/local/pnp4nagios/etc/process_perfdata.cfg
[INFO]  Reading /usr/local/pnp4nagios/etc/pnp4nagios_release
[OK  ]  Found PNP4Nagios version "0.6.25"
[OK  ]  Effective User is 'nagios'
[OK  ]  User nagios exists with ID '1002'
[OK  ]  Effective group is 'nagios'
[OK  ]  Group nagios exists with ID '1002'
[INFO]  ========== Checking Bulk Mode + NPCD Config  ============
[OK  ]  process_performance_data is 1 compared with '/1/'
[OK  ]  service_perfdata_file is defined
[OK  ]  service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
[OK  ]  service_perfdata_file_template is defined
[OK  ]  service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
[OK  ]  PERFDATA template looks good
[OK  ]  service_perfdata_file_mode is defined
[OK  ]  service_perfdata_file_mode=a
[OK  ]  service_perfdata_file_processing_interval is defined
[OK  ]  service_perfdata_file_processing_interval=15
[OK  ]  service_perfdata_file_processing_command is defined
[OK  ]  service_perfdata_file_processing_command=process-service-perfdata-file
[OK  ]  host_perfdata_file is defined
[OK  ]  host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
[OK  ]  host_perfdata_file_template is defined
[OK  ]  host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
[OK  ]  PERFDATA template looks good
[OK  ]  host_perfdata_file_mode is defined
[OK  ]  host_perfdata_file_mode=a
[OK  ]  host_perfdata_file_processing_interval is defined
[OK  ]  host_perfdata_file_processing_interval=15
[OK  ]  host_perfdata_file_processing_command is defined
[OK  ]  host_perfdata_file_processing_command=process-host-perfdata-file
[INFO]  Nagios config looks good so far
[INFO]  ========== Checking config values ============
[OK  ]  npcd daemon is running
[OK  ]  /usr/local/pnp4nagios/etc/npcd.cfg is used by npcd and readable
[INFO]  Reading /usr/local/pnp4nagios/etc/npcd.cfg
[OK  ]  perfdata_spool_dir is defined
[OK  ]  perfdata_spool_dir=/usr/local/pnp4nagios/var/spool
[OK  ]  -1 files found in /usr/local/pnp4nagios/var/spool
service_perfdata_file_processing_command at verify_pnp_config line 462.
[OK  ]  Command process-service-perfdata-file is defined
[OK  ]  '/bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$'
[OK  ]  Command looks good
host_perfdata_file_processing_command at verify_pnp_config line 462.
[OK  ]  Command process-host-perfdata-file is defined
[OK  ]  '/bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$'
[OK  ]  Command looks good
[OK  ]  Script /usr/local/pnp4nagios/libexec/process_perfdata.pl is executable
[INFO]  ========== Starting global checks ============
[OK  ]  status_file is defined
[OK  ]  status_file=/usr/local/nagios/var/status.dat
[INFO]  host_query =
[INFO]  service_query =
[INFO]  Reading /usr/local/nagios/var/status.dat
[INFO]  ==== Starting rrdtool checks ====
[OK  ]  RRDTOOL is defined
[OK  ]  RRDTOOL=/bin/rrdtool
[OK  ]  /bin/rrdtool is executable
[OK  ]  RRDtool 1.4.8  Copyright 1997-2013 by Tobias Oetiker <tobi@oetiker.ch>
[OK  ]  USE_RRDs is defined
[OK  ]  USE_RRDs=1
[OK  ]  Perl RRDs modules are loadable
[INFO]  ==== Starting directory checks ====
[OK  ]  RRDPATH is defined
[OK  ]  RRDPATH=/usr/local/pnp4nagios/var/perfdata
[OK  ]  Perfdata directory '/usr/local/pnp4nagios/var/perfdata' exists
[WARN]  1 hosts/services are not providing performance data
[WARN]  'process_perf_data 1' is set for 2 hosts/services which are not providing performance data!
[OK  ]  'process_perf_data 1' is set for 20 of your hosts/services
[INFO]  ==== System sizing ====
[OK  ]  19 hosts/service objects defined
[INFO]  ==== Check statistics ====
[WARN]  Warning: 2, Critical: 0
[WARN]  Checks finished...


Comprobamos PNP4Nagios

-Navegando a nuestra consola web de Nagios veremos unos nuevos iconos o botones, son los de PNP4Nagios
DriveMeca instalando PNP4Nagios en Nagios 4 en un servidor Linux Centos 7

-Si dejamos el cursor del mouse encima de uno de estos botones, PNP4Nagios nos mostrara en un popup un breve resumen
DriveMeca instalando PNP4Nagios en Nagios 4 en un servidor Linux Centos 7

-Y si damos click en el botón nos abrirá una nueva pagina con la información detallada en gráficas RRD. Esta la podemos exportar en PDF, ver en rangos de fechas y varias opciones útiles mas
DriveMeca instalando PNP4Nagios en Nagios 4 en un servidor Linux Centos 7


Artículos recomendadosMonitorea pfSense por medio de NRPE y Nagios
                                           Como instalar NRPE en Nagios paso a paso
                                           La guia FINAL de OCS Inventory en Centos 7
                                          Potencia tu Linux Centos e instala los repositorios RPMForge / Epel / Remi


Ya puedes mostrar tus gráficas de rendimiento y saber en todo momento el comportamiento de tus dispositivos monitoreados. Viendo esto planeas probar PNP4Nagios? ya lo usas? que tal te ha parecido?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

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