Presentado NEMS Linux: Parte 1 - el Servidor de Monitorización Profesional Nagios para Dispositivos ODROID

Nagios® Core™–al que me referiré simplemente como “Nagios” a lo largo de este artículo, es una aplicación de servidor de código abierto gratuita que permite monitorizar los hosts y servicios que especifiques, que te avisa cuando las cosas van mal y cuando mejoran. He estado usando Nagios durante muchos años. Si tuviera que aventurarme a poner una fecha de cuándo lo empecé a usar, diría que fue alrededor de 2006.

Mi esposa y yo administrábamos una pequeña empresa de servicios informáticos en nuestra casa por aquel entonces, y para hacer un seguimiento de los sitios de mis clientes y ser tan proactivo como podría ser, tenía un monstruoso ordenador en el garaje vigilando El espacio del disco duro de mis clientes, el estado de las copias de seguridad, la carga de la CPU y las actualizaciones del antivirus, así como otros servicios.

Recuerdo haber configurado ese antiguo servidor Nagios. El proceso fue un poco pesado y toda la configuración se realizó a través del terminal de Linux abriendo los archivos de configuración en vi. Una sintaxis malformada y Nagios no se iniciaría. Lo hice funcionar, y si alguien alguna vez ha dudado de mi sabiduría, estaba totalmente equivocado. ¡Ah!, ¿a quién estoy engañando? Nadie ha dudado nunca de mi sabiduría. A medida que pasaron los años y mi base de clientes de soporte profesional continuaba creciendo, empecé a reutilizar hardware antiguo, instalando un servidor Nagios independiente en cada sitio del cliente. Esto funcionaba bastante bien.

Recibí mi primera Raspberry Pi en 2014. Después de tenerla en un estante durante un año, empecé a considerar posibles formas de utilizarla. Me di cuenta de que el consumo de energía, el espacio en rack y el ruido de estos antiguos servidores Nagios suponían una increíble pérdida de recursos. Estaba convencido de que un ordenador de placa reducida podía ser un excelente servidor Nagios, y empecé a hacer pequeñas configuraciones.

¿Por qué reinventar la rueda? La imagen NagiosPi de Ryan Siegel estaba lista para usarse y ganaba en popularidad. Empecé a usarla, pero rápidamente me sentí desanimado por el estado de la distribución, que parecía estar absoleta y no se estaba actualizando a un ritmo adecuado para usarla a un nivel profesional. Era un excelente punto de partida, pero en algunos aspectos importantes sentía que era un producto incompleto. Empecé a trabajar en mi propia recompilación de NagiosPi, llamándola NEMS; abreviatura de "Servidor de Monitorización Profesional Nagios".

Figura 1: Este servidor Nagios cliente fue reemplazado por el primer servidor NEMS en 2016

Soy programador en mi vida profesional. Desarrollo aplicaciones de servidor, principalmente para web. Además de desarrollar una base de software más reciente, lo primero que me propuse fue crear una IU basada en navegador para NEMS, que reuniese todos los componentes de NagiosPi en una única interfaz. Esto más tarde se convertiría en el panel de control de NEMS, también conocido por su nombre de repositorio GitHub, "nems-www".

Figura 2 – Panel de control de NEMS

Después de poner NEMS a disposición de la gente a través de mi blog, el propio Siegel dijo: "Me encantaría actualizar NagiosPi, pero no tengo la habilidad para crear una GUI que pueda superar la de NEMS. Creo firmemente que siempre ha sido necesaria realizar una reforma a NagiosPi y NEMS ha supuesto lo que es esencialmente una versión actualizada y mejorada de NagiosPi. No hay razón para no empezar a usar NEMS por lo pronto. ¡Buen trabajo, Robbie!” No me detuve aquí y con su maravilloso espíritu de comunidad, Siegel incluso llego a colaborar durante el desarrollo de NEMS 1.2 a principios de 2017, realizando diversas aportaciones de Windows a NEMS.

Con un nuevo lanzamiento importante de NEMS cada seis meses y actualizaciones continuas, NEMS está basado actualmente en Debian Stretch con Nagios Core 4.3.4 en su corazón. Habiendo actualizado y mantenido NEMS con una base de software actual, también incluye cosas como PHP 7, certificados SSL actualizados y un conjunto de software personalizado optimizado para trabajar en un servidor moderno. Por ejemplo, NConf (una herramienta muy útil para configurar Nagios) detuvo su desarrollo hace años, así que solo funciona en PHP 5.3 o inferior. En consecuencia, decidí modificar el código y crear un versión aparte con el objetivo que fuera compatible con PHP 7.0+. Por supuesto, hice algunas otras mejoras en el camino.

NEMS Linux, como se llama actualmente (tenía que buscar una .com, después de todo) recurre a una monitorización de recursos de red más moderna y elimina el antiguo requisito de porgramación de Nagios. Los scripts aún están ahí, es solo que tú (el usuario) nunca tendrás que verlos o tocarlos. Todo se controla, configura y monitoriza a través de tu navegador web, con notificaciones por correo electrónico, Telegram o Pushover, todas operativas listas para usarse. También cuenta con una API JSON, un sistema de visualización por TV para tu sala de servidores y mucho más.

NEMS Linux ha evolucionado para ser lo que pienso que es la mejor experiencia de Nagios disponible. Como usuario de Nagios, este es el servidor de Nagios que siempre he anhelado. A medida que NEMS ha seguido creciendo, empecé a buscar una plataforma más potente que la Raspberry Pi. Ahí fue cuando encontré el ODROID-XU4. Hace poco más de un año (el 13 de septiembre de 2017, para ser exactos) inicie la tarea de exportar NEMS Linux al ODROID-XU4. Después de casi un año de desarrollo, estoy extremadamente orgulloso y emocionado por compartir: NEMS Linux ahora está disponible para las placas ODROID.

Características de NEMS

Ya hemos mencionado la interfaz obvia y las mejoras de UX que NEMS Linux aporta a la experiencia de Nagios. Estos son quizás los puntos clave que hacen que NEMS destaque, pero es importante entender que NEMS Linux es mucho más que sólo Debian con Nagios instalado. Veamos una pequeña selección de características adicionales.

NEMS Migrator

Al centrarme en el desarrollo de una distro para ordenadores de placa reducida (SBC), me tomé muy en serio el hecho de que las tarjetas SD pueden y probablemente fallen, y los datos pueden perderse. Quería crear una forma para que los usuarios pudieran realizar copias de seguridad y restaurar fácilmente su configuración. De ese deseo nació Migrator.

Migrator te permite hacer una copia de seguridad de toda tu configuración NEMS (hosts, servicios, verificaciones, configuración del sistema, etc.) a través de un recurso compartido samba, una descarga https o incluso un servicio de copia de seguridad externo opcional. Las copias de seguridad se pueden cifrar y solo tú conoces la clave de descifrado. En el caso de que tu dispositivo falle, puede escribir la imagen en una nueva tarjeta SD, restaurar tu copia de seguridad hecha por Migrator y empezar a funcionar en menos de cinco minutos con toda tu configuración intacta. Migrator también facilita la transición de una plataforma a otra. Por ejemplo, teniendo configurado un servidor NEMS Linux en una Raspberry Pi 3, puedes cambiar fácilmente a un ODROID-XU4 con el fin de aumentar el rendimiento de forma considerable.

Otra ventaja que pone Migrator sobre la mesa es una ruta de actualización de lo más simple que pueda existir: a medida que se presenten las nuevas versiones principales de NEMS Linux, puedes escribir fácilmente la nueva imagen de NEMS, importar tu copia de seguridad y disponer de la última versión de NEMS en solo unos minutos.

Configuración basada en interfaz de usuario con NEMS Configurator

NEMS Configurator (NConf) es lo que hace posible que la configuración de Nagios esté basada en navegador. Esta versión personalizada de la antigua herramienta de configuración NConf aporta un sofisticado front-end a la moderna arquitectura de NEMS. Toda la configuración de Nagios se realiza a través de esta interfaz: desde añadir hosts hasta configurar tus Chequeos de servicio. Todo se hace a través de un sistema muy intuitivo basado en el navegador.

Ahora bien, debo admitir que NConf estéticamente no es la característica con mejor aspecto de NEMS en este momento, pero su funcionamiento es brillante. Está previsto un rediseño de la interfaz de usuario para un futuro lanzamiento. Cuando eso suceda, la interfaz se actualizará automáticamente en todas las implementaciones existentes a través del sistema de actualización automática de NEMS. Con NEMS NConf, ¡nunca más tendrás que examinar un archivo cfg de Nagios!

NEMS System Settings Tool (SST)

Hablando de suprimir los archivos de configuración de Nagios, son varias las opciones de configuración de Nagios que han sido trasladas a la herramienta conocida NEMS System Settings Tool, también llamada NEMS SST. Elementos como la configuración del servidor SMTP, las credenciales de usuario de dominio y otros valores por defecto forman parte de esta interfaz.

Así que ahora que ya conoces un poco NEMS y cómo surgió, ¡Vamos a zambullirnos en él!

Instalación

Todo lo que necesitas para echar a andar NEMS Linux es un dispositivo ODROID compatible y una tarjeta Micro SD. En este momento, el XU3, XU4, HC1 y HC2 son compatibles. Admitirá más dispositivos tan pronto como disponga del hardware de desarrollo para compilar y probar, así que, si estás leyendo este artículo varios meses después de su publicación, consulta el sitio web de NEMS, ya que es posible que tu placa ya sea compatible.

Descarga la última versión de NEMS Linux desde https://nemslinux.com y "grábala" con tu herramienta favorita. Yo suelo utilizar Etcher de https://etcher.io/ pero puedes usar la herramienta que más te guste. eMMC puede funcionar si tienes el gestor de arranque actualizado, pero aún no está oficialmente soportado. En caso de duda, utiliza una tarjeta SD UHS-I o superior. Recomiendo 16 GB o más, pero podría funcionar con una de 8 GB si es lo único que tiene a mano. Siempre puedes usar NEMS Migrator para cambiar a una tarjeta más grande en el futuro.

Al arrancar tu servidor NEMS Linux, el sistema de archivos se redimensionará automáticamente a la capacidad de tu tarjeta SD. Puedes confirmar que NEMS está funcionando introduciendo https://nems.local/ en tu navegador web. Si la resolución de nombres no funciona, prueba con la dirección IP de tu dispositivo NEMS, la cual puedes encontrar en la tabla DHCP de tu router, o en un TV conectado al puerto HDMI de tu dispositivo. Tengo pensado introducir soporte para la pantalla Cloudshell 2 en una futura actualización.

Figura 3: Detalles de NEMS que muestra un TV conectado

Initialization

En términos generales, la única vez que realmente tendrá que tocar el terminal de Linux en un servidor NEMS es durante el proceso de inicialización. Esta tarea mágica configura de forma automática todo tu servidor en solo unos segundos. Genera certificados autofirmados para que cada usuario de NEMS Linux tenga un certificado único, te permita configurar tu zona horaria, crea tu usuario administrador de Nagios, tu cuenta de Linux, etc. Para inicializar tu servidor NEMS Linux, conéctate a tu servidor a través de SSH en el Puerto 22 predeterminado usando las siguientes credenciales

Username: nemsadmin
Password: nemsadmin
Una vez conectado, escribe:
$ sudo nems-init
Se te pedirá que introduzcas nuevamente la contraseña. Sigue las indicaciones. Todo lo complicado se vuelve simple

Figura 4 - Inicialización de NEMS

¡Felicidades! Tu servidor NEMS Linux ahora está online y listo para monitorizar tus recursos de red.

Conectarse a tu servidor NEMS

Ahora que tu servidor NEMS Linux está funcionando, puedes acceder a todo su conjunto de funciones a través de tu navegador web. Simplemente dirígete a https: //nems.local/ que debería funcionar en la mayoría de las redes, pero si lo necesitas, también puedes usar la dirección IP de tu servidor NEMS.

Configurar las notificaciones por correo electrónico

Lo primero que querrás hacer en tu nuevo servidor NEMS Linux es configurar tus parámetros SMTP. Esto permitirá que tu servidor NEMS te envíe un correo electrónico si se detecta algún problema.

Accede a NEMS System Settings Tool (SST) de NEMS desde el menú de Configuración de tu panel de NEMS. Esta herramienta elimina la necesidad de usar el archivo tradicional Nagios resource.cfg para configurar tus parámetros de correo electrónico. Una de las cosas buenas que tiene NEMS Linux es que en realidad no tengo que entrar en detalles sobre cómo hacer esto. Es tan intuitivo que no necesita explicación. Así que simplemente proporcionaré una captura de pantalla en la Figura 5.

Figura 5: Configurar los parámetros del SMTP en Nagios es fácil con NEMS System Settings Tool

Configurar tu servidor SMTP en NEMS es tan simple como configurar un cliente de correo.

Consejo: si está utilizando Gmail como proveedor de SMTP, asegúrate de revisar la documentación de NEMS que se encuentra en https://docs.nemslinux.com/usage/nagios-gmail-smtp para llevar a cabo los pasos adicionales necesarios.

Una vez que estés convencido de haber ingresado correctamente la configuración de SMTP, procede a Guardar toda la configuración y luego vuelve a conectarte a través de SSH para probar la configuración de su correo electrónico con el siguiente comando (reemplaza youremail@yourdomain.com por la dirección de correo electrónico de un destinatario real):

$ sudo nems-mailtest youremail@yourdomain.com
Este comando simplemente verifica tu configuración del correo enviando una notificación de prueba. Si hay algún problema, aparecerá en pantalla y podrás realizar los cambios necesarios en la configuración de la cuenta en NEMS SST.

Nota: NEMS actualmente requiere que tu servidor SMTP admita la autenticación TLS. En contra de mi criterio, pero en línea con las peticiones de los usuarios, se añadirá una opción en una futura versión que permita la autenticación insegura si fuera necesario, como podría ser el caso de un relé interno.

El paso final de las notificaciones por correo electrónico

El último paso para configurar tus notificaciones por correo electrónico es decirle a NEMS dónde deseas que se envíen estos avisos. Para hacer esto, abre NEMS Configurator (NConf) en “Configuration”, y en el menú de navegación de la izquierda, presiona “Show“ junto a “Contacts”. Verás que el procedimiento de Inicialización de NEMS ya añadió tu usuario a NConf. En mi caso es robbief. Presiona el ícono del lápiz (Modificar) para editar tu contacto.

Figura 6 - Cambiando la dirección de correo electrónico del administrador

En Email Address, cambia el valor por tu dirección de correo electrónico real. Asegúrate de que la dirección de correo electrónico del destinatario no sea la misma que la utilizada para la configuración de SMTP en NEMS SST. De lo contrario, es posible que no reciba las notificaciones, ya que el servidor receptor lo verá como el remitente y ocultará las notificaciones de tu bandeja de entrada.

Una vez que hayas cambiado la dirección de correo electrónico, desplázate hacia abajo y presione “Submit” para guardar los cambios. Ten en cuenta que tu información de contacto no estará disponible hasta que no se genere la configuración de Nagios.

Generar Nagios Config: Haz que tus cambios cobren vida

Para hacer que los cambios tengan efecto, presiona el enlace “Generate Nagios Config” en el panel de navegación de la izquierda. Deberías ver 0 errores. Si ve errores, presione “Syntax Check “ y revisa dónde hay errores. NConf es muy bueno para mostrar dónde está el error, de modo que puedes volver atrás, repararlo e intentarlo de nuevo.

Figura 7: Generando la configuración de Nagios con NEMS Configurator

Si todo está comprobado, presiona “Deploy” y tu dirección de correo electrónico de contacto de administrador se activará al instante en Nagios.

Aprender más

Me gustaría animarte a que visites el Foro de Documentación y Comunidad de NEMS para aprender más sobre cómo configurar y usar tu nuevo servidor NEMS Linux. Asegúrate de acompañarme nuevamente en la edición del próximo mes de ODROID Magazine ya que llevaremos a cabo nuestro primer ejercicio: Configurar NEMS Linux para monitorizar un servidor local de Linux. NEMS tiene un foro de comunidad muy activo. Lo suelo visitar con bastante frecuencia para proporcionar soporte gratuito a los usuarios. También ofrezco soporte comercial personalizado para aquellos que necesitan un mayor nivel de soporte.

Me gustaría extender mi agradecimiento a mad_ady y meveric de la comunidad de ODROID por ayudarme en estos primeros días, ya que tenía pensado exportar NEMS Linux a la plataforma ODROID. Por supuesto, esta versión no sería posible sin el gran trabajo que ha hecho Meveric en la imagen de Debian Stretch, que alimenta NEMS Linux para ODROID-XU3 /XU4/HC1/HC2. NEMS Linux es gratuito para descargarse y usarse con total libertad. Su código fuente está disponible en GitHub, y la imagen lista para usarse la puedes descargar para ODROID en https://nemslinux.com.

Sobre el Autor

Robbie Ferguson es el presentador de Category5 Technology TV y autor de NEMS Linux. Su programa de televisión lo puedes encontrar en https://category5.tv y su blog es https://baldnerd.com.

Be the first to comment

Leave a Reply