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 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 las entidades están etiquetadas, 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 de 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 de 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 de 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 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 de 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 action conditions 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 de 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:

    • Defina service tags.
    • Configure service actions para servicios con etiquetas coincidentes.
    • Además, use las etiquetas de servicio para vincular un servicio a un SLA para los cálculos de SLA.
  12. Vincular servicios a problemas usando etiquetas de problema de servicio:

    • Defina una problem tag 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:

Compatibilidad con macros

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

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

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

  • {ITEM.VALUE}, {ITEM.LASTVALUE}, {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} y {HOST.ID} macros integradas
  • {INVENTORY.*} macros integradas (para hacer referencia a valores de inventario del 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 descubrimiento de bajo nivel)
  • Macros de descubrimiento de bajo nivel (solo en etiquetas de prototipos de trigger)

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

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

Las siguientes macros pueden usarse en notificaciones basadas en trigger:

  • {EVENT.TAGS} y {EVENT.RECOVERY.TAGS} macros integradas (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 integradas (estas macros se resolverán en un array JSON que contiene objetos de etiqueta de evento objects u objetos de etiqueta de evento de recuperación)
Extracción de subcadenas en tags de trigger

La extracción de subcadenas es compatible para rellenar el nombre del tag o el valor del tag, usando 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 del tag 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 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 pueden mostrar como máximo tres etiquetas; si hay más etiquetas, al pasar el cursor sobre los tres puntos se muestran todas las etiquetas en una ventana emergente.