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. Introducción

Checkmk admite el concepto de etiquetas, de las que puedes asignar tantas como quieras a un host. Las etiquetas y los tags del host funcionan de manera muy similar:

  • Las etiquetas se «asignan» a los hosts de la misma manera que las etiquetas.

  • Las etiquetas se pueden usar como condiciones para reglas de la misma manera que los tags.

  • The labels are created in a similar manner to tags, following the «key:value» principle.

Entonces, ¿por qué hay un nuevo concepto aquí? Bueno, el mundo de la TI está cambiando y se está volviendo mucho más dinámico. Los sistemas en la nube y de contenedores, como Amazon Web Services (AWS), Microsoft Azure y Kubernetes, crean y eliminan de forma autónoma lo que denominan «objetos», que corresponden a los hosts en Checkmk. En estas tecnologías, las etiquetas y las marcas desempeñan un papel importante porque establecen las conexiones entre los objetos de la monitorización y sus funciones. Los nombres de los hosts, por otro lado, son cada vez más aleatorios y carecen de significado.

Checkmk puede crear estos hosts dinámicos automáticamente con la administración dinámica del host, y también puede recibir información sobre cualquier etiqueta o tag que ya esté presente. Estas etiquetas o tags se pueden usar luego para condiciones de reglas, búsquedas, evaluaciones, dashboards y otras tareas.

Por supuesto, surge la pregunta: ¿por qué no realizamos simplemente el mapeo de esas etiquetas dinámicas al concepto existente de tags del host? En realidad, esa es una conclusión muy obvia a primera vista. Sin embargo, las etiquetas del host tienen una propiedad muy importante que haría que eso resultara muy difícil y complicado: Checkmk define de forma rígida qué etiquetas y grupos de tags de host están presentes. Todo está bien definido. Cada host tiene exactamente una etiqueta del host de cada grupo. Todo el mundo puede confiar en ello. No pueden producirse errores tipográficos en la ortografía de las etiquetas —ni siquiera con hosts que no sigan el esquema— porque su cumplimiento está estrictamente controlado por Checkmk. Esto es muy importante y útil en entornos muy heterogéneos con muchos miles de hosts gestionados manualmente.

Por el contrario, las etiquetas dinámicas de Kubernetes y similares son, en la práctica, de «forma libre», y aunque sigan un esquema, este es desconocido para Checkmk. Además, es posible que estés realizando la monitorización de varias plataformas diferentes, que a su vez utilizan las etiquetas de formas muy distintas.

Por eso se ha introducido un concepto de etiquetas de Checkmk que se adapta a esta dinámica creciente. Por supuesto, también puedes usar las etiquetas aunque no utilices conexiones a entornos en la nube.

Para responder a la pregunta «¿Cuándo usar etiquetas y cuándo usar tags del host?», hay más información en el artículo sobre la estructuración de hosts.

Estas son las características de las etiquetas:

  • Las etiquetas no tienen que estar predefinidas en ningún sitio. No hay un esquema fijo para las etiquetas. Todo es de formato libre. Todo está permitido.

  • Cada host puede tener tantas etiquetas como quieras. Estas se pueden mantener manualmente, definir mediante reglas o crear automáticamente.

  • Las etiquetas se estructuran según el principio «key:value». Cada host solo puede tener un valor por clave. Así que un host que tenga la etiqueta «foo:bar» no puede tener al mismo tiempo «foo:bar2».

  • A diferencia de los tags del host, tanto la clave como el valor —excepto los dos puntos (:)— pueden contener cualquier carácter.

  • No hay distinción entre el ID y el título (o nombre que se muestra): la clave de la label es ambas cosas a la vez.

The labels have the following functions:

  • Sientan las bases para las condiciones en las reglas de configuración, por ejemplo: «Todos los hosts con la etiqueta os:windows deben ser objeto de la misma forma de monitorización».

  • Es muy fácil guardar información adicional o comentarios sobre un host (por ejemplo, location:RZ 74/123/xyz) y mostrarlos en vistas de tabla, por ejemplo.

2. Creación de etiquetas

2.1. Etiquetas explícitas

Las etiquetas se pueden asignar a un host de varias formas.

La primera de ellas es sencilla: En la página de propiedades del host, que se muestra cuando creas o editas un host en la configuración, puedes asignarle tantas etiquetas como quieras:

Dialog with properties of a host for defining labels.

Marca la checkbox «Labels» (Label de host), luego haz clic en el campo «Add some label» (Label de host), introduce la definición de la etiqueta siguiendo el esquema «key:value» y termina pulsando Intro.

Puedes editar una etiqueta existente haciendo clic en su texto, o eliminarla con la pequeña «x».

Tip

Tanto la clave como el valor de una etiqueta pueden incluir cualquier carácter, excepto los dos puntos (:). Sin embargo, debes pensar bien en el uso de los caracteres y las mayúsculas y minúsculas, ya que si más adelante defines condiciones mediante etiquetas, la ortografía tanto de la clave como del valor debe respetarse estrictamente.

Por supuesto, las etiquetas también se pueden heredar de una carpeta. Al igual que otros atributos, las etiquetas pueden estar en subcarpetas o en el host, y luego, según sea necesario, se pueden sobrescribir de nuevo —de hecho, de forma individual. Si, por ejemplo, la etiqueta location:munich está configurada en la carpeta, esta será heredada por todos los hosts de esta carpeta que no tengan ya definida la etiqueta location. Las demás etiquetas que pueda tener un host no se verán afectadas.

Las etiquetas definidas explícitamente para hosts o carpetas aparecen en color violeta en la lista de hosts:

List entry of a host with the assigned explicit labels.

2.2. Creación de etiquetas mediante reglas

Como es habitual en Checkmk, también se pueden asignar atributos a hosts y servicios mediante reglas. Esto te hará independiente de la estructura de carpetas, y también se aplica a las etiquetas. Hay un conjunto de reglas Host labels para esta función, que puedes encontrar rápidamente mediante una búsqueda en el Menú de configuración.

La siguiente regla añade la etiqueta «hw:real» a todos los hosts de la carpeta «Bavaria» que tengan el tag del host «Real Hardware»:

Rule for specifying labels for hosts.

Quizás hayas notado que no se pueden usar etiquetas en las condiciones de esta regla. No es un error, sino algo intencionado, y evita dependencias recursivas y otras anomalías.

Las etiquetas añadidas mediante reglas aparecen en rojo en el host mostrado, pero no aparecen en la lista de hosts de la configuración, sino que solo aparecen en la vista de tabla del estado del host.

2.3. Labels generadas automáticamente

La tercera forma de crear etiquetas es de forma totalmente automática. Varias fuentes de datos, como los agentes especiales para la monitorización de sistemas en la nube y de contenedores, generan etiquetas automáticamente. En particular, cabe mencionar aquí los agentes especiales para AWS, Azure y Kubernetes. A veces, estos elementos también se denominan «tags» en las respectivas plataformas y se crean en Checkmk como etiquetas de host o de servicio. Los respectivos conjuntos de reglas proporcionan información suficiente al respecto.

Lo bueno es que no tienes que configurar nada en absoluto. En cuanto estas fuentes de datos estén activas, se generarán las etiquetas correspondientes.

En la sección Host labels generadas automáticamente encontrarás una vista general de las etiquetas que Checkmk genera automáticamente.

2.4. Especificar etiquetas mediante un plugin de agente

Una forma sencilla de manipular las etiquetas directamente es añadir un plugin de agente que, de forma análoga a las local checks, crea una sección llamada «labels». De esta manera, puedes asignar etiquetas con más detalle que evaluando únicamente el inventario de HW/SW; por ejemplo, según los matices del hardware instalado (como las características de la CPU) o en función de los procesos que se estén ejecutando realmente (en lugar de simplemente el software instalado).

La salida de la etiqueta debe tener el formato de un diccionario de Python, como en el siguiente ejemplo:

<<<labels:sep(0)>>>
{"cpu/vendor": "zilog"}

Evita conflictos con las etiquetas asignadas automáticamente por el propio Checkmk y otros Plugins, ya que no se puede garantizar un orden de evaluación concreto.

2.5. Incluir etiquetas encontradas en el check de descubrimiento

Si ha habilitado la comprobación de descubrimiento —que es la opción predeterminada para las nuevas instalaciones—, te avisará cuando se encuentren nuevas host labels que aún no se hayan añadido a las propiedades del host en la configuración. Esto tendrá un aspecto similar al siguiente, por ejemplo:

Service list with the service 'Check_MK Discovery'.

Tienes dos opciones para responder a esta advertencia. La primera es añadir las nuevas etiquetas accediendo a la configuración del servicio del host en la configuración y actualizando la configuración de las etiquetas con el elemento de menú «Hosts > Update host labels». La comprobación de descubrimiento volverá a ser «OK» la próxima vez que se ejecute (con un retraso de hasta dos horas), incluso si aún no has activado los cambios. Si no quieres esperar tanto tiempo, también puedes actualizar el servicio manualmente de inmediato seleccionando «Reschedule check» en el menú de acción del servicio.

Si esto afecta a muchos hosts a la vez, seguramente no querrás visitar la configuración del servicio de cada host. Lo mejor que puedes hacer aquí es ejecutar la acción masiva «Run bulk service discovery» y seleccionar «Only discover new host labels» como modo —o, alternativamente, «Add unmonitored services and new host labels» si también quieres aprovechar para añadir nuevos servicios.

La segunda forma de hacer que el check de descubrimiento pase a verde es reconfigurarlo para que ya no te avise de nuevas etiquetas. Para ello, ve al conjunto de reglas «Periodic service discovery» y edita la regla existente; allí encontrarás la opción «Severity of new host labels»:

Rule for periodic service discovery.

Esta está configurada en «Warning» por defecto. Elige «OK - do not alert, just display» y la check dejará de mostrar avisos.

Las etiquetas encontradas mediante el proceso de descubrimiento se muestran en amarillo ocre.

2.6. Orden de prioridades en la asignación de etiquetas

En teoría, una misma etiqueta puede definirse con valores diferentes en varias fuentes a la vez. Por eso existe el siguiente orden de prioridad:

  1. En primer lugar, las etiquetas explícitas, es decir, aquellas que defines para el host o la carpeta directamente en la configuración.

  2. En segundo lugar están las etiquetas creadas por reglas.

  3. En último lugar están las etiquetas generadas automáticamente.

Estas reglas de prioridad te dan el control total sobre las etiquetas.

3. Las etiquetas como condiciones en las reglas

3.1. Condiciones en las reglas

Una función importante de las etiquetas es la misma que la de las características de host: Es decir, su uso como condición en las reglas. Esto resulta especialmente útil para las etiquetas generadas automáticamente, ya que puedes adaptar tu monitorización de forma totalmente automática basándote en la información de AWS, Azure, Kubernetes y demás.

Añade condiciones con Add to condition para las etiquetas de host o servicio. Ahora selecciona is o not para formular una condición positiva o negativa y, a continuación, introduce la etiqueta en el formato habitual key:value. Presta atención a la ortografía exacta aquí, incluyendo las mayúsculas. Como las etiquetas se pueden definir sin especificaciones, Checkmk no puede reconocer errores tipográficos. No obstante: cuando escribes una etiqueta, Checkmk sugiere etiquetas existentes si hay coincidencia con tu entrada anterior. En las sugerencias no se distingue entre etiquetas de host y de servicio: se ofrecen todas las etiquetas que coinciden. Presta atención a la ortografía correcta, ya que los errores ortográficos, el uso incorrecto de mayúsculas, etc., harán que la regla deje de funcionar.

Sin embargo, la definición de la condición va un paso más allá: Para refinar aún más la condición, también tienes a tu disposición los operadores booleanos Not, And y Or. Aquí, Not es la abreviatura de And Not.

  • Not significa que la condición A debe cumplirse y la condición B no debe cumplirse al mismo tiempo.

  • And significa que tanto la condición A como la condición B deben cumplirse al mismo tiempo.

  • Or significa que debe cumplirse la condición A o la condición B, pero también pueden cumplirse ambas condiciones.

Important

Los operadores se procesan exactamente en este orden de prioridad — Not, And, Or — es decir, no necesariamente en el orden en que aparecen en la lista. Esto se ajusta a la norma del álgebra booleana. Por ejemplo, A And B Not C Or D equivaldría a los paréntesis (A And (B Not C)) Or D.

Por ejemplo, para encontrar hosts con la etiqueta cmk/site:today pero sin la etiqueta cmk/piggyback_source_today:yes, la condición podría ser así:

Condition for host labels.

Puedes refinar esta condición con is o not con cualquier otra especificación. O puedes añadir un nuevo grupo de condiciones con Add to condition, lo que hace que la condición, ahora más compleja, sea más fácil de leer, pero no cambia la evaluación del álgebra booleana:

multiple conditions for host labels.
Tip

Si no has definido ni Host tags ni Host labels, la regla en cuestión se aplica siempre a todos los hosts o servicios. Si has creado varias reglas, es posible que las reglas posteriores ya no se evalúen; consulta Tipos de análisis de reglas.

Puedes usar tanto etiquetas como tags del host en una regla. Estas se enlazan automáticamente con un «Y». Por lo tanto, la regla solo se aplica si ambas condiciones se cumplen al mismo tiempo.

3.2. Condiciones en las reglas de notificación

También puedes usar etiquetas como condiciones en las reglas de notificación. El uso es el mismo que en otras condiciones, así que no necesitas volver a aprender a usarlas. Selecciona «Match host labels» y simplemente introduce qué etiquetas debe tener un host o servicio, lo que activará una notificación a través de esta regla. De nuevo, las etiquetas múltiples se conectan mediante la operación «AND».

4. Etiquetas en las vistas de tabla

Hasta ahora solo hemos hablado de las etiquetas en el entorno de configuración (o, en resumen: la configuración). Las etiquetas también son visibles en el entorno de monitorización, por ejemplo, en la vista de estado de un host:

Dialog with the host state and the assigned labels.

Aquí puedes ver las etiquetas en diferentes colores según cómo se hayan creado: Las etiquetas explícitas en violeta, las creadas por reglas en rojo y las creadas por un check de descubrimiento en amarillo ocre.

El resaltado en color de las etiquetas no solo destaca visualmente en la vista de tabla, sino que también es práctico porque se puede hacer clic en ellas, lo que te lleva a una búsqueda de todos los hosts con esta etiqueta:

Filter bar with filter to search for a label.

Aquí puedes buscar hosts con esta etiqueta (usando la opción predeterminada is) o sin esta etiqueta (usando la opción is not).

También puedes usar los operadores booleanos Not, And y Or en la búsqueda de etiquetas, tal y como se describe en la sección «Condiciones» de las reglas. Por ejemplo, para encontrar hosts Linux que estén ubicados en Múnich y que no sean servidores web, el filtro podría tener este aspecto:

Filter options with 3 label filters linked by logical operators.

Puedes refinar aún más este filtro, por ejemplo, para encontrar además hosts Windows que sean tanto «sin pantalla» (con or) como franceses (con and). Puedes introducir las tres nuevas líneas para esta ampliación del filtro directamente debajo de las existentes, o puedes crear un nuevo grupo con Add to query, lo que hace que el filtro, ahora más complejo, sea más fácil de leer, pero no cambia la evaluación del álgebra booleana:

Filter options with 6 label filters linked by logical operators.
Tip

Si te interesa saber qué sustitución de corchetes genera Checkmk a partir de los filtros de etiquetas introducidos, puedes visualizar la consulta de Livestatus asociada. Para ello, activa Setup > General > Global settings > Debug Livestatus queries.

En la barra de filtro, por supuesto, también puedes combinar la búsqueda de etiquetas con los demás parámetros de búsqueda disponibles.

5. Etiquetas de servicio

Los servicios también pueden tener etiquetas. Son similares a las host labels, aunque con algunas pequeñas diferencias:

  • No puedes definir etiquetas de servicio de forma explícita. Solo se pueden crear mediante reglas (Service labels) o de forma automática.

  • También puedes formular condiciones con etiquetas de servicio. En un conjunto de reglas, las etiquetas de servicio solo se ofrecen como entrada si la regla puede lograr una coincidencia con un servicio.

6. Etiquetas del agente

Checkmk Ultimate incluye la opción de crear hosts automáticamente. Para ello, se automatiza toda la cadena de registro de agentes, creación de hosts, descubrimiento de servicios y activación de cambios. La creación del host tiene lugar tras el registro.

Esta automatización plantea algunos retos a la hora de estructurar los hosts recién creados. Hasta ahora, el sistema operativo (almacenado en la host label cmk/os_family) solo se podía determinar a partir de la salida del agente. Sin embargo, para obtenerlo, el host ya debía estar creado.

Por este motivo, se introdujo el concepto de etiquetas del agente volátiles. Estas etiquetas se envían durante el registro y, por lo tanto, están disponibles antes de que se cree el primer agente. Durante el registro, puedes usar las etiquetas del agente para determinar si realmente se debe crear un host en la monitorización y, en caso afirmativo, para influir en la carpeta del host, así como en otros atributos del host. Una vez completado el registro, ya no se puede acceder a las etiquetas del agente.

Durante el registro siempre se transfieren dos etiquetas del agente predefinidas:

  • cmk/os-family contiene la familia del sistema operativo (actualmente Windows o Linux).

  • cmk/hostname-simple contiene el nombre del ordenador en forma abreviada (es decir, sin la parte del dominio)

Puedes asignar libremente etiquetas del agente personalizadas adicionales, por ejemplo: organizational/department:documentation.

A los hosts registrados automáticamente se les asigna la etiqueta de host cmk/agent_auto_registered:yes. No se admite la asignación directa de etiquetas de host como resultado de etiquetas del agente específicas. Sin embargo, tienes la alternativa de registrar los hosts en una carpeta (temporal) y luego asignar etiquetas de host a todos los hosts de esa carpeta.

7. Más información

7.1. Host labels generadas automáticamente

Clave Valores

cmk/agent_auto_registered

yes , si un host se creó mediante el autoregistro

cmk/aws/ec2

instance para todas las instancias de EC2

cmk/aws/account

Nombre de la cuenta de AWS a la que pertenece el host

cmk/aws/tag/{key}:{value}

Tags de los objetos de AWS

cmk/azure/resource_group

Grupo de recursos al que pertenece el objeto de Azure

cmk/azure/tag/{key}:{value}

Tags de los objetos de Azure

cmk/azure/vm

instance para todas las máquinas virtuales de Azure

cmk/check_mk_server

yes para todos los servidores Checkmk

cmk/device_type

Nombre del dispositivo SNMP transmitido, p. ej., appliance, fcswitch, firewall, printer, router, sensor, switch, ups, wlc.

cmk/docker_image

Imagen Docker, p. ej., docker.io/library/nginx:latest

cmk/docker_image_name

Nombre de la imagen Docker, p. ej., nginx.

cmk/docker_image_version

Versión de la imagen Docker, p. ej., latest.

cmk/docker_object

container , si el host es un contenedor Docker; node , si el host es un nodo Docker

cmk/kubernetes/annotation/{key}:{value}

Estas etiquetas se generan para cualquier etiqueta de Kubernetes que sea una anotación válida de Kubernetes (configurable mediante la regla Kubernetes).

cmk/kubernetes

yes si el host es un objeto de Kubernetes.

cmk/kubernetes/cluster

nombre del clúster de Kubernetes

cmk/kubernetes/cluster-host

nombre del clúster de Kubernetes host

cmk/kubernetes/cronjob

Cronjob de Kubernetes

cmk/kubernetes/daemonset

Nombre del DaemonSet

cmk/kubernetes/deployment

Nombre del despliegue

cmk/kubernetes/namespace

Nombre del namespace de Kubernetes asociado

cmk/kubernetes/node

Nombre del nodo de Kubernetes asociado. Los hosts de Checkmk de tipo Pod o Node reciben esta etiqueta.

cmk/kubernetes/object

Tipo de objeto de Kubernetes, p. ej., endpoint si el host es un objeto de endpoint de Kubernetes.

cmk/kubernetes/statefulset

Nombre del StatefulSet

cmk/meraki

yes para todos los dispositivos Meraki

cmk/meraki/device_type

Tipo de dispositivo Meraki, p. ej., switch o wireless

cmk/meraki/net_id

ID de red a la que pertenece el dispositivo Meraki

cmk/meraki/org_id

ID de la organización a la que pertenece el dispositivo Meraki

cmk/meraki/org_name

Nombre de la organización a la que pertenece el dispositivo Meraki

cmk/nutanix/object

control_plane para el host con el agente especial de Nutanix; node para un host de Nutanix; vm para máquinas virtuales de Nutanix

cmk/os_family

Sistema operativo, informado por el agente como AgentOS (p. ej., windows o linux)

cmk/os_type

Tipo de sistema operativo, informado por el agente como OS type (p. ej., windows, linux o unix)

cmk/os_name

Nombre del sistema operativo, informado por el agente como OSName (p. ej., Microsoft Windows 10 Pro, Ubuntu o Oracle Solaris)

cmk/os_platform

Plataforma del sistema operativo, indicada por el agente como OSPlatform (p. ej., Ubuntu para derivados de Ubuntu como Xubuntu), si está almacenada en /etc/os-release; si esta línea no aparece en la salida del agente, la etiqueta recibe el valor de cmk/os_family.

cmk/os_version

Versión del sistema operativo, indicada por el agente como OSVersion (por ejemplo, 22.04 para Ubuntu o 10.0.19045 para Windows)

cmk/vsphere_object

vm si el host es una máquina virtual; server si el host es un sistema host ESXi.

cmk/vsphere_vcenter

yes si el host es un VMware vCenter.


Last modified: Mon, 12 Jan 2026 17:09:31 GMT via commit 134c5fe31
En esta página