Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki


Nagios: Monitorizar servicio que no abre puertos en Nagios, instalar SNMP en Windows
Linux


Monitorizar servicio que no abre puertos en Nagios, instalar SNMP en Windows

Os explicamos en este artículo cómo monitorizar con Nagios un servicio local que no abre puertos. Como es sabido, Nagios monitoriza el estado de los servicios de un equipo (iniciado, parado) observando el puerto TCP, UDP que abre. Por ejemplo, Nagios puede monitorizar y avisar de una caída del servicio DHCP observando el puerto 67 y 68 pero ¿y si el servicio no abre puertos? os mostramos cómo monitorizarlo. Os explicamos también cómo instalar y configurar el servicio SNMP en Windows Server 2003.



Consideraciones iniciales sobre Nagios

Nagios permite monitorizar servicios de red (SMTP, POP3, HTTP, NTTP, ICMP, SNMP), recursos de un host (carga del procesador, uso de los discos, logs del sistema). También permite notificar a los contactos cuando ocurren problemas en servicios o hosts, así como cuando son resueltos (vía email, pager (busca), SMS, o cualquier método definido por el usuario.

En cuanto a los servicios de red, a priori, sólo monitoriza aquellos que abran algún puerto. En realidad Nagios no monitoriza el servicio en el equipo donde esté instalado, pues la filosofía de Nagios es NO ser intrusivo, sino que sólo comprueba si el puerto que abre el servicio está activo. Por ello, cuando queremos que Nagios nos avise cuando se ha detenido un servicio de un equipo que no abre puertos, como por ejemplo el servicio de un antivirus o el de una aplicación cualquiera (que no utiliza puertos TCP ó UDP de salida ni de entrada), tendremos varias posibilidades:

  • Utilizando el protocolo SNMP, que también sirve para monitorizar espacio en disco, carga de CPU, memoria libre.

  • Utilizando NRPE (Nagios Remote Plugin Executor), que permite ejecutar plugins en una máquina remota. En este caso se rompería la filosofía de Nagios, pues al tener que instalar un software en el equipo, sería algo más intrusivo. Abría que instalar un agente que comprobara el estado del servicio y utilizara NRPE para comunicárselo a Nagios.

En este artículo explicaremos la utilización del protocolo SNMP para la monitorización de un servicio con Nagios, en una máquina con Windows Server 2003.

Definición SNMP

SNMP (Protocolo Simple de Administración de Red) es un protocolo de la capa de aplicación que facilita el intercambio de información de administración entre dispositivos de red. Pertenece a la familia de protocolos TCP/IP. SNMP permite a los administradores supervisar el desempeño de la red, buscar y resolver sus problemas, y planear su crecimiento.

Existen varias versiones de este protocolo, las más usadas son: SNMP versión 1 (SNMPv1) y SNMP versión 2 (SNMPv2). SNMPv2 ofrece mejoras con respecto a SNMPv1, por ejemplo, permite operaciones adicionales.

SNMP versión 3 (SNMPv3) posee cambios significativos con respecto a sus predecesoras, sobre todo en aspectos de seguridad, sin embargo, de momento, no ha sido mayoritariamente aceptado.

Una red administrada a través de SNMP consiste de tres componentes básicos:

  • Dispositivos administrados.
  • Agentes.
  • Sistemas administradores de red (NMS’s).

Un dispositivo administrado es un nodo de red que contiene un agente SNMP y reside en una red administrada. Estos recogen y almacenan información de administración, la cual es puesta a disposición de los NMS’s usando SNMP. Los dispositivos administrados, a veces llamados elementos de red, pueden ser routers, servidores de acceso, switches, bridges, hubs, equipos informáticos o impresoras.

Un agente es un módulo de software de administración de red que reside en un dispositivo administrado. Un agente posee un conocimiento local de información de administración (memoria libre, número de paquetes IP recibidos, rutas, etcétera), la cual es traducida a un formato compatible con SNMP y organizada en jerarquías.

Un NMS ejecuta aplicaciones que supervisan y controlan a los dispositivos administrados. Los NMS’s proporcionan el volumen de recursos de procesamiento y memoria requeridos para la administración de la red.

Los dispositivos administrados son supervisados y controlados usando los siguientes comandos SNMP básicos: lectura, escritura, notificación y operaciones transversales.

  • El comando de lectura es usado por un NMS para supervisar elementos de red. El NMS examina diferentes variables que son mantenidas por los dispositivos administrados.
  • El comando de escritura es usado por un NMS para controlar elementos de red. El NMS cambia los valores de las variables almacenadas dentro de los dispositivos administrados.
  • El comando de notificación es usado por los dispositivos administrados para reportar eventos en forma asíncrona a un NMS. Cuando cierto tipo de evento ocurre, un dispositivo administrado envía una notificación al NMS.
  • Las operaciones transversales son usadas por el NMS para determinar qué variables soporta un dispositivo administrado y para recoger secuencialmente información en tablas de variables, como por ejemplo, una tabla de rutas.

Una Base de Información de Administración (MIB) es una colección de información que está organizada jerárquicamente. Las MIB son accedidas usando un protocolo de administración de red, como por ejemplo, el SNMP.

MIB define las variables usadas por el protocolo SNMP para supervisar y controlar los componentes de una red. Está compuesta por una serie de objetos que representan los dispositivos en la red. Cada objeto manejado en un MIB tiene un identificador de objeto único e incluye el tipo de objeto, el nivel de acceso (lectura, escritura, etc.), restricciones de tamaño, y la información del rango del objeto.

Instalación y configuración del servicio SNMP en Windows Server 2003

Instalación de SNMP en Windows Server 2003

En primer lugar deberemos instalar el protocolo SNMP en el equipo Windows Server 2003 (si no está instalado ya), para ello accederemos a "Inicio" - "Configuración" - "Panel de control" - "Agregar o quitar programas", en la ventana que aparece pulsaremos en "Agregar o quitar componentes de Windows". En esta ventana selecconaremos "Herramientas de administración y supervisión" y pulsamos en "Detalles":

AjpdSoft Monitorizar servicio con Nagios - Instalación de protocolo SNMP

Seleccionamos "Protocolo simple de administración de redes (SNMP)" y pulsamos "Aceptar":

AjpdSoft Monitorizar servicio con Nagios - Instalación de protocolo SNMP

Una vez seleccionado el componente a instalar (SNMP) pulsamos "Siguiente" para iniciar la instalación (puede que nos pida el CD de instalación de Windows Server 2003):

AjpdSoft Monitorizar servicio con Nagios - Instalación de protocolo SNMP

El asistente de instalación nos avisará de que ha finalizado, pulsaremos en "Finalizar":

AjpdSoft Monitorizar servicio con Nagios - Instalación de protocolo SNMP

Configurar el servicio SNMP

Tras instalar el protocolo SNMP lo configuraremos, para ello accederemos a "Inicio" - "Ejecutar" y escribiremos "services.msc", pulsaremos "Aceptar":

AjpdSoft Monitorizar servicio con Nagios - Ventana de ejecutar aplicación

Seleccionamos el servicio "Servicio SNMP" y pulsamos con el botón derecho del ratón sobre él, en el menú contextual que aparece seleccionamos "Propiedades":

AjpdSoft Monitorizar servicio con Nagios - Ventana de administración de servicios de Windows

En la pestaña "Agente" (Agent) podremos introducir los datos de "Contacto" (nombre de la persona que administra el servidor) y "Ubicación" (ubicación física del servidor), así como los servicios que presta este servidor:

  • Físico (physical): especifica si este equipo administra dispositivos físicos, como por ejemplo una partición del disco duro.
  • Aplicaciones (applications): especifica si este equipo utiliza alguna aplicación que envíe datos a través de TCP/IP.
  • Vínculo de datos y subred (datalink and subnetwork): especifica si este equipo administra un puente de red.
  • Internet: especifica si este equipo es una puerta de enlace (enrutador).
  • De un extremo a otro (end-to-end): especifica si este equipo es un host-ip.

AjpdSoft Monitorizar servicio con Nagios - Ventana de propiedades del servicio SNMP - Petaña Agente

En la pestaña "Capturas" (Traps) indicaremos el host (equipo) de destino de los mensajes de notificación del agente SNMP. En definitiva, en "Nombre de comunidad" indicaremos "public" y agregaremos en "Destinos de capturas" la IP de nuestro servidor Linux con Nagios. Para ello pulsaremos en el botón "Agregar":

AjpdSoft Monitorizar servicio con Nagios - Ventana de propiedades del servicio SNMP - Petaña Capturas

Introduciremos la dirección IP o el nombre de red del servidor Nagios y pulsaremos "Aceptar":

AjpdSoft Monitorizar servicio con Nagios - Ventana de propiedades del servicio SNMP - Inserción nueva IP (host)

Desde la pestaña "Seguridad" (Security) indicaremos los nombre de comunidad aceptados (public), los derechos de los mismos y desde qué host se aceptarán los paquetes SNMP (IP del servidor de Nagios):

AjpdSoft Monitorizar servicio con Nagios - Ventana de propiedades del servicio SNMP - Seguridad

Con esto habremos activado y configurado el servicio de SNMP que será el que informe al servidor de Nagios de cualquier dato que éste le solicite mediante la MIB (Management Information Base): carga de la CPU, estado de un servicio, memoria RAM, espacio en disco duro, etc.

Probar, testear servicio SNMP

Para realizar una prueba podremos acceder desde otro equipo de la red y utilizar algún software que permita acceso a la información de SNMP, por ejemplo con este software:

AjpdSoft SNMP Test

Abriremos AjpdSoft SNMP Test e introduciremos los siguientes datos:

  • IP o nombre Servidor SNMP: nombre de host (hostname o nombre de red) o IP del equipo con el servicio SNMP activo.
  • Comunidad: escribiremos "public" (la comunidad dada de alta en el paso anterior en el servidor SNMP).
  • MIB OID: escribiremos el nombre de la rama de la que queramos obtener la información. Por ejemplo, para obtener el tipo de procesador del equipo introduciremos: 1.3.6.1.2.1.1.1.0

Tras introducir los datos pulsaremos "Obtener", si todo es correcto y el equipo desde el que hemos ejecutado la aplicación AjpdSoft SNMP Test tiene permisos en el servidor SNMP obtendrá los datos solicitados, en el ejemplo el tipo de procesador:

Hardware: x86 Family 15 Model 2 Stepping 6 AT/AT COMPATIBLE - Software: Windows Version 5.2 (Build 3790 Multiprocessor Free)

AjpdSoft Monitorizar servicio con Nagios - Descarga gratuita de AjpdSoft SNMP Test

Si hay algún error (el servicio SNMP no está activo en el servidor o bien el equipo cliente no tiene permisos o bien hay un cortafuegos que impide la conexión) habrá que subsanarlo para poder configurar Nagios para agregar el monitorio del servicio.

Obtención de datos del servicio para configurar Nagios, comprobación SNMP en Linux

Obtención nombre del ejecutable del servicio a monitorizar en Windows Server 2003

A continuación os explicamos cómo obtener el nombre del fichero ejecutable del servicio a monitorizar por Nagios. Este nombre es fundamental para configurar Nagios posteriormente.

Para ver el nombre del fichero ejecutable del servicio a monitorizar, accederemos a los servicios del equipo con el SNMP activo, desde el botón "Inicio" - "Ejecutar", escribiremos "services.msc" y pulsaremos "Aceptar". Buscaremos el servicio a monitorizar y haremos doble clic sobre él o botón derecho y "Propiedades". En la pestaña "General" de las propiedades del servicio (en nuestro caso hemos decidido monitorizar el servicio "VMware Tools Service", en "Ruta de acceso al ejecutable" podremos ver el ejecutable del servicio, en nuestro caso "VMwareService.exe":

AjpdSoft Monitorizar servicio con Nagios - Descarga gratuita de AjpdSoft SNMP Test

Con lo anterior tendremos el dato del ejecutable del servicio a monitorizar, que posteriormente necesitaremos para agregarlo a Nagios.

Comprobación de servicio en el SNMP de Windows Server 2003 desde GNU Linux Ubuntu

Por otro lado, en el servidor con Nagios instalado, comprobaremos, con la utilidad "snmpwalk" que el servidor de Nagios conecta correctamente con el servidor con Windows Server 2003 y el servicio a monitorizar. También obtendremos los datos de la rama (MIB): .1.3.6.1.2.1 que contiene los datos relativos a los servicios del equipo. Buscaremos en los datos obtenidos el servicio a monitorizar para verificar que aparece en el SNMP.

Para realizar estas comprobaciones seguiremos estos pasos:

1. Desde el equipo con Nagios abriremos una ventana de terminal e instalaremos la utilidad snmpwalk (si no está instalada) que permite conectar con un servidor de SNMP y obtener los datos en un fichero. Para ello escribiremos el siguiente comando GNU Linux:

sudo apt-get install snmp

El comando anterior instalará varias utilidades para SNMP en el equipo con GNU Linux, entre ellas "snmpwalk".

2. Obtendremos los datos de la MIB .1.3.6.1.2.1 y los guardaremos en un fichero, para revisar que el servicio que queramos monitorizar esté contemplado en el protocolo SNMP del equipo. Para esto ejecutaremos el comando GNU Linux:

sudo snmpwalk 192.168.1.100 -c public .1.3.6.1.2.1 -v2c >> /home/alonso/resultado_snmp.txt

Donde:

  • 192.168.1.100: será la IP del equipo con el servicio SNMP activo y el puerto a monitorizar.
  • .1.3.6.1.2.1: es la rama o MIB correspondiente al estado de los servicios del equipo en SNMP.
  • /home/alonso/resultado_snmp.txt: carpeta y nombre del fichero donde se guardará la información obtenida del servidor SNMP por el comando snmpwalk.

Si todo es correcto, el comando snmpwalk habrá conectado con el servidor de SNMP con Windows Server 2003 y habrá obtenido los datos de la rama MIB .1.3.6.1.2.1 en el fichero resultado_snmp.txt.

A continuación abriremos ese fichero con un editor (por ejemplo "nano") y buscaremos la palabra "VMwareService.exe" (en nuestro caso):

sudo nano /home/alonso/resultado_snmp.txt

Pulsando "Control + W", escribiremos "VMwareService.exe" y pulsaremos INTRO, si encuentra el texto en el fichero querrá decir que el servicio aparece en el SNMP y es perfectamente monitorizable su estado desde Nagios:

AjpdSoft Monitorizar servicio con Nagios - Comprobación de servicio en el SNMP de Windows Server 2003 desde GNU Linux Ubuntu

Con esto habremos comprobado que el servidor de Nagios conecta correctamente con el servidor de SNMP y que el servidor de SNMP guarda el estado del servicio a monitorizar correctamente.

Configuración de Nagios para añadir monitorización de servicio

En el servidor con Nagios instalado abriremos una ventana de terminal, buscaremos la carpeta donde se encuentren los ficheros de configuración de Nagios (.cfg), indicada el el fichero de configuración nagios.cfg, ubicado (normalmente) en:

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

En la clave o parámetro "cfg_dir", por ejemplo:

cfg_dir=/usr/local/nagios/etc/hosts

Abriremos y editaremos el fichero de configuración .cfg que deseemos o incluso podremos crear uno nuevo en la carpeta indicada en el parámetro cfg_dir. En nuestro caso crearemos un fichero en esta carpeta llamado "servicios.cfg" que contendrá todos los servicios a monitorizar, para ello ejecutaremos el siguiente comando GNU Linux:

sudo nano /usr/local/nagios/etc/hosts/servicios.cfg

AjpdSoft Monitorizar servicio con Nagios - Configuración de Nagios para añadir monitorización de servicio

Agregaremos el siguiente contenido al fichero "servicios.cfg" que crearemos con el comando anterior:

define service {
   use                             generic-service
   host_name                       srvbd1
   service_description             Servicio VMware  
   is_volatile                     0
   check_period                    24x7
   max_check_attempts              3
   normal_check_interval           5
   retry_check_interval            1
   contact_groups                  contactos_terminal_server
   notification_interval           0
   notification_period             24x7
   notification_options            c,r
   notification_enabled			  1
   check_command 				  check_snmp_process!public!VMwareService.exe
 }

AjpdSoft Monitorizar servicio con Nagios - Configuración de Nagios para añadir monitorización de servicio

Donde:

  • srvbd1: será un servidor (host) de los existentes en los ficheros .cfg de Nagios, tal y como explicamos en este artículo.
  • contactos_terminal_server: nombre del grupo de contactos a los que se avisará en caso de caída del servicio. Este grupo debe existir en los ficheros .cfg de configuración de Nagios, tal y como se indica en este artículo.
  • check_snmp_process!public!VMwareService.exe: este será el comando que se ejecutará, el cual debe llevar (en su parte final tras la última admiración "!") el nombre del fichero ejecutable del servicio a monitorizar, en nuestro caso "VMwareService.exe". Este dato lo hemos obtenido en esta parte del manual.

Tras agregar estos datos al fichero pulsaremos Control + O para guardar los cambios y Control + X para salir de "nano".

A continuación comprobaremos que todo es correcto con el comando de Nagios:

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

Si al ejecutar el comando anterior aparece este error:

Error: Service check command 'check_snmp_process' specified in service 'Servicio VMware' for host 'srvbd1' not defined anywhere!

Será debido a que no tenemos el fichero Perl "check_snmp_process.pl".

De ser así deberemos descargarlo y guardarlo en la carpeta donde se encuentren los plugins de Nagios, por defecto:

/usr/local/nagios/libexec

Para ello accederemos a esta carpeta con el comando:

cd /usr/local/nagios/libexec

y ejecutaremos este otro comando GNU Linux para descargar el fichero check_snmp_process.pl:

sudo wget http://www.ajpdsoft.com/descargas/articulos/check_snmp_process.pl_

AjpdSoft Monitorizar servicio con Nagios - Configuración de Nagios para añadir monitorización de servicio

(puede ser descargado desde cualquier otra ubicación de Internet donde esté disponible)

Le cambiaremos el nombre con el comando:

mv check_snmp_process.pl_ check_snmp_process.pl

Y le daremos permisos de ejecución con el comando:

chmod 755 check_snmp_process.pl

AjpdSoft Monitorizar servicio con Nagios - Configuración de Nagios para añadir monitorización de servicio

Y haremos propietario al usuario "nagios" del fichero:

chown nagios check_snmp_process.pl

Ahora deberemos definir este comando en el fichero:

/urs/local/nagios/etc/commands.cfg

(fichero de comandos por defecto, puede ser otro)

Editaremos este fichero con "nano" o "vi" u otro editor de texto plano, con el comando:

sudo nano /urs/local/nagios/etc/commands.cfg

Nos posicionaremos en el final del fichero y agregaremos lo siguiente:

define command{
  command_name check_snmp_process
  command_line $USER1$/check_snmp_process.pl -H $HOSTADDRESS$
    $USER7$ -n $ARG1$ -w $ARG2$ -c $ARG3$ $ARG4$
}

AjpdSoft Monitorizar servicio con Nagios - Configuración de Nagios para añadir monitorización de servicio

Guardaremos los cambios pulsando Control + O y cerraremos con Control + X.

Ahora podremos volver a comprobar si todo es correcto con el comando:

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

Si aparecen errores comprobaremos el motivo, el fichero y la línea del error y lo subsanaremos, hasta conseguir que no haya errores:

AjpdSoft Monitorizar servicio con Nagios - Configuración de Nagios para añadir monitorización de servicio

Tras comprobar que no haya errores reiniciaremos el servicio de Nagios con los comandos:

sudo /etc/init.d/nagios stop

sudo /etc/init.d/nagios start

AjpdSoft Monitorizar servicio con Nagios - Configuración de Nagios para añadir monitorización de servicio

Y comprobaremos el estado actual del servicio desde la consola de administración de Nagios, en "Service Detail":

AjpdSoft Monitorizar servicio con Nagios - Configuración de Nagios para añadir monitorización de servicio

Inicialmente, como se puede apreciar en la imagen anterior, en "Status" aparecerá "PENDING", a la espera de que Nagios realice la primera comprobación del servicio configurado para la monitorización, en nuestro caso "Servicio VMware". Cuando haya pasado el tiempo de comprobación mostrará el estado real.

Algunos errores, su posible causa y su posible solución

  • "Return code of 127 is out of bounds - plugin may be missing": error que puede aparecer en "Status Information" en la consola de monitorización del servicio. Este error suele ser debido a que el plugin indicado en el comando, en la línea "check_command" no existe en la carpeta de los plugin de nagios. Para solucionarlo habrá que comprobar la definición de este comando en el fichero /urs/local/nagios/etc/commands.cfg y comprobar que el fichero indicado en "command_line". El fichero del plugin debe estar en la carpeta: /usr/local/nagios/libexec, con los permisos apropiados para ejecución por parte del usuario "nagios" y el grupo de seguridad "nagios".

Artículos relacionados

Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del proyecto AjpdSoft.



Nota: Revisado por AjpdSoft el 28-07-2009.
Revisado por AjpdSoft el 16-07-2009.

Anuncios


Enviado el Miércoles, 01 julio a las 19:06:26 por ajpdsoft
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A