6 Tagging

Übersicht

Tags bestehen aus einem Tag-Namen und einem Tag-Wert. Beim Taggen von Entitäten können Sie nur den Namen verwenden oder ihn mit einem Wert kombinieren (zum Beispiel mysql, jira, target:mysql, service:jira usw.).

Tags können für verschiedene Entitäten definiert werden:

  • Vorlagen
  • Hosts
  • Datenpunkte
  • Webszenarien
  • Auslöser
  • Services
  • Vorlagen-Datenpunkte und -Auslöser
  • Host-, Datenpunkt- und Auslöser-Prototypen

Beachten Sie die offiziellen Zabbix-Richtlinien für allgemeine Empfehlungen zur Definition von Tags sowie die spezifischen Hinweise für Vorlagen, Datenpunkte, Auslöser und Low-Level-Discovery-Regeln.

Tags haben mehrere Zwecke, vor allem zum Markieren von Ereignissen. Wenn Entitäten mit Tags versehen sind, erbt jedes neue Ereignis, das mit einer getaggten Entität zusammenhängt, deren Tags. Zum Beispiel:

  • bei getaggten Vorlagen - jedes Host-Problem (das durch Auslöser aus der Vorlage erstellt wurde) erbt die Vorlagen-Tags;
  • bei getaggten Hosts - jedes Host-Problem erbt die Host-Tags;
  • bei getaggten Datenpunkten/Webszenarien - jedes Datenpunkt-/Webszenario-Problem erbt die Datenpunkt-/Webszenario-Tags;
  • bei getaggten Auslösern - jedes durch den Auslöser erstellte Problem erbt die Auslöser-Tags.

Ein Problemereignis erbt alle Tags aus der gesamten Kette von Entitäten - Vorlagen, Hosts, Datenpunkte/Webszenarien, Auslöser. Identische tag:value-Kombinationen (nach Auflösung von Makros) werden zu einer zusammengeführt, wodurch Duplikate vermieden werden.

Benutzerdefinierte Ereignis-Tags bieten mehr Flexibilität. Zum Beispiel:

  • Ereigniskorrelation kann auf Basis von Ereignis-Tags konfiguriert werden;
  • Aktionsbedingungen können auf Basis von Ereignis-Tags konfiguriert werden;
  • Datenpunktprobleme können auf Basis von Ereignis-Tags gruppiert werden;
  • Problem-Tags können verwendet werden, um Probleme Services zuzuordnen.

Entitäten können mit demselben Tag-Namen, aber unterschiedlichen Tag-Werten versehen sein (zum Beispiel component:memory und component:storage). Ebenso kann eine Entität einen Tag ohne Wert und denselben Tag mit einem Wert haben (zum Beispiel database und database:postgresql). Solche Tags gelten nicht als Duplikate.

Anwendungsfälle

Einige häufige Anwendungsfälle für Tagging sind:

  1. Trigger-Ereignisse markieren:

    • Definieren Sie ein Trigger-Tag (zum Beispiel scope:performance).
    • Von diesem Trigger erzeugte Probleme enthalten das Trigger-Tag.
  2. Von der Vorlage geerbte Probleme markieren:

    • Definieren Sie ein Vorlagen-Tag (zum Beispiel target:mysql).
    • Von Triggern aus dieser Vorlage erzeugte Probleme enthalten das Vorlagen-Tag.
  3. Host-Probleme markieren:

    • Definieren Sie ein Host-Tag (zum Beispiel service:jira).
    • Von Triggern dieses Hosts erzeugte Probleme enthalten das Host-Tag.
  4. Zugehörige Datenpunkte filtern:

    • Definieren Sie ein Datenpunkt-Tag (zum Beispiel component:cpu).
    • In MonitoringLatest data können Datenpunkte nach dem Tag component:cpu gefiltert werden.
  5. Aus dem Datenpunktwert extrahierte Informationen als Tag-Wert verwenden:

    • Definieren Sie ein Tag mit einem Makro als Tag-Wert (zum Beispiel tag-name:{{ITEM.VALUE<N>}.regsub()} ).
    • In MonitoringProblems enthalten Probleme den Tag-Wert, der auf die aus dem Datenpunktwert extrahierten Daten aufgelöst wird.
  6. Probleme in einer Protokolldatei identifizieren und separat schließen:

    • Definieren Sie ein Trigger-Tag für den Log-Monitoring-Datenpunkt-Trigger, das mithilfe eines Makros Werte aus dem Datenpunktwert extrahiert (zum Beispiel service:{{ITEM.VALUE<N>}.regsub()} ).
    • In der Trigger-Konfiguration richten Sie Ereigniskorrelation ein:
      • setzen Sie den Modus für die PROBLEM-Ereigniserzeugung auf "Multiple";
      • setzen Sie OK event closes auf "All problems if tag values match";
      • legen Sie das Tag für den Abgleich fest.
    • Von dem Log-Datenpunkt-Trigger erzeugte Probleme enthalten das Trigger-Tag und werden einzeln geschlossen.
  7. Benachrichtigungen filtern:

    • Definieren Sie Trigger-Tags (zum Beispiel scope:security für trigger1 und scope:availability für trigger2).
    • Verwenden Sie Tag-Filterung in Aktion-Bedingungen, um Benachrichtigungen nur für Ereignisse zu erhalten, die mit den Tag-Daten übereinstimmen.
  8. Probleme in Benachrichtigungen identifizieren:

    • Definieren Sie Trigger-Tags.
    • Verwenden Sie das Makro {EVENT.TAGS} in der Problembenachrichtigung.
    • Die Problembenachrichtigung enthält die Trigger-Tags, wodurch leichter erkennbar ist, zu welcher Anwendung bzw. welchem Dienst die Benachrichtigung gehört.
  9. Konfigurationsaufgaben durch Vorlagen-Tags vereinfachen:

    • Definieren Sie ein Vorlagen-Trigger-Tag.
    • Trigger, die aus diesem Vorlagen-Trigger erstellt werden, enthalten dessen Tag.
  10. Trigger mit Tags aus Low-Level-Discovery (LLD) erstellen:

    • Definieren Sie ein Trigger-Prototyp-Tag mit einem LLD-Makro im Tag-Namen oder -Wert (zum Beispiel scope:{#FSNAME}).
    • Trigger, die aus dem Trigger-Prototyp erstellt werden, enthalten dessen Tag.
  11. Dienste mithilfe von Dienst-Tags abgleichen:

    • Definieren Sie Dienst-Tags.
    • Konfigurieren Sie Dienstaktionen für Dienste mit übereinstimmenden Tags.
    • Verwenden Sie außerdem Dienst-Tags, um einen Dienst für SLA-Berechnungen mit einer SLA zu verknüpfen.
  12. Dienste mithilfe von Dienst-Problem-Tags mit Problemen verknüpfen:

    • Definieren Sie ein Problem-Tag in der Dienstkonfiguration (zum Beispiel target:mysql).
    • Probleme mit einem passenden Tag werden automatisch dem Dienst zugeordnet, und der Dienststatus ändert sich basierend auf den konfigurierten Regeln zur Berechnung des Dienststatus.
  13. Probleme unterdrücken, wenn sich ein Host im Wartungsmodus befindet:

  14. Zugriff für Benutzergruppen gewähren:

Konfiguration

Tags können in einem eigenen Reiter definiert werden, zum Beispiel in der Auslöser-Konfiguration:

Unterstützung von Makros

Integrierte und Benutzermakros in Tags werden zum Zeitpunkt des Ereignisses aufgelöst. Bis das Ereignis eingetreten ist, werden diese Makros im Zabbix Frontend nicht aufgelöst angezeigt.

Low-level discovery-Makros werden während des Discovery-Prozesses aufgelöst.

Die folgenden Makros können in Namen und Werten von Auslöser-Tags verwendet werden:

  • integrierte Makros {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} und {HOST.ID}
  • integrierte Makros {INVENTORY.*} (zum Referenzieren von Host-Inventarwerten von einem oder mehreren Hosts in einem Auslöser-Ausdruck)
  • Benutzermakros und Benutzermakros mit Kontext (der Kontext kann Low-level discovery-Makros enthalten)
  • Low-level discovery-Makros (nur in Tags von Auslöser-Prototypen)

Die folgenden Makros können in Namen und Werten von Tags von Vorlagen, Hosts und Datenpunkten/Webszenarien verwendet werden:

  • integrierte Makros {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} und {HOST.ID}
  • integrierte Makros {INVENTORY.*}
  • Benutzermakros
  • Low-level discovery-Makros (nur in Tags von Host- und Datenpunkt-Prototypen)

Die folgenden Makros können in Auslöser-basierten Benachrichtigungen verwendet werden:

  • integrierte Makros {EVENT.TAGS} und {EVENT.RECOVERY.TAGS} (diese Makros werden zu einer durch Kommas getrennten Liste von Ereignis-Tags bzw. Tags von Wiederherstellungsereignissen aufgelöst)
  • integrierte Makros {EVENT.TAGSJSON} und {EVENT.RECOVERY.TAGSJSON} (diese Makros werden zu einem JSON-Array aufgelöst, das Ereignis-Tag-Objekte oder Objekte von Wiederherstellungsereignis-Tags enthält)
Teilzeichenfolgenextraktion in Auslöser-Tags

Die Extraktion von Teilzeichenfolgen wird unterstützt, um den Tag-Namen oder den Tag-Wert mithilfe einer Makro-Funktion zu befüllen. Die Funktion wendet einen regulären Ausdruck auf den Wert an, der vom unterstützten Makro zurückgegeben wird. Zum Beispiel:

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

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

Wenn der Tag-Name oder -Wert nach der Auflösung des Makros mehr als 255 Zeichen umfasst, wird er auf 255 Zeichen gekürzt.

Siehe auch: Verwendung von Makro-Funktionen in Low-Level-Discovery-Makros für das Tagging von Ereignissen.

Anzeigen von Ereignis-Tags

Tags, sofern definiert, können bei neuen Ereignissen angezeigt werden in:

Die Reihenfolge und Anzahl der angezeigten Tags wird durch die Filteroptionen Tag-Anzeigepriorität und Tags anzeigen in MonitoringProbleme oder im Probleme-Dashboard-Widget bestimmt. Beachten Sie, dass maximal drei Tags angezeigt werden können; wenn mehr Tags vorhanden sind, werden beim Überfahren der drei Punkte alle Tags in einem Popup-Fenster angezeigt.