6 Etiquetado

Descripción general

Las etiquetas consisten en un nombre de etiqueta y un valor de etiqueta. Al etiquetar entidades, puede usar solo el nombre o emparejarlo con un valor (por ejemplo, mysql, jira, target:mysql, service:jira, etc.).

Las etiquetas se pueden definir para varias entidades:

  • Templates
  • Hosts
  • Items
  • Escenarios web
  • Triggers
  • Servicios
  • Items y triggers de template
  • Prototipos de host, item y trigger

En las listas de Templates, Hosts, Items, Triggers, Escenarios web y sus prototipos, la columna Tags muestra tanto las etiquetas normales como las heredadas. Al pasar el cursor o hacer clic en una etiqueta heredada, aparece una ventana emergente de JavaScript con el texto "Etiqueta heredada". Si una etiqueta heredada también existe como etiqueta normal, se muestra un texto de información sobre herramientas diferente según la lista en la que aparece (por ejemplo, "Etiqueta heredada y de template" en la lista de templates o "Etiqueta heredada y de host" en la lista de hosts). En otros lugares del frontend, las etiquetas normales y heredadas se muestran juntas (los duplicados se eliminan), sin iconos y sin texto adicional en la información sobre herramientas.

Consulte las directrices oficiales de Zabbix para obtener recomendaciones generales sobre la definición de etiquetas, junto con orientación específica para templates, items, triggers y reglas de descubrimiento de bajo nivel.

Las etiquetas tienen múltiples propósitos, sobre todo, marcar eventos. Cuando las entidades están etiquetadas, cualquier nuevo evento relacionado con una entidad etiquetada heredará sus etiquetas. Por ejemplo:

  • con templates etiquetados: cualquier problema de host (creado por triggers del template) heredará las etiquetas del template.
  • con hosts etiquetados: cualquier problema de host heredará las etiquetas del host.
  • con items/escenarios web etiquetados: cualquier problema de item/escenario web heredará las etiquetas del item/escenario web.
  • con triggers etiquetados: cualquier problema creado por el trigger heredará las etiquetas del trigger.

Un evento de problema hereda todas las etiquetas de toda la cadena de entidades: templates, hosts, items/escenarios web, triggers. Las combinaciones idénticas de etiqueta:valor (después de resolver macros) se fusionan en una sola, evitando así la duplicación.

Los eventos de recuperación generados por un cierre manual también incluyen las etiquetas de evento resueltas heredadas de templates, hosts, items/escenarios web y triggers. Estas etiquetas están disponibles en las notificaciones y a través de macros como {EVENT.RECOVERY.TAGS} y {EVENT.RECOVERY.TAGSJSON}.

Las etiquetas de eventos personalizadas ofrecen más flexibilidad. Por ejemplo:

  • la correlación de eventos se puede configurar en función de las etiquetas de eventos.
  • las condiciones de acción se pueden configurar en función de las etiquetas de eventos.
  • los problemas de item se pueden agrupar en función de las etiquetas de eventos.
  • las etiquetas de problema se pueden utilizar para asignar problemas a servicios.

Las entidades pueden estar etiquetadas con el mismo nombre de etiqueta pero con diferentes valores de etiqueta (por ejemplo, component:memory y component:storage). De manera similar, una entidad puede tener una etiqueta sin valor y la misma etiqueta con un valor (por ejemplo, database y database:postgresql). Tales etiquetas no se consideran duplicadas.

Casos de uso

Algunos casos de uso comunes para el etiquetado son los siguientes:

  1. Marcar eventos de trigger:

    • Defina una etiqueta de trigger (por ejemplo, scope:performance).
    • Los problemas creados por este trigger tendrán la etiqueta del trigger.
  2. Marcar problemas heredados de template:

    • Defina una etiqueta de template (por ejemplo, target:mysql).
    • Los problemas creados por triggers de este template tendrán la etiqueta del template.
  3. Marcar problemas de host:

    • Defina una etiqueta de host (por ejemplo, service:jira).
    • Los problemas creados por triggers de este host tendrán la etiqueta del host.
  4. Filtrar items relacionados:

    • Defina una etiqueta de item (por ejemplo, component:cpu).
    • En Monitoring > Latest data, los items se pueden filtrar por la etiqueta component:cpu.
  5. Usar información extraída del valor del item como valor de la etiqueta:

    • Defina una etiqueta con una macro como valor de la etiqueta (por ejemplo, tag-name:{{ITEM.VALUE<N>}.regsub()} ).
    • En Monitoring > Problems, los problemas tendrán el valor de la etiqueta resuelto a partir de los datos extraídos del valor del item.
  6. Identificar problemas en un archivo de registro y cerrarlos por separado:

    • Defina una etiqueta de trigger para el trigger del item de monitoreo de registros que extraerá valores del valor del item usando una macro (por ejemplo, service:{{ITEM.VALUE<N>}.regsub()} ).
    • En la configuración del trigger, configure la correlación de eventos:
      • establezca PROBLEM event generation mode en "Multiple";
      • establezca OK event closes en "All problems if tag values match";
      • establezca la etiqueta para la coincidencia.
    • Los problemas creados por el trigger del item de registro tendrán la etiqueta del trigger y se cerrarán individualmente.
  7. Filtrar notificaciones:

    • Defina etiquetas de trigger (por ejemplo, scope:security para trigger1 y scope:availability para trigger2).
    • Use el filtrado por etiquetas en las condiciones de acción para recibir notificaciones solo sobre los eventos que coincidan con los datos de la etiqueta.
  8. Identificar problemas en las notificaciones:

    • Defina etiquetas de trigger.
    • Use la macro {EVENT.TAGS} en la notificación de problema.
    • La notificación de problema contendrá las etiquetas del trigger, lo que facilitará identificar a qué aplicación/servicio pertenece la notificación.
  9. Simplificar tareas de configuración usando etiquetas de template:

    • Defina una etiqueta de trigger de template.
    • Los triggers creados a partir de este trigger de template tendrán su etiqueta.
  10. Crear triggers con etiquetas a partir de low-level discovery (LLD):

    • Defina una etiqueta de prototipo de trigger con una macro LLD en el nombre o valor de la etiqueta (por ejemplo, scope:{#FSNAME}).
    • Los triggers creados a partir del prototipo de trigger tendrán su etiqueta.
  11. Coincidir servicios usando etiquetas de servicio:

  12. Vincular servicios a problemas usando etiquetas de problema de servicio:

    • Defina una etiqueta de problema en la configuración del servicio (por ejemplo, target:mysql).
    • Los problemas con una etiqueta coincidente se correlacionarán automáticamente con el servicio, y el estado del servicio cambiará según las reglas de cálculo del estado del servicio configuradas.
  13. Suprimir problemas cuando un host está en modo de mantenimiento:

  14. Conceder acceso a grupos de usuarios:

Configuración

Las etiquetas pueden definirse en una pestaña dedicada, por ejemplo, en la configuración de disparadores:

Soporte de macros

Las macros incorporadas y macros de usuario en las etiquetas se resuelven en el momento del evento. Hasta que el evento haya ocurrido, estas macros se mostrarán sin resolver en el frontend de Zabbix.

Las macros de bajo nivel de descubrimiento se resuelven durante el proceso de descubrimiento.

Las siguientes macros pueden usarse en los nombres y valores de las etiquetas de trigger:

  • {ITEM.VALUE}, {ITEM.VALUE.AGE}, {ITEM.VALUE.DATE}, {ITEM.VALUE.TIME}, {ITEM.VALUE.TIMESTAMP}, {ITEM.LASTVALUE}, {ITEM.LASTVALUE.AGE}, {ITEM.LASTVALUE.DATE}, {ITEM.LASTVALUE.TIME}, {ITEM.LASTVALUE.TIMESTAMP}, {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} y {HOST.ID} macros incorporadas
  • {INVENTORY.*} macros incorporadas (para hacer referencia a valores de inventario de host de uno o varios hosts en una expresión de trigger)
  • Macros de usuario y macros de usuario con contexto (el contexto puede incluir macros de bajo nivel de descubrimiento)
  • Macros de bajo nivel de descubrimiento (solo en etiquetas de prototipo de trigger)

Las siguientes macros pueden usarse en los nombres y valores de etiquetas de template, host y item/escenario web:

  • {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} y {HOST.ID} macros incorporadas
  • {INVENTORY.*} macros incorporadas
  • Macros de usuario
  • Macros de bajo nivel de descubrimiento (solo en etiquetas de prototipo de host e item)

Las siguientes macros pueden usarse en notificaciones basadas en trigger:

  • {EVENT.TAGS} y {EVENT.RECOVERY.TAGS} macros incorporadas (estas macros se resolverán en una lista separada por comas de etiquetas de evento o etiquetas de evento de recuperación)
  • {EVENT.TAGSJSON} y {EVENT.RECOVERY.TAGSJSON} macros incorporadas (estas macros se resolverán en un array JSON que contiene objetos de etiquetas de evento o de recuperación)
Extracción de subcadenas en etiquetas de trigger

Se admite la extracción de subcadenas para rellenar el nombre o el valor de la etiqueta, utilizando una función de macro. La función aplica una expresión regular al valor obtenido por la macro compatible. Por ejemplo:

{{ITEM.VALUE}.regsub(pattern, output)}
{{ITEM.VALUE}.iregsub(pattern, output)}

{{#LLDMACRO}.regsub(pattern, output)}
{{#LLDMACRO}.iregsub(pattern, output)}

Si el nombre o el valor de la etiqueta supera los 255 caracteres después de la resolución de macros, se truncará a 255 caracteres.

Véase también: Uso de funciones de macro en macros de descubrimiento de bajo nivel para el etiquetado de eventos.

Visualización de etiquetas de eventos

Las etiquetas, si se definen, pueden verse con los nuevos eventos en:

El orden y el número de etiquetas mostradas se determina mediante las opciones de filtrado Prioridad de visualización de etiquetas y Mostrar etiquetas en Monitorización > Problemas o en el widget de problemas del cuadro de mando. Tenga en cuenta que se puede mostrar un máximo de tres etiquetas; si hay más etiquetas, al pasar el ratón por encima de los tres puntos se muestran todas las etiquetas en una ventana emergente.