NetXMS como sistema de monitoreo para los perezosos... y un poco de comparación con Zabbix

NetXMS como sistema de monitoreo para los perezosos... y un poco de comparación con Zabbix

0. Introducción

No encontré ningún artículo sobre NetXMS en Habr, aunque lo busqué mucho. Y solo por esta razón decidí escribir esta creación para dedicarle atención a este sistema.

Es una combinación de tutorial, guía y un resumen superficial de las capacidades del sistema.

Este artículo contiene un análisis superficial y una descripción de las capacidades del sistema. No profundicé en las capacidades por varias razones. Además, describir toda la funcionalidad tomaría más de un artículo.

Como he trabajado principalmente con Zabbix, esta artículo mencionará frecuentemente ese sistema como comparación con el tema en cuestión. Además, es común comparar todo con algo de reconocimiento general.

1. ¿Qué y para qué?

Un sistema de monitoreo, como se ve en la definición, es un sistema que permite obtener información actual sobre algún nodo de red, máquina, enrutador, etc.

La razón por la que es necesario también es obvia. Para estar al tanto de lo que está sucediendo.

A menudo, un sistema de monitoreo puede proporcionar información muy completa sobre el estado tanto de la infraestructura en general como de sus partes individuales. Además, si se configuran alertas (sin ellas, cualquier monitoreo pierde valor), al final obtenemos una herramienta seria que permite no solo reaccionar a situaciones de emergencia que ya han surgido, sino que en la mayoría de los casos también permite prevenir esas emergencias.

2. ¿Por qué NetXMS?

Un poco de off-topic para aquellos que aman la abundancia de palabras.En mis años de juventud e inexperiencia... ¿Así es como suelen empezar todas las historias? Bueno, cuando era maximalista, estudié la cuestión del monitoreo de infraestructura, y el resultado de esas "investigaciones" fue la conclusión de que no hay nada mejor que Zabbix. En ese momento, realmente me gustó, porque puede hacer muchas cosas, tiene muchas capacidades, y su funcionalidad se puede expandir con scripts personalizados, así que se puede decir que puede hacer prácticamente todo, si se tienen las habilidades adecuadas. Pero Zabbix es una herramienta bastante compleja. Para poder entenderla más o menos, me tomó casi dos semanas. Y eso es solo la fase de implementación. Luego, otras par de semanas para configurar la monitorización de todo lo que necesitaba en ese momento. Pero cómo ver el estado de los puertos en los enrutadores con su ayuda, leí un poco, me asusté y decidí que no era tan necesario... La verdad, es realmente aterrador para una mente no preparada justo después de la universidad...

Y así, después de varios años, habiendo crecido y madurado, decidí que era el momento de refrescar mis conocimientos sobre sistemas de monitoreo. Y finalmente hacer un monitoreo de red normal y estable, ya que este problema se volvió relevante en relación con el crecimiento de los segmentos, la conexión de una sucursal y otras pequeñas cosas. Todo fluye, todo cambia. Comencé a probar diversas herramientas. Instalaba un sistema, lo probaba, luego otro. Y en todos faltaba algo, había algo que no me gustaba. A veces la interfaz era incómoda, otras veces era una tortura configurarla, o alguna otra cosa. Y entonces me encontré con NetXMS. Cabe mencionar que donde con Zabbix me las arreglé en dos semanas, con NetXMS todo avanzó rápidamente en un par de horas. Puede que mi experiencia con Zabbix haya influido, o tal vez se deba al propio NetXMS... difícil de decir.

NetXMS resultó ser un sistema bastante sencillo de instalar y configurar. Tiene versiones del servidor y de la consola de administración tanto para Windows como para Linux, generación de gráficos, un "navegador" integrado que permite conectarse a los mismos enrutadores a través de protocolos http y https desde la consola de administración, y una interfaz intuitivamente comprensible, así como un agente para cualquier sistema operativo. En resumen, este sistema resultó ser simple y conveniente. A primera vista.

Por cierto, su documentación está calificada con un 8 de 10. Se indican las cosas principales, pero para entender los detalles, necesitas dedicar tiempo a investigar.

Principales ventajas señaladas por el desarrolladorMonitoreo profundo de la red
Detección automática, visualización y búsqueda de componentes conectados en los niveles 2 y 3
Compatibilidad completa con SNMPv3
Detección activa utilizando sondas de escaneo
Detección pasiva basada en información de dispositivos controlados — ARP y tablas de enrutamiento, interfaces
Monitoreo de aplicaciones y servidores
Todas las métricas principales que esperas: CPU, sistemas de archivos, entrada-salida, memoria, tráfico
Puente JMX para el monitoreo de aplicaciones Java
Extensiones para aplicaciones específicas: Oracle, MySQL, PostgreSQL, MongoDB, DB2, Tuxedo y muchas más
API de integración para aplicaciones personalizadas
Diseñado para redes grandes
Un servidor puede monitorear cientos de métricas en miles de dispositivos
Soporte completo para monitoreo distribuido y escalabilidad horizontal
Monitoreo de subredes IP superpuestas
Control de acceso flexible para operadores y clientes

3. Profundizando

Cómo instalar el sistema — hay un completo manual del administrador disponible en el sitio del desarrollador, y no hay nada complicado en esto, por lo que no me detendré en eso. Lo más difícil de la instalación es conectar el sistema a la base de datos… Aquí la única diferencia será la elección del SGBD y el sistema operativo del servidor. Yo elegí Windows (continuar — ingresar datos — listo) y MSSQL, ya que lo tenía.

3.1. Activando la detección automática

La detección automática de nodos de la red se puede activar durante la instalación. Si no se hizo por alguna razón, siempre se puede activar en «Configuration-Network Discovery» o haciendo clic en el ícono con el mismo nombre. En el área de trabajo aparecerán las propiedades de detección. Debes activarlo, cambiándolo a modo pasivo o activo, y definir otras propiedades, como las subredes a sondear. También aquí se pueden establecer filtros, pudiendo elegir y ajustar tanto los que están incorporados en el sistema como escribir tus propios scripts. Honestamente, no necesité los filtros. Pero la configuración parece bastante amigable y clara.

También se puede especificar la comunidad SNMP predeterminada y sus credenciales (léase autorización).

3.2. Agregar nodos

Con la detección automática activada, los nodos finales (PCs, impresoras) serán añadidos y distribuidos automáticamente a través de las subredes. Con el equipo de red activo, todo es un poco más complicado.

El primer paso es activar SNMP en el equipo de red y configurar la comunidad. Si los parámetros de detección automática de nodos en la red no han cambiado el valor por defecto para la comunidad SNMP, el sistema utilizará la comunidad pública; sin embargo, esta configuración se puede modificar para cada nodo en las propiedades del nodo añadido.

Para mayor comodidad, se pueden agrupar los dispositivos según cualquier principio conveniente; para ello, se pueden crear contenedores en el árbol de Infrastructure Services y vincular en ellos nodos de Entrie Network.

Después de activar y configurar SNMP en los enrutadores y añadirlos a la lista de equipos supervisados, el sistema se comunicará con ellos automáticamente, los interrogará, determinará qué dispositivos son, aplicará plantillas, comenzará a recopilar datos y mostrará el panel frontal para cada enrutador. Todo esto, automáticamente. Desde el principio. Cuando configuraba Zabbix, solo podía soñar con algo así.

NetXMS como sistema de monitoreo para los perezosos... y un poco de comparación con Zabbix

Añadí todos mis equipos de red manualmente, ya que por alguna razón no se detectaron automáticamente. Es sencillo. Creamos un contenedor en Infrastructure Services con cualquier nombre conveniente (por ejemplo, switches), y Click derecho - crear nodo, especificamos el nombre que se mostrará del nodo, su dirección IP y es mejor marcar la casilla "deshabilitar el uso de NetXMS agent", ya que no se puede instalar en el equipo de red, y los paquetes adicionales no son necesarios.

Navegador integrado. Simplemente haz clic derecho en el enrutador deseado y abre la interfaz web del dispositivo. Me parece más cómodo que tener que buscar en mis notas cada vez para encontrar la IP necesaria. Sin embargo, el navegador no es muy bueno.

3.3. Construcción del mapa de la red

Primero, se debe crear un mapa de la red como objeto. Como de costumbre, en la rama Networks Map, clic derecho, crear, seleccionar tipo de mapa, establecer parámetros, y el sistema hará el resto automáticamente.

Los tipos de mapas son los siguientes:

  1. Personalizado. Este es un mapa diseñado para ser creado manualmente, según el deseo del usuario.
  2. Topología de Capa 2. Este mapa permite hacer todo automáticamente para el usuario, basándose en el nivel 2 del modelo OSI (esencialmente, construye el mapa basándose en las direcciones MAC de los dispositivos).
  3. Topología IP, también conocida como Capa 3. Es lo mismo que en el caso de Capa 2, solo que el mapa se construye basándose en el nivel 3 del modelo OSI (direcciones IP).

Al elegir la creación manual del mapa, es necesario arrastrar nodos del árbol al panel del mapa, conectarlos, etc. Dibujo habitual.

En otros dos casos, es necesario seleccionar un punto de referencia desde el cual el sistema comenzará a construir el mapa. Por ejemplo, un nodo de algún enrutador. El sistema lee de él los datos de los dispositivos conectados y los puertos a los que están conectados, luego lee los datos del siguiente enrutador, los compara, y así sucesivamente. Después de analizar todos los dispositivos, NetXMS dibujará automáticamente las conexiones entre los dispositivos de la red indicando los puertos a los que están conectados. También se puede indicar que el sistema coloque en el mapa, incluidos los dispositivos finales (impresoras, PC, servidores), simplemente marcando el punto correspondiente en las propiedades del mapa.Clic derecho — propiedades — propiedades del mapa.En este apartado también se puede establecer un «radio de detección» si se desea o es necesario.

Un pequeño consejo. Active la propiedad 'Always fit layout to screen', para que cada vez que actualice el mapa de la red no tenga que desplazar el espacio de trabajo y trabajar con el zoom.

NetXMS como sistema de monitoreo para los perezosos... y un poco de comparación con Zabbix

En una topología de red distribuida, se pueden superponer objetos en el mapa del terreno. También se puede utilizar, por ejemplo, una foto del rack con el equipo en el centro de datos como fondo, superponiendo los objetos necesarios. De esta manera, se puede determinar rápidamente el estado de cualquier dispositivo en el rack. En mi opinión, esto es extremadamente útil en caso de necesitar transmitir la situación a un sucesor o a un colega recién llegado, explicando la situación. Es claro, conveniente, y autoexplicativo.

3.4. Agentes

Existen agentes tanto para Windows como para Linux. El principio de funcionamiento es el mismo que el de los agentes de Zabbix: se instala en la máquina de la que se deben extraer las métricas y transmite los datos al servidor de monitoreo. Se puede instalar el agente antes o después de añadir el nodo al sistema. Después de que aparezca el agente en el nodo, el sistema comenzará a recibir datos de él después de un tiempo, aplicando la plantilla estándar. Se pueden agregar parámetros de seguimiento tanto para un nodo como conectando uno o varios templates predefinidos. Se recomienda, naturalmente, trabajar con templates, ya que esta configuración es más flexible.

La lista de parámetros monitoreados para los agentes es bastante extensa. Se puede ver el listado completo en Wiki NetXMS

Tan pronto como el sistema detecta que hay un agente funcionando en el nodo, lo asignará inmediatamente a una de las plantillas predeterminadas — Windows, Linux, HP-UX, Generic UNIX, AIX, dependiendo del sistema operativo del nodo.

La plantilla estándar para hosts de Windows:

NetXMS como sistema de monitoreo para los perezosos... y un poco de comparación con Zabbix

Se puede agregar un parámetro para monitorear el nodo específico haciendo clic en «Parámetro de Recopilación de Datos del Ratón», luego «Clic derecho en el área de trabajo — Nuevo parámetro», y elegir el deseado de la lista. Aquí también se pueden configurar los disparadores para el parámetro monitoreado.

Es importante mencionar que los agentes, al igual que en Zabbix, pueden ejecutar scripts personalizados.

¿Cómo instalar?Esto es un tema fuera de lugar, ya que cada… hmm… como quiera.

Aquí la cuestión es: ¿deberían distribuirse los agentes solo en los servidores, o en todas las máquinas de la red? Si son pocos servidores, lo más sencillo es hacerlo manualmente. Si son muchos — políticas de dominio, KIX, PoSh. Lo que sea. Los agentes tienen una clave /SILENT, que permite ‘incrustarlos’ de forma transparente para el usuario (si hablamos de su distribución en todas las máquinas de la red). Prefiero scripts, ya que se puede establecer una condición y crear algún tipo de bandera, a diferencia de las políticas que reinstalarán el programa cada vez que se encienda el PC. Así que, escribimos un script del tipo 'verificar la existencia de un archivo bandera, si no existe — ejecutar el instalador con la clave /SILENT y después de una instalación exitosa, crear el archivo bandera'. Ganancia.

3.5. Disparadores

Los disparadores se pueden configurar para reaccionar a ciertos eventos en los datos recopilados. Por ejemplo, el superar un determinado valor de ping-pong hacia el enrutador. También se configura el modo de notificación para cada disparador (para algunos, basta con un icono en la consola, mientras que otros envían notificaciones a donde sea posible). La reacción al evento se elige de lo preestablecido en la Configuración de Acción.

Para crear un disparador: ingresar a la Configuración de Recopilación de Datos del nodo o plantilla, hacer doble clic en el parámetro de interés (si no existe, primero debe crearse), y en las propiedades, ir a la pestaña Umbrales, y presionar el botón agregar.

NetXMS como sistema de monitoreo para los perezosos... y un poco de comparación con Zabbix

«Función» — qué valor o valores tomar para calcular la condición. Puede aceptar los siguientes valores (la cantidad usada para la verificación se indica en el campo Muestras):
— Último valor sondeado: último/últimos valor/valores recibido/s
— Valor promedio: valor medio de los últimos
— Desviación media: desviación media
— Diferencia con el valor anterior: diferencia con el valor anterior
— Error de recolección de datos: error al obtener datos
— Suma de valores: suma de valores
— Script: valor obtenido como resultado de la ejecución de un script de usuario

«Operación» — condición de activación del disparador. Puede tomar valores (el valor se indica en el campo correspondiente Value):
— <: menor que: menos que
— <=: menor o igual a: menor o igual a
— == igual a: equivalente a
— >=: mayor o igual a: mayor o igual a
— >: mayor que: mayor que
— !=: no igual a: no equivalente a
— like: aproximadamente igual a
— not like: no aproximadamente igual a
En cuanto a los dos últimos parámetros, no tengo confianza en cómo funcionan. Por eso no voy a hacer ninguna suposición sobre qué límites están integrados en ellos.

En resumen, todo como en el mismo Zabbix, solo que no es necesario escribir las fórmulas a mano, temiendo cometer un error o un error tipográfico. Para restaurar el disparador (evento de desactivación) el sistema insertará el valor por sí mismo. (En Zabbix nuevamente hay que teclear y no equivocarse).

3.6. Plantillas

Clic derecho - crear plantilla, ingresar el nombre de la plantilla. Clic derecho - Configuración de recolección de datos.

Un poco de teoríaLa información recolectada puede provenir de varias fuentes. Puede ser el agente NetXMS, que funciona en la máquina, puede ser un «consulta simple» o «Interna«, enviada por el propio servidor (por ejemplo, el mismo ping), «SNMP«, «punto de verificación SNMP«, «Push«, «Contadores de rendimiento de Windows«, «SM-CLP«, o un «script«. Cada tipo de información puede seleccionar el tipo que el sistema espera al recibir. Por ejemplo, el ping devolverá un valor entero (integer), la cantidad de espacio libre en disco en bytes también será un entero, pero la temperatura ya no será un entero, es decir, real).

Para recolectar información a través de SNMP, NetXMS tiene una enorme lista de parámetros predefinidos, por lo que no es necesario ingresar un OID específico, sino encontrarlo en el árbol MIB, lo cual es bastante problemático en realidad… Pero. Al final, se necesita buscar en la documentación del fabricante y buscar los valores IOD para cada dispositivo por separado. Se puede perder una gran cantidad de tiempo configurando la lectura de información de los dispositivos, encontrándose con el mensaje del sistema «UNSUPPORTED», y al final resulta que este dispositivo en particular simplemente no puede proporcionar la información solicitada. Aquí solo queda abrir los manuales y esperar.

Por ejemplo, para recopilar información sobre el tiempo de respuesta del nodo (ping), es necesario agregar un nuevo parámetro (CMA-nuevo parámetro), en el campo Origin seleccionar Internal, hacer clic en el botón Select y elegir Ping Time. Ahí hay una búsqueda, de lo que solo soñaba en Zabbix. También tiene sentido cambiar el período de sondeo del nodo (por defecto está configurado en 60 segundos, es decir, si el enrutador deja de responder justo después de que el sistema de monitoreo lo ha sondeado, pasará casi un minuto antes de que el sistema entienda que algo no va bien y se active la alarma).

Lista de datos internos que se pueden procesar:

NetXMS como sistema de monitoreo para los perezosos... y un poco de comparación con Zabbix

Después de que se han agregado todas las configuraciones necesarias al plantilla, es necesario hacer clic en CMA-aplicar y seleccionar todos los nodos a los que se debe aplicar esta plantilla (ctrl-CMK). Y eso es todo. Después de esto, en el árbol bajo la plantilla aparecerá una rama, al expandirla, se pueden ver todos los nodos a los que se ha aplicado esta plantilla.

Al desacoplar un nodo de la plantilla, los datos recopilados no dejan de ser recolectados; para cancelar su recopilación, es necesario entrar en la Configuración de Recopilación de Datos para cada nodo y eliminar todo manualmente, o primero eliminar los parámetros de la plantilla y solo después eliminar los nodos de ella. No sé por qué se hizo de esa manera, pero, en mi opinión, es algo extremadamente extraño. Pero… así son las cosas.

En la plantilla se pueden seleccionar los datos recopilados necesarios y copiarlos a otra plantilla. Masivamente. Y no es necesario copiar y pegar de una plantilla a otra manualmente... Ya empiezo a odiar Zabbix...

3.7. Tableros

Por extraño que parezca, el Wiki de NetXMS solo contiene un enlace a youtube sobre esto: Creando un Tablero, ni siquiera hay una lista y descripción de los elementos que se pueden agregar al Tablero. En principio, todo es tan intuitivamente claro. Etiqueta — es simplemente... bueno... una etiqueta... Ni siquiera sé cómo traducir esto. En resumen, es un campo con una inscripción, utilizado para designar y delimitar elementos, ya que los propios elementos no contienen nombres. Gráfico de líneas — es un gráfico lineal. Gráfico de barras — es un diagrama. Visualizador de alarmas — lista de advertencias para el/los nodo/s seleccionado/s. En resumen, los nombres hablan por sí mismos.

A continuación, se deben abrir las propiedades del panel y configurar las vistas. Nos interesa la pestaña Elementos del panel. El número de columnas es la cantidad de columnas, elementos que se colocarán horizontalmente. Cada objeto tiene sus propias propiedades, y recomendaría desmarcar la opción Layout-Grab excessive vertical space para minimizar el tamaño de cada elemento.

NetXMS como sistema de monitoreo para los perezosos... y un poco de comparación con Zabbix

3.8. Configuración de la acción

(Configuración - Configuración de acciones)
En esencia, son acciones en respuesta a la activación de disparadores.

NetXMS como sistema de monitoreo para los perezosos... y un poco de comparación con Zabbix

NetXMS puede enviar correos electrónicos, mensajes SMS, mensajes XMPP en respuesta a la activación de un disparador. Aquí todo es trivial: solo hay que completar los campos necesarios.

También se puede:

— Transmitir la notificación a otro servidor NetXMS
— Ejecutar un comando en el servidor de administración de NetXMS
— Ejecutar un comando en el nodo utilizando el agente de NetXMS
— Ejecutar un script NXSL (NSXL es su lenguaje de programación de scripts de NetXMS))

Después de crear la acción, se puede configurar un tiempo de retraso en la ejecución y también aplicar un macro para su ejecución. El tiempo de retraso es necesario para no molestar al operador en caso de que el problema se resuelva por sí mismo (por ejemplo, si el tiempo de respuesta al ping era mayor que el valor establecido, pero en la siguiente verificación puede volver a la normalidad, ¿por qué molestar con cosas triviales?).

3.9. Restricción de derechos de acceso

Para cada objeto se pueden configurar derechos de acceso específicos. También se pueden configurar derechos de acceso para cada objeto dentro de otro objeto. Esto permite distribuir de manera muy flexible las responsabilidades y capacidades de monitoreo para diferentes grupos de usuarios. Eso es todo lo que quería decir.

4. Conclusión

Me gustaría refutar el título de mi propio artículo. NetXMS no es para perezosos. Simplemente, los desarrolladores no hicieron hincapié en la funcionalidad como algunos, pero, además de todo, también cuidaron la interfaz.

Hablemos así. He utilizado Zabbix y NetXMS. Por lo tanto, simplemente escribiré mis impresiones sobre estos dos sistemas.

Entonces.

NetXMS me parece un sistema extremadamente amigable para el usuario. Bueno... para el administrador... sí, para el administrador. Tiene lo que se llama una interfaz intuitiva, y eso es realmente genial. No es necesario escribir sus propias fórmulas o leer una tonelada de documentación para activar la verificación de pings en el switch o cualquier otra cosa sencilla. Pero. En Zabbix, esa misma cosa sencilla no difiere mucho de algo realmente complicado, es decir, si aprendiste eso, podrás hacer todo lo demás igual. En NetXMS hay sugerencias, la mayoría de los parámetros se pueden encontrar en la interfaz, seleccionarlos con el ratón y configurarlos. En Zabbix necesitas averiguar si el sistema puede hacer tal cosa y, en caso afirmativo, cómo se escribe y qué parámetros devuelve. Zabbix destaca en la comunidad y en toneladas de plantillas para todas las situaciones... si puedes encontrar lo que necesitas en esa montaña de basura... Por otro lado, NetXMS también tiene un montón de fanáticos y complementos creados por ellos para este sistema. Además, el propio sistema de manera predeterminada puede monitorear las aplicaciones más populares, como se menciona en la página principal del proyecto.

La principal ventaja de NetXMS sobre Zabbix para mí fue la posibilidad de ejecutar un script en el nodo problemático en respuesta a un disparador. Si la temperatura de la CPU excede el umbral, el sistema apaga el host por sí solo. Y después nos ocuparemos de entender cuál es el problema. Puede que en Zabbix también exista esta función, pero no pude encontrarla. Al igual que con el monitoreo de puertos en los routers. Aquí se hace por sí mismo... Bueno, como por sí mismo... Es necesario aprender el lenguaje de scripts, y eso es todo...

Los permisos en NetXMS permiten delimitar muy flexiblemente las capacidades de los distintos usuarios del sistema. Pero para configurar todo esto, hay que trabajar bastante.

En general, los sistemas son bastante similares, y sus capacidades, a primera vista, parecen al menos comparables. Aunque se siente que Zabbix puede hacer más, pero esas capacidades están escondidas profundamente bajo el capó y son inalcanzables para un simple administrador mortal en un "todo en uno". NetXMS, en cambio, se presenta como algo simple y claro, amigable y agradable.

Zabbix tiene una excelente documentación, wiki, cómo hacer, F.A.Q., mejores prácticas, así como todo tipo de foros, donde se pueden encontrar respuestas a prácticamente todas las preguntas. Y si no, se puede hacer una pregunta propia.

En resumen, me gustaría recomendar NetXMS para personas que están comenzando o para aquellos que no necesitan profundizar en el monitoreo de todo. Estoy seguro de que si se explora más, se pueden obtener observaciones bastante detalladas.

Sin embargo, el principal beneficio que veo es su interfaz muy agradable y la facilidad de configuración.

5. Materiales utilizados

canal de youtube Tomas Kirnak
Wiki de NetXMS
búsqueda en Google

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster