6 Etiquetado

Resumen

Las etiquetas constan de un nombre de etiqueta y un valor de etiqueta. Al etiquetar entidades, puede usar solo el nombre o combinarlo 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

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, especialmente para marcar eventos. Cuando se etiquetan entidades, cualquier evento nuevo relacionado con una entidad etiquetada heredará sus etiquetas. Por ejemplo:

  • con templates etiquetados, cualquier problema del host (creado por triggers del template) heredará las etiquetas del template;
  • con hosts etiquetados, cualquier problema del host heredará las etiquetas del host;
  • con items/escenarios web etiquetados, cualquier problema del 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 tag:value (después de resolver macros) se fusionan en una sola, evitando así la duplicación.

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

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

Las entidades pueden etiquetarse con el mismo nombre de etiqueta pero con distintos valores de etiqueta (por ejemplo, component:memory y component:storage). Del mismo modo, una entidad puede tener una etiqueta sin valor y la misma etiqueta con un valor (por ejemplo, database y database:postgresql). Estas 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 MonitoringLatest 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 MonitoringProblems, 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 log y cerrarlos por separado:

    • Defina una etiqueta de trigger para el trigger del item de monitorización de log que extraerá valores del valor del item usando una macro (por ejemplo, service:{{ITEM.VALUE<N>}.regsub()} ).
    • En la configuración del trigger, configure 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 log 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 desde 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. Hacer 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, mediante 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 la macro, 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 evento

Las etiquetas, si están definidas, se pueden ver con los eventos nuevos en:

El orden y el número de etiquetas mostradas se determinan mediante las opciones de filtrado Tag display priority y Show tags en MonitoringProblems o en el widget de dashboard Problems. Tenga en cuenta que se puede mostrar un máximo de tres etiquetas; si hay más etiquetas, al pasar el cursor sobre los tres puntos se muestran todas las etiquetas en una ventana emergente.