Monitoreo de equipos de red a través de SNMPv3 en Zabbix

Este artículo analiza las características de monitorear equipos de red utilizando el protocolo SNMPv3. Hablaremos sobre SNMPv3, compartiré mi experiencia en la creación de plantillas completas en Zabbix y mostraré lo que puede lograr al organizar alertas distribuidas en una red grande. SNMP es el protocolo principal para monitorear equipos de red, y Zabbix es excelente para monitorear una gran cantidad de objetos y resumir volúmenes significativos de métricas entrantes.

Algunas palabras sobre SNMPv3


Comencemos con el nombramiento de SNMPv3 y las características de su uso. Las tareas SNMP son monitorear dispositivos de red y administración elemental, enviándoles comandos simples (por ejemplo, encender y apagar las interfaces de red o reiniciar el dispositivo).

La principal diferencia entre el protocolo SNMPv3 y sus versiones anteriores son las características de seguridad clásicas [1-3], a saber:

  • Autenticación, que determina que la solicitud se recibe de una fuente confiable;
  • Cifrado, para evitar la divulgación de datos transmitidos cuando son interceptados por terceros;
  • Integridad, es decir, una garantía de que el paquete no fue alterado durante la transmisión.

SNMPv3 implica el uso de un modelo de seguridad en el que se establece una estrategia de autenticación para un usuario determinado y el grupo al que pertenece (en versiones anteriores de SNMP, en la solicitud del servidor al objeto de monitoreo, solo se comparó "comunidad", una cadena de texto con una "contraseña" transmitida en forma clara (Texto sin formato)).

SNMPv3 presenta el concepto de niveles de seguridad: niveles de seguridad aceptables que determinan la configuración del equipo y el comportamiento del agente SNMP del objeto de monitoreo. La combinación del modelo de seguridad y el nivel de seguridad determina qué mecanismo de seguridad se utiliza al procesar el paquete SNMP [4].

La tabla describe combinaciones de modelos y niveles de seguridad SNMPv3 (decidí dejar las tres primeras columnas como en el original):



En consecuencia, usaremos SNMPv3 en modo de autenticación mediante cifrado.

Configurar SNMPv3


La supervisión del equipo de red implica la misma configuración del protocolo SNMPv3 tanto en el servidor de supervisión como en el objeto supervisado.

Comencemos configurando un dispositivo de red Cisco, su configuración mínima necesaria es la siguiente (para la configuración usamos CLI, simplifiqué los nombres y las contraseñas para evitar confusiones):

snmp-server group snmpv3group v3 priv read snmpv3name 
snmp-server user snmpv3user snmpv3group v3 auth md5 md5v3v3v3 priv des des56v3v3v3
snmp-server view snmpv3name iso included

La primera línea del grupo snmp-server: define el grupo de usuarios SNMPv3 (snmpv3group), el modo de lectura (read) y el derecho de acceso del grupo snmpv3group para ver ciertas ramas del árbol MIB del objeto de monitoreo (snmpv3name en la configuración a continuación determina qué ramas del árbol MIB el grupo snmpv3group podrá acceder).

El usuario del servidor snmp de segunda línea: define el usuario snmpv3user, su membresía en snmpv3group, así como el uso de la autenticación md5 (la contraseña para md5 es md5v3v3v3) y el cifrado des (la contraseña para des es des56v3v3v3). Por supuesto, en lugar de des, es mejor usar aes, aquí lo doy a modo de ejemplo. Además, al definir un usuario, puede agregar una lista de acceso (ACL) que regula las direcciones IP de los servidores de monitoreo que tienen el derecho de monitorear este dispositivo; esto también es una buena práctica, pero no complicaré nuestro ejemplo.

La tercera línea de la vista del servidor snmp define el nombre del código que establece las ramas del árbol MIB snmpv3name para que el grupo de usuarios snmpv3group pueda solicitarlas. ISO, en lugar de definir estrictamente una sola rama, permite que un grupo de usuarios snmpv3group acceda a todos los objetos del árbol MIB del objeto de supervisión.

Una configuración similar del equipo de Huawei (también en la CLI) es la siguiente:

snmp-agent mib-view included snmpv3name iso
snmp-agent group v3 snmpv3group privacy read-view snmpv3name
snmp-agent usm-user v3 snmpv3user group snmpv3group
snmp-agent usm-user v3 snmpv3user authentication-mode md5 
            md5v3v3v3
snmp-agent usm-user v3 snmpv3user privacy-mode des56
            des56v3v3v3

Después de configurar los dispositivos de red, debe verificar el acceso desde el servidor de monitoreo a través del protocolo SNMPv3, usaré snmpwalk:

snmpwalk -v 3 -u snmpv3user -l authPriv -A md5v3v3v3 -a md5 -x des -X des56v3v3v3 10.10.10.252



Una herramienta más visual para solicitar objetos OID específicos usando archivos MIB es snmpget:



ahora pasemos a configurar un elemento de datos típico para SNMPv3, como parte de la plantilla Zabbix. Por simplicidad e independencia de la MIB, utilizo OID digitales:



utilizo macros personalizadas en campos clave, porque serán los mismos para todos los elementos de datos en la plantilla. Puede configurarlos como parte de la plantilla si todos los dispositivos de red en su red tienen los mismos parámetros SNMPv3, o dentro del host si los parámetros SNMPv3 para diferentes objetos de monitoreo son diferentes:



Tenga en cuenta que el sistema de monitoreo solo tiene un nombre de usuario y contraseñas para autenticación y cifrado . El grupo de usuarios y el área de objetos MIB a los que se permite el acceso se configuran en el objeto de supervisión.
Ahora pasemos a completar la plantilla.

Plantilla de encuesta Zabbix


Una regla simple al crear cualquier plantilla de encuesta es hacerla lo más detallada posible:



presto mucha atención al inventario para que sea más conveniente trabajar con una red grande. Acerca de esto un poco más tarde, pero por ahora, desencadena:



Para facilitar la visualización de los desencadenantes, sus nombres contienen macros del sistema {HOST.CONN}, de modo que no solo se muestran los nombres de los dispositivos, sino también las direcciones IP en el tablero en la sección de alertas, aunque esto es más una cuestión de conveniencia de lo necesario. Para determinar la indisponibilidad del dispositivo, además de la solicitud de eco habitual, utilizo la verificación de indisponibilidad del host SNMP cuando el objeto es accesible a través de ICMP pero no responde a las solicitudes SNMP; esta situación es posible, por ejemplo, al duplicar direcciones IP en diferentes dispositivos, debido a firewalls configurados incorrectamente o configuraciones SNMP incorrectas en objetos de monitoreo. Si usa el control de acceso de host solo a través de ICMP, en el momento de investigar incidentes en la red, es posible que no aparezcan los datos de monitoreo, por lo que su recepción debe controlarse.

Pasemos a descubrir las interfaces de red: para los equipos de red, esta es la función de monitoreo más importante. Como puede haber cientos de interfaces en un dispositivo de red, es necesario filtrar las innecesarias para no saturar la visualización y la base de datos.

Utilizo la función de detección estándar para SNMP, con una gran cantidad de parámetros detectables, para un filtrado más flexible:

discovery[{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7]



Con esta detección, puede filtrar las interfaces de red por sus tipos, descripciones de usuario "descripción" y estados administrativos de los puertos. Los filtros y las expresiones regulares para el filtrado en mi caso se ven de la siguiente manera:





al detectarlo, se excluirán las siguientes interfaces:

  • deshabilitado manualmente (adminstatus <> 1), gracias a IFADMINSTATUS;
  • no tener una descripción de texto, gracias a IFALIAS;
  • teniendo * en la descripción del texto gracias a IFALIAS;
  • ser oficial o técnico gracias a IFDESCR (en mi caso, en expresiones regulares IFALIAS e IFDESCR se verifican con una expresión regular de alias).

La plantilla de recopilación de datos SNMPv3 está casi lista. No nos detendremos en prototipos de elementos de datos para interfaces de red, pasaremos a los resultados.

Resultados de monitoreo


Para empezar, un inventario de una red pequeña:



si prepara plantillas para cada serie de dispositivos de red, puede lograr un diseño conveniente para analizar los datos resumidos del software actual, los números de serie y la notificación de la llegada de una mujer de limpieza al servidor (debido al pequeño tiempo de actividad). A continuación se muestra un extracto de mi lista de plantillas:



Y ahora, el panel principal, con desencadenantes distribuidos por nivel de gravedad:



Gracias a un enfoque integrado de las plantillas para cada modelo de dispositivos en la red, es posible lograr que, dentro del marco de un sistema de monitoreo, se organice una herramienta para predecir fallas y accidentes (si hay sensores y métricas apropiadas). Zabbix es muy adecuado para monitorear redes, servidores, infraestructuras de servicios, y la tarea de dar servicio a los equipos de red demuestra claramente sus capacidades.

Lista de fuentes utilizadas:
1. Hucaby D. CCNP Routing and Switching SWITCH 300-115 Official Cert Guide. Cisco Press, 2014. pp. 325-329.
2. RFC 3410. tools.ietf.org/html/rfc3410
3. RFC 3415. tools.ietf.org/html/rfc3415
4. SNMP Configuration Guide, Cisco IOS XE Release 3SE. Chapter: SNMP Version 3. www.cisco.com/c/en/us/td/docs/ios-xml/ios/snmp/configuration/xe-3se/3850/snmp-xe-3se-3850-book/nm-snmp-snmpv3.html

All Articles