6 Etiquetado

Descripción general

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:

  • Plantillas
  • Equipos
  • Métricas
  • Escenarios web
  • Iniciadores
  • Servicios
  • Plantillas de métricas e iniciadores
  • Prototipos de equipo, métrica e iniciador

Consulte las pautas oficiales de Zabbix para obtener recomendaciones generales sobre la definición de etiquetas, junto con una guía específica para plantillas, métricas, iniciadores y reglas de descubrimiento de bajo nivel.

Las etiquetas tienen múltiples propósitos, principalmente, marcar eventos. Cuando se etiquetan entidades, cualquier evento nuevo relacionado con una entidad etiquetada heredará sus etiquetas. Por ejemplo:

  • con plantillas etiquetadas - cualquier problema de equipo (creado por iniciadores de la plantilla) heredará las etiquetas de la plantilla;
  • con equipos etiquetados - cualquier problema de equipo heredará las etiquetas de equipo;
  • con métricas/escenarios web etiquetados: cualquier problema de métrica/escenario web heredará las etiquetas de métrica/escenario web;
  • con iniciadores etiquetados: cualquier problema creado por el iniciador heredará las etiquetas del iniciador.

Un evento de problema hereda todas las etiquetas de toda la cadena de entidades: plantillas, equipos, métricas/escenarios web, iniciadores. Las combinaciones idénticas de etiqueta:valor (después de las macros resueltas) se fusionan en una, evitando así la duplicación.

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

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

Las entidades pueden tener el mismo nombre de etiqueta pero diferentes valores de etiqueta (por ejemplo, component:memory y component:storage). De manera similar, una entidad puede tener una etiqueta sin un valor y la misma etiqueta con un valor (por ejemplo, database y database:postgresql). Dichas 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 registro y cerrarlos por separado:

    • Defina una etiqueta de trigger para el trigger del item de monitoreo de logs 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 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 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. 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 se pueden definir en una pestaña dedicada, por ejemplo, en la configuración de iniciadores:

Soporte de macros

Las macros incorporadas y macros de usuario en las etiquetas se resuelven en el momento del evento. Hasta que ocurra el evento, 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.LASTVALUE}, {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 u objetos de etiquetas de evento 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 están definidas, se pueden visualizar con nuevos eventos en:

El orden y la cantidad de etiquetas mostradas se determina mediante las opciones de filtrado Prioridad de visualización de etiquetas y Mostrar etiquetas en MonitoreoProblemas o en el widget de tablero Problemas. 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.