![]() |
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 cualquier número a un host. Las etiquetas y los tags del host se comportan de forma bastante similar:
Las etiquetas se "adjuntan" a los hosts del mismo modo que las tags.
Las etiquetas pueden utilizarse como condiciones para las reglas del mismo modo que las etiquetas.
Las etiquetas se crean del mismo modo que los tags, según el principio
key:value
.
Entonces, ¿a qué se debe este nuevo concepto? Bueno, el mundo de las 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 en Checkmk se corresponden con hosts. En estas tecnologías, las etiquetas y tags desempeñan un papel importante, porque establecen las conexiones entre los objetos monitorizados y sus funciones. Los nombres del host, en cambio, son cada vez más aleatorios y carecen de sentido.
Checkmk puede crear estos host dinámicos automáticamente con la configuración dinámica del host, y también puede recibir información sobre las etiquetas/tags que ya estén presentes. Estas etiquetas/tags se pueden utilizar para condiciones de reglas, búsquedas, evaluaciones, dashboards y otras tareas.
Por supuesto, surge la pregunta de por qué no asignamos simplemente esas etiquetas dinámicas al concepto existente de tags del host. En realidad, es una conclusión muy obvia a primera vista. Sin embargo, los tags del host tienen una propiedad muy importante que lo haría muy difícil y complicado: Checkmk define rígidamente qué tags y grupos de tags están presentes. Todo está bien definido. Cada host tiene exactamente una etiqueta 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 se ciñan al 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 Co son efectivamente "de forma libre", e incluso si siguen un esquema, éste es desconocido para Checkmk. Además, puedes estar monitorizando varias plataformas diferentes, que a su vez utilizan las etiquetas de formas muy distintas.
Por eso se ha introducido un concepto de etiquetas Checkmk que se adapta a esta dinámica creciente. Por supuesto, también puedes utilizar las etiquetas aunque no utilices conexiones a entornos cloud.
Para responder a la pregunta "¿Cuándo utilizar etiquetas y cuándo tags del host?", hay más información en el artículo sobre 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 forma libre. Todo está permitido.
Cada host puede tener tantas etiquetas como quieras. Éstas pueden mantenerse manualmente, definirse mediante reglas o crearse automáticamente.
Las etiquetas se estructuran según el principio
key:value
. Cada host sólo puede tener un valor por clave. Así, un host que tenga la etiquetafoo:bar
no puede tener al mismo tiempofoo:bar2
.A diferencia de los tags del host, tanto la clave como el valor -con excepción de los dos puntos (:)- pueden contener cualquier carácter.
No hay distinción entre ID y título (o nombre mostrado): la clave de la label es ambas cosas a la vez.
Las etiquetas tienen las siguientes funciones:
Sirven de base para las condiciones de las reglas de configuración, por ejemplo: 'Todos los host con la etiqueta
os:windows
deben ser monitorizados de la misma manera'.Es muy fácil almacenar información adicional o comentarios sobre un host (por ejemplo,
location:RZ 74/123/xyz
) y mostrarla en vistas, por ejemplo.
2. Crear etiquetas
2.1. Etiquetas explícitas
Las etiquetas pueden asignarse a un host de varias formas.
La primera de ellas es sencilla: en la página de propiedades del host, que aparece cuando creas o editas un host en la Configuración, puedes asignar a un host tantas etiquetas como quieras:

Activa Labels con el checkbox, luego haz clic en el campo Add some label, introduce la definición de la etiqueta siguiendo el esquema key:value
y termina con Intro.
Puedes editar una etiqueta existente haciendo clic en su texto, o borrarla con la pequeña "x".
![]() |
Tanto la clave como el valor de una etiqueta pueden incluir cualquier carácter-¡excepto los dos puntos ( |
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, sobrescribirse de nuevo, de hecho,individualmente. Si, por ejemplo, se define la etiqueta location:munich
en la carpeta, ésta será heredada por todos los hosts de esta carpeta que no tengan ya definida la etiqueta location
. Otras 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:

2.2. Crear etiquetas mediante reglas
Como es habitual en Checkmk, también se pueden asignar atributos a hosts y servicios mediante reglas. Esto te independizará de la estructura de carpetas, y también se aplica a las etiquetas. Existe 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 host de la carpeta Bavaria
que tengan el tag del host Real Hardware
:

Te habrás dado cuenta de que las etiquetas no se pueden utilizar en las condiciones de esta regla. Esto no es un error, sino 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 host de la Configuración, sino que sólo aparecen en la vista de estado del host.
2.3. Etiquetas generadas automáticamente
La tercera forma de crear etiquetas es 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 concreto, cabe mencionar aquí los agentes especiales para AWS, Azure y Kubernetes. A veces, en las respectivas plataformas también se denominan tags y se crean en Checkmk como etiquetas del host o del servicio. Los respectivos conjuntos de reglas proporcionan suficiente información 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 Etiquetas de host 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 los checks locales, crea una sección llamada labels
. De esta forma puedes asignar etiquetas con más detalle que evaluando sólo el inventario de HW/SW - por ejemplo, según matices del hardware instalado (como las características de la CPU), o relevantes para los procesos que se están ejecutando realmente (en lugar de simplemente el software instalado).
La salida de etiquetas debe formatearse como un diccionario 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 Plugin, ya que no se puede garantizar un orden concreto de evaluación.
2.5. Incluir etiquetas encontradas en el check de descubrimiento
Si has activado el check de descubrimiento-que es el predeterminado 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. Por ejemplo, esto tendrá el siguiente aspecto:

Tienes dos opciones para responder a este aviso. La primera es añadir las nuevas etiquetas llamando a la configuración del servicio para el host en la Configuración y actualizando la configuración de las etiquetas con el elemento de menú Hosts > Update host labels. El check de descubrimiento volverá a estar OK la próxima vez que se ejecute (con un retraso de hasta dos horas), aunque aún no hayas activado los cambios. Si no quieres esperar tanto, también puedes actualizar manualmente el servicio de forma inmediata seleccionando Reschedule check en el menú de acción del servicio.
Si esto afecta a muchos host a la vez, seguramente no querrás visitar la configuración del servicio para cada host. Lo mejor en este caso es ejecutar la acción masiva para 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 poner verde el check de descubrimiento es reconfigurarlo para que ya no te avise de las 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:

Por defecto está configurada como Warning. Elige OK - do not alert, just display y el check se silenciará.
Las etiquetas encontradas mediante el Discovery Check se muestran en amarillo.
2.6. Secuencia de prioridades de asignación de etiquetas
Teóricamente, una misma label puede estar definida con valores distintos en varias fuentes simultáneamente, por eso existe el siguiente orden de prioridad:
En primer lugar, las etiquetas explícitas, es decir, las que defines para el host o la carpeta directamente en la Configuración.
En segundo lugar están las etiquetas creadas por reglas.
En último lugar están las etiquetas generadas automáticamente.
Estas reglas de precedencia te dan el máximo control sobre las etiquetas.
3. Etiquetas como condiciones en reglas
3.1. Condiciones en reglas
Una función importante de las etiquetas es la misma que para las características del host: a saber, su uso como condición en las reglas. Esto es especialmente útil para las etiquetas generadas automáticamente, porque 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 de la forma habitual key:value
. Presta atención a la ortografía exacta aquí, incluidas las mayúsculas. Como las etiquetas pueden definirse sin especificaciones, Checkmk no puede reconocer los errores tipográficos. No obstante: Cuando escribes una etiqueta, Checkmk sugiere etiquetas existentes si coinciden con lo que has introducido anteriormente. En las sugerencias no se distingue entre host y etiquetas de servicio: se ofrecen todas las etiquetas que coincidan. Presta atención a la ortografía correcta, ya que las faltas de ortografía, las mayúsculas incorrectas, 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.
![]() |
Los operadores se procesan exactamente en este orden de prioridad - |
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í:

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 facilita la lectura de la condición, ahora más compleja, pero no cambia la evaluación del álgebra booleana:

![]() |
Si no has definido ni Host tags ni Host labels, la regla en cuestión se aplica siempre a todos los host 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 utilizar tanto etiquetas como tags del host en una regla. Éstas se vinculan automáticamente mediante AND. Por tanto, la regla sólo se aplica si se cumplen ambas condiciones a la vez.
3.2. Condiciones en las reglas de notificación
También puedes utilizar etiquetas como condiciones en las reglas de notificación. La carga es la misma que en otras condiciones, por lo que no necesitas reeducarte para utilizarlas. Selecciona Match host labels e introduce simplemente qué etiquetas debe tener un host o un servicio, para activar así una notificación mediante esta regla. De nuevo, las etiquetas múltiples se conectan mediante la operación Y.
4. Etiquetas en las vistas
Hasta ahora sólo hemos hablado de las etiquetas en el entorno de configuración (o abreviado: la Configuración). Las etiquetas también son visibles en el entorno de monitorización: en la vista de estado de un host, por ejemplo:

Aquí puedes ver las etiquetas en diferentes colores dependiendo de cómo se crearon: etiquetas explícitas en violeta, etiquetas creadas por reglas en rojo y etiquetas creadas por un check de descubrimiento en amarillo-ocre.
El resaltado en color de las etiquetas no sólo destaca visualmente en la vista de tabla, sino que también es práctico porque se puede hacer clic sobre ellas, lo que te lleva a una búsqueda de todos los host con esta etiqueta:

Aquí puedes buscar hosts con esta etiqueta (utilizando la opción por defecto is) o sin esta etiqueta (utilizando la opción is not).
También puedes utilizar los operadores booleanos Not
, And
y Or
en la búsqueda de etiquetas, como se describe en Condiciones en 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:

Puedes refinar aún más este filtro, por ejemplo, para encontrar además hosts Windows que sean a la vez "sin cabeza" (con or), y 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 facilita la lectura del filtro, ahora más complejo, pero no cambia la evaluación del álgebra booleana:

![]() |
Si te interesa saber qué sustitución de corchetes genera Checkmk a partir de los filtros de etiquetas introducidos, puedes hacer que se muestre la consulta Livestatus asociada. Para ello, activa Setup > General > Global settings > Debug Livestatus queries. |
Por supuesto, en la barra de filtros 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, similares a las etiquetas de host, pero con algunas pequeñas diferencias:
No puedes definir etiquetas de servicio explícitamente, sólo pueden crearse mediante reglas (Service labels), o automáticamente.
También puedes formular condiciones con etiquetas de servicio. En un conjunto de reglas, las etiquetas de servicio sólo se ofrecen como entrada si la regla puede coincidir con un servicio.
6. Etiquetas del agente
Checkmk Cloud y Checkmk MSP incluyen la opción de crear hosts automáticamente. Para ello, se automatiza toda la cadena de registro del agente, creación del host, descubrimiento de servicios y activación de cambios. La creación del host tiene lugar tras el registro.
Esta automatización crea algunos retos para la estructuración de los hosts recién creados. Hasta ahora, el sistema operativo (almacenado en la etiqueta del host cmk/os_family
) sólo podía determinarse a partir de la salida del agente. Sin embargo, para obtenerlo, el host ya debe haber sido creado.
Por este motivo, se introdujo el concepto de etiquetas del agente volátiles. Estas etiquetas se envían durante un registro y, por tanto, están disponibles antes de que se cree el primer agente. Durante el registro, puedes utilizar las etiquetas del agente para determinar si realmente se debe crear un host en la monitorización y, en caso afirmativo, influir en la carpeta del host, así como en otros atributos del host. Una vez finalizado el registro, ya no se puede acceder a las etiquetas del agente.
Durante un registro siempre se transfieren dos etiquetas del agente predefinidas:
cmk/os-family
contiene la familia del sistema operativo (actualmenteWindows
oLinux
).cmk/hostname-simple
contiene el nombre del ordenador de forma abreviada (es decir, sin la parte del dominio)
Puedes asignar libremente etiquetas del agente adicionales y personalizadas, por ejemplo:organizational/department:documentation
.
A los hosts registrados automáticamente se les asigna la etiqueta del host cmk/agent_auto_registered:yes
. No se admite la asignación directa de etiquetas del host como resultado de etiquetas específicas del agente. Sin embargo, tienes la alternativa de registrar hosts en una carpeta (temporal) y luego asignar etiquetas del host para todos los hosts de esa carpeta.
7. Información adicional
7.1. Etiquetas host generadas automáticamente
Clave | Valores |
---|---|
|
|
|
|
|
Nombre de la cuenta de AWS a la que pertenece el host |
|
Tags de los objetos AWS |
|
Grupo de recursos al que pertenece el objeto Azure |
|
Etiquetas de objetos Azure |
|
|
|
|
|
Nombre del dispositivo SNMP transmitido, por ejemplo |
|
Imagen Docker, por ejemplo |
|
Nombre de la imagen Docker, por ejemplo |
|
Versión de la imagen Docker, por ejemplo |
|
|
|
Estas etiquetas se emiten para cualquier etiqueta Kubernetes que sea una anotación Kubernetes válida (configurable mediante la regla Kubernetes ). |
|
|
|
nombre del clúster Kubernetes |
|
nombre del host de clúster Kubernetes |
|
Cronjob de Kubernetes |
|
Nombre del DaemonSet |
|
Nombre del despliegue |
|
Nombre del namespace de Kubernetes asociado |
|
Nombre del nodo Kubernetes asociado. Los host Checkmk de tipo Pod o Nodo obtienen esta label. |
|
Tipo de objeto Kubernetes, por ejemplo |
|
Nombre del StatefulSet |
|
|
|
Tipo de dispositivo Meraki, por ejemplo |
|
ID de red al que pertenece el dispositivo Meraki |
|
ID de organización a la que pertenece el dispositivo Meraki |
|
Nombre de la organización a la que pertenece el dispositivo Meraki |
|
|
|
Sistema operativo, informado por el agente como |
|
Tipo de sistema operativo, informado por el agente como |
|
Nombre del sistema operativo, informado por el agente como |
|
Plataforma del sistema operativo, informada por el agente como |
|
Versión del sistema operativo, informada por el agente como |
|
|
|
|