Checkmk
to checkmk.com
Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

1. ¿Qué es SNMP?

1.1. Usar SNMP en lugar de un agente Checkmk

Los routers, switches, firewalls, impresoras, appliances, SAI, sensores de hardware y muchos otros dispositivos no permiten la instalación de un agente Checkmk. Sin embargo, ya cuentan con una interfaz integrada de monitorización proporcionada por su fabricante: un agente SNMP. Se puede acceder a este agente a través del Protocolo simple de gestión de redes (SNMP). Checkmk utiliza SNMP para monitorizar este tipo de dispositivos. La ventaja para ti es que configurar la monitorización es muy fácil.

También hay agentes SNMP para Windows y Linux, pero no se recomienda usarlos en lugar del agente Checkmk. El SNMP no es muy eficiente, por lo que utilizarlo para la monitorización suele significar que el servidor Checkmk necesita más CPU y memoria por host que cuando se trabaja con su propio agente. Además, los datos proporcionados a través de SNMP son incompletos. En algunos casos, sin embargo, la monitorización a través de SNMP además del agente Checkmk puede resultar útil. Consulta el capítulo sobre SNMP y el agente Checkmk para obtener más información sobre este tema.

No obstante, si no hay ningún plugin de agente Checkmk para supervisar un componente de hardware o software concreto (por ejemplo, un controlador RAID), pero el componente tiene una interfaz SNMP, por supuesto puedes recopilar datos de monitorización adicionales a través de SNMP. En tal caso, asegúrate de que los intervalos de consulta sean lo suficientemente largos.

Monitorizar dispositivos SNMP con Checkmk es muy fácil. Si solo quieres empezar rápidamente con SNMP, probablemente tendrás que leer la breve sección sobre SNMP en la Guía para principiantes. Este artículo, por otro lado, profundiza mucho más y te muestra todos los detalles y escenarios específicos de la monitorización SNMP con Checkmk.

1.2. Versiones de SNMP

El protocolo SNMP está disponible en diferentes versiones. Estos protocolos son incompatibles entre sí, por lo que el sistema de monitorización y el dispositivo monitorizado deben utilizar siempre la misma versión del protocolo. Checkmk es compatible con las versiones v1, v2c y v3. En la práctica, se estima que el 99 % de las instalaciones utilizan la v2c. Aquí tienes una vista general de todas las versiones relevantes de SNMP:

Versión Características Checkmk Descripción y aplicación en la práctica

v1

Úsalo solo en dispositivos muy antiguos (digamos, de 15 años o más) que no sean compatibles con v2c, o cuya compatibilidad con v2c sea defectuosa.

v2c

Consultas masivas,
contador de 64 bits

Este es el estándar en la práctica. v2c es una variante «ligera» de v2 y la «c» aquí significa «comunidad», que desempeña la función de una contraseña en SNMP. Los contadores de 64 bits son esenciales para la monitorización de puertos del switch con 1 Gbit/s y más. Las consultas masivas aceleran la monitorización hasta en un factor de 10.

v2

Seguridad

no

La versión 2 ofrece opciones de seguridad aún mejores, además de las características de v2c. La versión 2 de SNMP no se utiliza en la práctica, por lo que Checkmk no es compatible con esta versión del protocolo. Si necesitas seguridad, utiliza la versión 3 en su lugar.
Atención: Dado que la versión 2 «real» no tiene relevancia, muchas máscaras en Checkmk se refieren simplemente a v2, pero en realidad siempre significan v2c.

v3

Seguridad,
Contexto

La versión 3 se utiliza para cifrar el tráfico SNMP. Con v2c y v1, este se transmite en texto plano, incluso en la comunidad. En la práctica, la versión 3 es bastante menos común, ya que esta versión requiere una potencia de cálculo significativamente mayor, y además el coste de la configuración es considerablemente más alto que con v2c. Los contextos son un concepto en el que se puede ver información diferente en la misma área de la estructura de datos SNMP (OID), dependiendo del ID de contexto. Esto se utilizaría, por ejemplo, para la partición de switches Fibre Channel.

Tip

SNMPv3 solo se aplica —siempre que hayas activado la regla correspondiente— a aquellos hosts que contengan datos de acceso de tipo SNMPv3 en su configuración.
SNMPv2c solo se aplica a aquellos hosts para los que se haya activado explícitamente el conjunto de reglas «Enable SNMPv2c for hosts ».
SNMPv1 siempre se aplica automáticamente para todos los demás hosts.

1.3. Traps SNMP

Checkmk utiliza solicitudes activas para la monitorización SNMP: un método pull. Checkmk envía un paquete UDP (puerto 161) que contiene una solicitud SNMP al dispositivo solicitando el suministro de datos específicos. A continuación, el dispositivo responde con un paquete UDP que contiene la respuesta (o un mensaje de error).

SNMP tiene un segundo proceso: las Traps SNMP. Se trata de mensajes push espontáneos enviados por los dispositivos a direcciones configuradas a través de UDP (puerto 162) en modo push. Las trampas tienen muchas desventajas respecto a las solicitudes activas, por lo que no son muy importantes para la monitorización. Algunas de las desventajas son:

  • Las trampas no son fiables. Los paquetes UDP pueden perderse. No hay confirmación de recepción.

  • En su mayoría solo se envían mensajes de error, pero no mensajes de recuperación. Por lo tanto, el estado actual en la monitorización no está claro.

  • Si miles de switches envían trampas al mismo tiempo (por ejemplo, si un servicio importante de nivel superior no está disponible para ellos), el receptor de trampas no podrá manejarlo y se colapsará bajo la carga. La monitorización se sobrecargará entonces justo cuando más la necesites.

  • Al cambiar la dirección IP del receptor de traps, hay que reconfigurar todos los dispositivos.

  • Las traps son difíciles de probar. Pocos dispositivos tienen siquiera una función para enviar una trap de prueba genérica, y mucho menos para probar mensajes de error reales. Por lo tanto, es difícil predecir si una trap importante se procesará correctamente cuando se active por primera vez al cabo de unos meses o años.

Sin embargo, si quieres o necesitas trabajar con traps, la Consola de eventos ofrece una solución. Esta puede recibir traps y generar eventos a partir de ellos.

2. Configuración de SNMP en Checkmk

2.1. Preparación de un dispositivo

El primer paso es preparar el dispositivo. Cada dispositivo SNMP tiene su propia máscara de configuración en algún lugar de su configuración. Realiza los siguientes ajustes en esta máscara de configuración:

  1. Ve a la configuración de consultas activas (SNMP GET). (No lo confundas con las traps; la terminología de los diálogos de configuración puede resultar muy confusa).

  2. Habilita SNMP para las solicitudes de lectura.

  3. Introduce las direcciones de tus servidores Checkmk como direcciones IP permitidas. También puede ser útil indicar aquí un site de prueba de Checkmk. Importante: Si tienes varios servidores Checkmk redundantes, no olvides especificar también la(s) dirección(es) IP que se utilizará(n) tras un Failover. En el caso concreto del dispositivo Checkmk, este utiliza la dirección IP del nodo activo como dirección IP de origen para las conexiones salientes, y no la dirección IP del servicio. En un entorno distribuido, la dirección IP del site remoto desde el que se supervisa el dispositivo es fundamental.

  4. Asigna una comunidad si se van a utilizar las versiones de protocolo v1 y v2c.

La comunidad es una especie de contraseña, salvo que en SNMP no hay nombre de usuario. Existe la convención de que la comunidad sea public. Este es el valor predeterminado para muchos dispositivos, y también para Checkmk. Por supuesto, puedes argumentar que esto es inseguro y que deberías especificar otra comunidad. Esto sin duda tiene sentido, pero debes saber que SNMP transmite la comunidad en texto sin cifrar (con excepción de la versión 3 de SNMP). Cualquiera que pueda interceptar los paquetes puede, por lo tanto, identificar muy fácilmente la comunidad. Por otro lado, el acceso está limitado a solo lectura, y la mayor parte de la información que se puede obtener a través de SNMP no es muy crítica.

Además, el uso de comunidades diferentes por dispositivo resulta muy engorroso de manejar. Al fin y al cabo, estas no solo deben mantenerse en los dispositivos, sino también en el sistema de monitorización. Por eso, en la práctica, los usuarios suelen utilizar la misma comunidad en todas partes —o al menos en todas partes dentro de una región, departamento, centro de datos, etc.

Si quieres aumentar la seguridad incluso sin SNMP versión 3, tiene sentido ampliar el concepto de red para colocar el tráfico de los servicios de gestión, y por lo tanto también el SNMP, en una VLAN de gestión separada y proteger ese acceso con el cortafuegos.

2.2. Añadir un dispositivo a Checkmk

Añade los dispositivos supervisados como hosts en Checkmk de la forma habitual. Si has elegido tu estructura de carpetas de manera que solo una carpeta contenga dispositivos SNMP, puedes realizar los demás ajustes directamente en esa carpeta. Esto facilita añadir hosts adicionales más adelante y también evita errores.

Adding a host to monitoring via SNMP.

Ahora, en las propiedades del host (o carpeta), en la caja «Monitoring agents», configura «Checkmk agent / API integrations» en «No API integrations, no Checkmk agent».

En la misma caja, activa también «SNMP» y, como protocolo SNMP, selecciona «SNMPv2 or v3». La selección de la versión 1 del protocolo es una solución provisional solo para dispositivos muy antiguos. Solo debes usarla si sabes que la v2 realmente no es compatible, o cuando la implementación del dispositivo es defectuosa (en la práctica, solo en casos aislados). Sobre todo, la versión 1 de SNMP es muy lenta porque no admite accesos masivos. Esta diferencia es muy significativa.

La tercera y última configuración se llama «SNMP credentials». Aquí también hay que elegir la versión del protocolo, ya que v2c y v3 difieren en este aspecto. Hablaremos de la versión 3 más adelante. Si no tienes requisitos de seguridad muy altos, te bastará con v2c, o bien puedes colocar la comunicación SNMP en una VLAN de gestión y así protegerla. SNMPv2c requiere introducir la comunidad, tal y como se ha comentado anteriormente.

Existe una forma alternativa de configurar las credenciales SNMP, si no puedes pasarlas fácilmente a través de tu estructura de carpetas: el conjunto de reglas «Setup > Agents > SNMP rules > SNMP credentials of monitored hosts». Esto te permitirá asignar las credenciales basándote en tags del host, etiquetas y propiedades similares. El principio es que una comunidad que se establece directamente en el host o en la carpeta siempre tiene prioridad sobre las reglas.

Monitorización mediante SNMP y el agente Checkmk

De vez en cuando surge la pregunta de si no sería posible, o incluso útil, realizar la monitorización de Linux o Windows usando SNMP en lugar del agente Checkmk. La respuesta es muy sencilla: posible sí, útil no. ¿Por qué?

  • Los datos de monitorización del agente SNMP son muy limitados. Por lo tanto, necesitas el agente Checkmk para una monitorización medianamente útil de todos modos.

  • El agente SNMP no proporciona ningún dato significativo que el agente Checkmk no proporcione.

  • El agente SNMP es más complicado de configurar.

  • Por último, pero no menos importante, el protocolo SNMP requiere muchos más recursos de CPU y de red que la monitorización normal con Checkmk.

Sin embargo, hay algunas situaciones en las que la monitorización a través de SNMP, además del agente Checkmk, puede resultar útil. Esto puede implicar tanto al agente Checkmk para Linux como al de Windows. Un ejemplo típico es cuando, para un componente de software o hardware (por ejemplo, un controlador RAID), se instala una herramienta del fabricante del servidor que proporciona datos de monitorización únicamente a través de SNMP, como es el caso de Fujitsu ServerView, por ejemplo. Entonces, por supuesto, puedes recopilar datos de monitorización adicionales a través de SNMP. En este caso, asegúrate de que los intervalos de consulta sean lo suficientemente largos. Con Windows también puede ocurrir que no sea posible realizar una consulta a través de PowerShell, ya sea debido a la versión de Windows utilizada o porque no hay Cmdlets para la aplicación.

En tal caso, si quieres realizar la monitorización del host Linux o Windows a través del agente Checkmk y SNMP, haz lo siguiente: En las propiedades del host, en el menú «Setup», en la caja «Monitoring agents», configura la opción «Checkmk agent / API integrations» con un valor que incluya el agente Checkmk (API integrations if configured, else Checkmk agent o Configured API integrations and Checkmk agent). En la misma caja, activa la opción «SNMP» y establece el valor en SNMPv2 or v3 o SNMP v1, tal y como se ha descrito anteriormente:

Include a host in monitoring via Checkmk agent and SNMP.

Los servicios que están disponibles tanto a través de SNMP como del agente Checkmk (por ejemplo, carga de la CPU, sistemas de archivos, tarjetas de red) se obtienen entonces automáticamente del agente Checkmk y no a través de SNMP.

2.3. Diagnósticos

Cuando hayas terminado con la configuración, puedes hacer un pequeño desvío por la página de diagnóstico. Para ello, guarda con el botón de la barra de acciones «Save & go to connection test».

Aquí tienes un ejemplo de los diagnósticos para un switch. Se prueban simultáneamente varias versiones del protocolo SNMP, a saber:

  • SNMPv1

  • SNMPv2c

  • SNMPv2c sin solicitudes masivas

  • SNMPv3

Un dispositivo moderno y normal debería responder a las cuatro variantes con los mismos datos, aunque esto puede verse limitado dependiendo de la configuración. El resultado tendrá este aspecto:

Output of SNMPv2c diagnostics.

Aquí se describen las cuatro salidas de información:

sysDescr

La descripción del dispositivo tal y como la ha codificado el fabricante en el firmware del dispositivo. Este texto es muy importante para Checkmk para el descubrimiento automático de servicios.

sysContact

Este campo sirve para especificar una persona de contacto y lo defines tú en la configuración del dispositivo.

sysName

Aquí está el nombre del host del dispositivo. Este campo también se configura en el dispositivo. Para la monitorización propiamente dicha, el nombre del host no tiene ninguna función adicional y solo se muestra a título informativo. Sin embargo, tiene sentido y resulta útil que el nombre del host aquí coincida con el nombre del host en Checkmk.

sysLocation

Este es un campo de texto libre —puramente informativo— en el que puedes introducir la ubicación del dispositivo.

2.4. La configuración del servicio

Características especiales de los dispositivos SNMP

Después de guardar las propiedades del host (y, opcionalmente, los diagnósticos), el siguiente paso suele ser la configuración de los servicios. Esto presenta algunas peculiaridades, ya que internamente el descubrimiento de servicios se realiza de forma muy diferente en los dispositivos SNMP en comparación con los hosts, que se supervisan con el agente Checkmk. Checkmk puede simplemente examinar la salida del agente y encontrar los items de interés utilizando los check plugins individuales. Con SNMP se requiere un poco más de trabajo. Aunque Checkmk podría realizar una detección y generar una salida completa de todos los datos SNMP (SNMP walk), y buscar en ella información interesante, ¡hay dispositivos SNMP en los que una sola detección tardaría varias horas!

Sin embargo, Checkmk tiene un enfoque más inteligente. Al principio, solo recupera los dos primeros registros (OID) del dispositivo: el sysDescr y el sysObjectID. A partir de ahí, según sea necesario, se lanzan más consultas. En función de los resultados, cada uno de los casi 1000 check plugins SNMP suministrados decide si el dispositivo es realmente compatible con ese check plugin. Checkmk llama a esta fase «escaneo SNMP» y, como resultado, el software genera una lista de check plugins que sirven como candidatos para el descubrimiento de servicios.

En un segundo paso se ejecuta la detección propiamente dicha. Los Plugins encontrados recuperan los datos exactos que necesitan mediante consultas SNMP locales y utilizan estos datos para determinar los servicios que se van a realizar la monitorización. Los datos recuperados son precisamente aquellos que más tarde se obtendrán periódicamente para la monitorización.

Para los dispositivos en una LAN, el proceso completo no suele tardar mucho: más de unos segundos sería una excepción. Sin embargo, si realizas la monitorización de dispositivos a través de enlaces WAN de alta latencia, el escaneo completo puede tardar varios minutos. Por supuesto, un escaneo también tarda más en el caso de switches con cientos de puertos. Ahora bien, sería muy poco práctico tener que esperar tanto tiempo cada vez que abres la página de servicios.

Por eso, la configuración normalmente omite el escaneo y realiza la detección solo con los check plugins que ya están en uso en el host. Los recorridos SNMP ya están disponibles como archivos de caché a través de la monitorización normal, y la detección no tarda mucho. Con esto podrás encontrar nuevos items de los plugins existentes (por ejemplo, nuevos puertos del switch, discos duros, sensores, VPN, etc.), pero no encontrarás plugins completamente nuevos.

El botón «Full service scan» fuerza un escaneo SNMP y obtiene datos actualizados a través de SNMP. Como resultado, también se encuentran los servicios de Plugins completamente nuevos. Puede que sea necesario esperar a los dispositivos SNMP que tardan en responder.

Servicios estándar

Independientemente del dispositivo SNMP que utilice para la monitorización, como mínimo deberían aparecer los tres servicios siguientes en la configuración:

Display of the three standard services that every SNMP device should have.

El primer servicio es una comprobación que supervisa los puertos de red. El dispositivo debe tener al menos uno y estar activo; de lo contrario, SNMP no funcionaría. En general, Checkmk está preconfigurado para incluir en la monitorización todos los puertos que estén activos en el momento del descubrimiento de servicios (estado operativo «up»). Puedes influir en esto con el conjunto de reglas «Setup > Services > Service discovery rules > Network interface and switch port discovery».

Por cierto, en la Guía para principiantes encontrarás un capítulo sobre las mejores prácticas a la hora de configurar los puertos del switch.

El segundo es el servicio SNMP Info, que muestra los mismos cuatro datos que viste en el diagnóstico. Este tiene una función puramente informativa y siempre está en estado «OK».

Por último, está el servicio «Uptime», que te muestra cuándo se reinició el dispositivo por última vez. Este servicio siempre está desactivado (OK) de forma predeterminada, pero puedes establecer umbrales mínimos y máximos para el tiempo de actividad.

3. Cuando los dispositivos dan problemas

3.1. Una implementación defectuosa de SNMP

De hecho, parece que cualquier error imaginable que se pueda cometer teóricamente al implementar SNMP ya lo ha cometido algún fabricante en algún momento. Por eso hay dispositivos en los que SNMP funciona bastante bien, pero ciertas partes del protocolo no funcionan o se han implementado incorrectamente.

Si los problemas se producen con las ediciones comerciales, una de las razones puede ser que la implementación de Inline-SNMP, que ofrece un mejor rendimiento y viene activada por defecto, depende en mayor medida del cumplimiento de los estándares que snmpget. Si los dispositivos no responden en absoluto o no lo hacen de forma fiable, a veces ayuda desactivar Inline-SNMP para los dispositivos afectados y activar así el snmpget, algo más robusto pero significativamente más lento.

Para las pruebas en la línea de comandos, el comando cmk tiene, para algunas opciones, la opción adicional --snmp-backend, que acepta inline (uso de Inline-SNMP), classic (uso de snmpget) o stored-walk (uso de un recorrido SNMP almacenado) como parámetros. Si la prueba en la línea de comandos ha tenido éxito, puedes usar el conjunto de reglas Hosts not using inline SNMP para especificar los hosts que no deben usar Inline-SNMP de forma permanente.

No hay respuesta a una solicitud asysDescr

Un posible error es cuando los agentes SNMP no responden a la solicitud de información estándar —por ejemplo, no hay respuesta a sysDescr. Estos dispositivos son prácticamente inútiles en un diagnóstico, y no proporcionarán ningún resultado al descubrimiento de servicios si no les ayudas con una configuración especial. Para ello, para los hosts afectados, crea una regla en Setup > Agents > SNMP rules > Hosts without system description OID con la opción Positive match (Add matching hosts to the set). Checkmk simplemente asumirá entonces que todo está bien y se saltará la prueba con el sysDescr. Aunque no se detectarán check plugins que esperen partes específicas de este texto, en la práctica esto no importa, ya que los complementos afectados están diseñados para adaptarse a tal condición.

SNMPv2c funciona, pero las solicitudes masivas fallan

Algunos dispositivos admiten la versión v2c (y te lo indicarán en el diagnóstico), pero la implementación del comando GetBulk no está presente en el protocolo. Checkmk utiliza este comando para obtener la mayor cantidad de información posible con una sola solicitud, lo cual es muy importante para el rendimiento.

Con un host así, algunas comprobaciones SNMP sencillas funcionarán —como SNMP Info o SNMP Uptime—, pero faltarán otros servicios —especialmente las interfaces de red que deben estar presentes en cada dispositivo.

Si realmente tienes un host en el que ocurre esto, puedes ejecutarlo con v2c, pero sin solicitudes masivas. Configura dicho host de la siguiente manera:

  1. Establece la versión SNMP en las propiedades del host en SNMPv1.

  2. En el conjunto de reglas «Setup > Agents > SNMP rules > Legacy SNMP devices using SNMPv2c», crea una regla para el host y establece el valor normalmente en «Positive match (Add matching hosts to the set)».

Esto obliga al host a usar el protocolo SNMPv2c —aunque se haya establecido la versión 1— pero sin walk masivo. Por cierto, no recomendamos el uso de SNMPv1 —aunque sea compatible— porque no admite contadores de 64 bits. Esto puede provocar que falten datos de medición o que estos sean erróneos en los puertos de red sujetos a mucho tráfico.

Dispositivos que responden muy lentamente

Hay algunos dispositivos con los que ciertas consultas SNMP tardan mucho tiempo. Esto se debe en parte a implementaciones incorrectas. En estos casos, a veces puede ayudar volver a SNMPv1 —que suele ser mucho más lento, pero que a veces puede ser más rápido que un SNMPv2c defectuoso—. Sin embargo, antes de probar esto, deberías checkear si el fabricante ofrece una actualización de firmware que resuelva el problema.

Una segunda causa puede ser que el dispositivo tenga muchos puertos del switch y, además, una implementación SNMP lenta. Si solo quieres realizar la monitorización de unos pocos puertos (por ejemplo, solo los dos primeros), puedes limitar manualmente Checkmk para que solo sondee los puertos especificados. Encontrarás más detalles sobre esto más abajo, en Rendimiento.

3.2. Solo se encuentran los servicios estándar

Has incluido un dispositivo SNMP en la monitorización, pero Checkmk solo reconoce los servicios SNMP Info y SNMP Uptime, así como las interfaces. Esto puede deberse a varias causas:

a) No hay Plugins

Checkmk ofrece casi 1000 check plugins para dispositivos SNMP, pero, naturalmente, esta lista nunca está completa. Una y otra vez se comprueba que, para ciertos dispositivos, Checkmk no ofrece ningún plugin específico, lo que significa que solo puedes supervisar los servicios estándar mencionados. En este caso, tienes las siguientes opciones:

  • Puede que encuentres un Plugin adecuado en Checkmk Exchange, donde los usuarios pueden subir sus propios Plugins.

  • Desarrollar los Plugins tú mismo. Encontrarás artículos al respecto en este Manual de usuario.

  • Mantén contacto con nuestro equipo de soporte o con uno de nuestros socios y solicítales que desarrollen los Plugins adecuados.

b) Los Plugins no se reconocen

A veces ocurre que una nueva versión de firmware de un dispositivo hace que los Plugins de Checkmk ya no lo reconozcan, por ejemplo, porque ha cambiado un texto en la descripción del sistema del dispositivo. En tal caso, hay que adaptar los Plugins existentes. Ponte en contacto con nuestro equipo de soporte para ello.

c) El dispositivo no proporciona los datos necesarios

Algunos (pocos) dispositivos permiten configurar individualmente el acceso a áreas de información específicas en su configuración SNMP. Es posible que tu dispositivo esté configurado para proporcionar la información predeterminada, pero no la de los servicios específicos del dispositivo.

En algunos dispositivos, debes utilizar SNMPv3 y contextos para obtener los datos que deseas.

3.3. Dispositivos que no responden en absoluto a SNMP

Si el ping funciona, pero ninguna de las versiones del protocolo SNMP funciona, puede haber varias causas posibles:

  • No se puede acceder al dispositivo a través de IP en absoluto. Puedes checkarlo con la prueba de ping.

  • El dispositivo no es compatible con SNMP en absoluto.

  • El recurso SNMP no está configurado correctamente (activación, direcciones permitidas, comunidad).

  • Un cortafuegos bloquea SNMP. Tienes que abrir el puerto UDP 161 tanto para el tráfico saliente como para el entrante.

4. SNMPv3

4.1. Seguridad

Por defecto, SNMP no está cifrado y, por lo tanto, la autenticación es muy débil, ya que se transmite como texto sin formato a través de la red. Este nivel puede seguir siendo suficiente para una red local y aislada, ya que en este caso la monitorización se limita a operaciones de solo lectura.

Si aún así quieres un mayor nivel de seguridad, necesitarás la versión 3 de SNMP. Esta ofrece la opción de cifrado y autenticación genuina. Para ello, sin embargo, también es necesaria una configuración adecuada.

SNMPv3 reconoce varios niveles de seguridad:

noAuthNoPriv

Sin autenticación real basada en el usuario, sin cifrado. No obstante, la ventaja respecto a la v2c es que la contraseña ya no se transmite en texto plano, sino que se somete a un proceso de hash.

authNoPriv

Autenticación basada en el usuario con un nombre (Security name) y una contraseña, pero sin cifrado.

authPriv

Autenticación basada en el usuario como con authNoPriv. Además, todos los datos están cifrados. Aquí tienes que intercambiar manualmente una clave, es decir, introducir la clave tanto en el dispositivo como en Checkmk.

La configuración necesaria en Checkmk se realiza en el mismo lugar donde también definiste la comunidad, ya sea en las propiedades del host o en la regla de SNMP credentials of monitored hosts. Allí, en lugar de SNMP Community, selecciona uno de los tres niveles de v3 y configura los valores necesarios:

Configuring SNMPv3 security settings.

4.2. Contextos

SNMPv3 introduce el concepto de contextos. Un dispositivo SNMP puede mostrar información diferente en un mismo punto del árbol SNMP, dependiendo del ID de contexto que se indique en la consulta.

Si tienes un dispositivo que funciona con estos contextos, necesitarás dos ajustes en Checkmk:

  • En primer lugar, el dispositivo debe consultarse mediante SNMPv3 (tal y como se describe en la sección anterior).

  • A continuación, necesitas otra regla en el conjunto de reglas «SNMPv3 contexts to use in requests». Aquí seleccionas el check plugin para el que se deben activar los contextos y, a continuación, la lista de contextos que deben consultarse en la monitorización.

Por suerte, hay muy pocas situaciones en las que tengas que trabajar con contextos, ya que, lamentablemente, la monitorización no puede reconocerlos automáticamente. Siempre es necesaria una configuración manual de los contextos.

5. Rendimiento y tiempos

5.1. Inline-SNMP

El rendimiento siempre es importante, sobre todo en entornos con muchos hosts, y la monitorización con SNMP consume más CPU y memoria que con los agentes Checkmk.

CEE Mientras que Checkmk Community realiza las solicitudes SNMP de la forma clásica mediante los comandos snmpget o snmpbulkwalk, las ediciones comerciales cuentan con un motor SNMP integrado que ejecuta las solicitudes SNMP de forma muy eficiente sin generar procesos adicionales. Con esto, la carga de CPU para el procesamiento SNMP se reduce aproximadamente a la mitad. Los tiempos de sondeo más cortos también reducen el número de procesos de Checkmk necesarios simultáneamente y, por lo tanto, la carga de memoria.

5.2. Intervalos de checks para checks SNMP

Si tus recursos llegan al límite, o si se tarda más de 60 segundos en sondear un solo dispositivo, puedes reducir el intervalo con el que Checkmk consulta al host o hosts. Con el conjunto de reglas «Normal check interval for service checks», que se aplica específicamente a los servicios de Checkmk de los hosts, puedes ampliar el intervalo general de un minuto a, por ejemplo, 2 o 5 minutos.

Especialmente para las comprobaciones SNMP, también existe el conjunto de reglas «Fetch intervals for SNMP sections». Esto te permite reducir el intervalo para check plugins individuales. Es importante saber que nunca puedes establecer un intervalo más rápido que el intervalo de monitorización general del servicio «Check_MK».

En general, sin embargo, recomendamos que la monitorización se diseñe de manera que se pueda mantener el intervalo estándar de un minuto, y que solo se aumente en casos de excepción para hosts o checks individuales.

5.3. Ajustes de tiempo para el acceso SNMP

Por defecto, Checkmk espera una respuesta en menos de un segundo para una solicitud SNMP. Además, lo intenta un total de tres veces antes de darse por vencido. Para dispositivos que responden muy lentamente, o a los que solo se puede acceder a través de una red muy lenta, puede ser necesario cambiar estos parámetros. Esto se hace a través del conjunto de reglas «Timing settings for SNMP access»:

Increasing the response timeout.

Ten en cuenta que estos ajustes se aplican a una solicitud SNMP individual. El proceso completo de monitorización de un host consta de muchas solicitudes independientes. Por lo tanto, el timeout total es un múltiplo de los ajustes especificados aquí.

5.4. Recorrido masivo: Número de OID por bloque

Por defecto, SNMP transmite 10 respuestas en un paquete por cada solicitud «GetBulk». Prueba el conjunto de reglas «Bulk walk: Number of OIDs per bulk» para ver si un valor más alto funciona mejor. Sin embargo, esto solo ocurrirá cuando se transfieran tablas grandes al host, por ejemplo, si se trata de un switch con muchos puertos.

SNMP siempre llena los paquetes hasta el número especificado, incluyendo cualquier registro que siga a los realmente necesarios. Y si solo se necesitan unos pocos de estos registros, se transfieren datos adicionales innecesarios y aumenta la sobrecarga.

Por otro lado, en la práctica puede ocurrir ocasionalmente que los dispositivos con el valor por defecto de 10 OID por bloque puedan tener problemas. En tal caso, puede ser útil reducir el número.

5.5. Limitar los rangos de OID de SNMP

Checkmk suele funcionar obteniendo siempre la información de todos los puertos del switch, aunque no todos estén siendo monitorizados realmente. Esto es bueno de todos modos, ya que normalmente es más rápido porque no se pueden realizar consultas individuales con las eficientes solicitudes masivas. Además, desde nuestro punto de vista, siempre es recomendable realizar la monitorización de todos los puertos para detectar puertos defectuosos o cables con altas tasas de error. Si los puertos no son fiables UP, también puedes marcar el estado del enlace DOWN como OK.

Sin embargo, hay casos aislados en los que los switches tienen muchísimos puertos y, por alguna razón, responden muy lentamente o realizan el proceso de SNMP de forma muy ineficiente, por lo que ya no es posible realizar la monitorización con una recuperación completa de toda la información de los puertos.

Para estos casos, existe el conjunto de reglas «Bulk walk: Limit SNMP OID Ranges». Esto te permite limitar de forma estática la lista de datos consultados (por ejemplo, los puertos). En el valor de la regla, para cada check plugin concreto, especificas qué índices de la tabla correspondiente se deben recuperar.

El tipo de check habitual para los puertos del switch se llama «SNMP interface check with 64 bit counters (using v2c)». El siguiente ejemplo muestra una configuración en la que solo se recuperan los dos primeros puertos a través de SNMP:

Bulk walk: limit SNMP OID ranges.

Nota: Este filtrado se aplica antes del descubrimiento de servicios y la monitorización del servicio. Dependiendo de la configuración de «Network interface and switch port discovery», esto no significa automáticamente que estos dos puertos vayan a ser supervisados.

6. Simulación mediante recorridos SNMP

6.1. Principio

El motor SNMP de Checkmk tiene una función muy útil: puedes hacer que un dispositivo supervisado escriba una instantánea completa de todos sus datos SNMP en un archivo, un recorrido SNMP. Puedes usar este archivo más tarde para simular la monitorización del dispositivo en otro servidor Checkmk, incluso si este otro servidor no tiene conexión de red real con el dispositivo.

Usamos esta función mucho, por ejemplo, cuando nuestro equipo de soporte está desarrollando nuevos check plugins para nuestros clientes. Por eso, nuestros desarrolladores no necesitan acceso a tus dispositivos, solo un recorrido SNMP.

6.2. Crear un walk a través de la GUI

Puedes crear un recorrido SNMP directamente desde la GUI. La función se encuentra en el menú de acciones del servicio «Check_MK» de los hosts y también en el menú de acciones de los hosts (entrada «Download SNMP walk»):

Download SNMP walk in the action menu for the host in the monitoring overview.

La creación del walk tarda unos segundos en el mejor de los casos, pero no es raro que tarde unos minutos. Cuando la compilación haya terminado, puedes descargar el archivo creado a través de la línea «Result».

6.3. Crear un recorrido desde la línea de comandos

Como alternativa, también puedes crear recorridos desde la línea de comandos. Inicia sesión en el site desde el que se supervisa el dispositivo. La creación del recorrido se realiza simplemente con el comando cmk --snmpwalk y el host especificado (que debe estar configurado en la monitorización):

OMD[mysite]:~$ cmk --snmpwalk switch23
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Utiliza también el switch `-v` para ver información más detallada sobre el progreso:

OMD[mysite]:~$ cmk -v --snmpwalk switch23
switch23:
Walk on ".1.3.6.1.2.1"...3664 variables.
Walk on ".1.3.6.1.4.1"...5791 variables.
Wrote fetched data to /omd/sites/mysite/var/check_mk/snmpwalks/switch23.
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

El archivo se guardará en el directorio var/check_mk/snmpwalks, donde simplemente llevará el nombre del host. Es un archivo de texto. Si tienes curiosidad, puedes verlo, por ejemplo, con less; sal del programa con la tecla Q:

OMD[mysite]:~$ less var/check_mk/snmpwalks/switch23
.1.3.6.1.2.1.1.1.0 Yoyodyne Frobolator 23 port L2 Managed Switch
.1.3.6.1.2.1.1.2.0 .1.3.6.1.4.1.11863.1.1.3
.1.3.6.1.2.1.1.3.0 560840147
.1.3.6.1.2.1.1.4.0 Zoe Zhang 
.1.3.6.1.2.1.1.5.0 cmkswitch23
.1.3.6.1.2.1.1.6.0 Data Center 42
.1.3.6.1.2.1.1.7.0 3
.1.3.6.1.2.1.2.1.0 27
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

El comando cmk --snmpwalk tiene algunas opciones más útiles:

Opción Efecto

--extraoid <OID>

Cuando Checkmk realiza un recorrido por un host, normalmente recupera dos subárboles del área de datos SNMP. Estos se especifican en el árbol SNMP mediante los llamados OID (identificadores de objeto). Se trata de MIB-2 y enterprises, es decir, por un lado, un área estándar que está normalizada y es igual para todos los dispositivos SNMP, y por otro lado, un área específica del fabricante. Si el SNMP está implementado correctamente, esto debería hacer que el dispositivo SNMP envíe todos los datos que proporciona. Si no es así y buscas un rango específico, puedes añadir su OID al recorrido con esta opción, p. ej., cmk --snmpwalk --extraoid .1.2.3.4 switch23. No te olvides del «punto» al principio del OID.

--oid

Esta opción es similar a --extraoid, pero solo recupera el OID especificado. Esto resulta interesante para fines de prueba. Ten en cuenta, sin embargo, que el recorrido será incompleto.

-v

v significa «verboso» y mostrará información interesante durante el recorrido.

-vv

vv significa «muy detallado» y muestra mucha más información.

6.4. Uso de recorridos guardados para simulaciones

Si quieres usar este recorrido en un site de Checkmk diferente (o en el mismo) para una simulación, guarda el archivo del recorrido con el nombre del host de este site en var/check_mk/snmpwalks. Asegúrate de que el usuario del site sea el propietario del archivo y de que los permisos estén configurados como «0600» (solo el propietario puede leer y escribir).

Ahora crea una regla en el conjunto de reglas Simulating SNMP by using a stored SNMP walk que acceda a los hosts afectados.

A partir de ahora, solo se utilizará el archivo guardado para la monitorización del host. Ahora no hay acceso de red al host, excepto el ping para la comprobación del host y, posiblemente, cualquier comprobación activa configurada. Puedes redirigirlas simplemente al servidor Checkmk asignando la dirección IP 127.0.0.1 a los hosts.

7. Archivos y directorios

Ruta del archivo Descripción

var/check_mk/snmpwalks

Aquí se generan los archivos SNMP walk o también se esperan si quieres usarlos para simular datos SNMP.


Last modified: Mon, 19 Jan 2026 12:48:35 GMT via commit a0e9c360f
En esta página