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:
-
Trigger-Ereignisse markieren:
- Definieren Sie ein Trigger-Tag (zum Beispiel
scope:performance). - Von diesem Trigger erzeugte Probleme enthalten das Trigger-Tag.
- Definieren Sie ein Trigger-Tag (zum Beispiel
-
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.
- Definieren Sie ein Vorlagen-Tag (zum Beispiel
-
Host-Probleme markieren:
- Definieren Sie ein Host-Tag (zum Beispiel
service:jira). - Von Triggern dieses Hosts erzeugte Probleme enthalten das Host-Tag.
- Definieren Sie ein Host-Tag (zum Beispiel
-
Zugehörige Datenpunkte filtern:
- Definieren Sie ein Datenpunkt-Tag (zum Beispiel
component:cpu). - In Monitoring → Latest data können Datenpunkte nach dem Tag
component:cpugefiltert werden.
- Definieren Sie ein Datenpunkt-Tag (zum Beispiel
-
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 Monitoring → Problems enthalten Probleme den Tag-Wert, der auf die aus dem Datenpunktwert extrahierten Daten aufgelöst wird.
- Definieren Sie ein Tag mit einem Makro als Tag-Wert (zum Beispiel
-
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.
- Definieren Sie ein Trigger-Tag für den Log-Monitoring-Datenpunkt-Trigger, das mithilfe eines Makros Werte aus dem Datenpunktwert extrahiert (zum Beispiel
-
Benachrichtigungen filtern:
- Definieren Sie Trigger-Tags (zum Beispiel
scope:securityfür trigger1 undscope:availabilityfür trigger2). - Verwenden Sie Tag-Filterung in Aktion-Bedingungen, um Benachrichtigungen nur für Ereignisse zu erhalten, die mit den Tag-Daten übereinstimmen.
- Definieren Sie Trigger-Tags (zum Beispiel
-
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.
-
Konfigurationsaufgaben durch Vorlagen-Tags vereinfachen:
- Definieren Sie ein Vorlagen-Trigger-Tag.
- Trigger, die aus diesem Vorlagen-Trigger erstellt werden, enthalten dessen Tag.
-
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.
- Definieren Sie ein Trigger-Prototyp-Tag mit einem LLD-Makro im Tag-Namen oder -Wert (zum Beispiel
-
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.
-
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.
- Definieren Sie ein Problem-Tag in der Dienstkonfiguration (zum Beispiel
-
Probleme unterdrücken, wenn sich ein Host im Wartungsmodus befindet:
- Definieren Sie Tags in der Konfiguration des Wartungszeitraums.
- Probleme mit den definierten Tags werden unterdrückt.
-
Zugriff für Benutzergruppen gewähren:
- Definieren Sie Tags in der Konfiguration der Benutzergruppe.
- Benutzer in der Benutzergruppe können nur Probleme mit den definierten Tags anzeigen.
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:
- Monitoring → Probleme
- Monitoring → Probleme → Ereignisdetails
- Dashboards → Probleme widget
Die Reihenfolge und Anzahl der angezeigten Tags wird durch die Filteroptionen Tag-Anzeigepriorität und Tags anzeigen in Monitoring → Probleme 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.
