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

In den Listen Vorlagen, Hosts, Datenpunkte, Auslöser, Webszenarien und deren Prototypen zeigt die Spalte Tags sowohl reguläre als auch geerbte Tags an. Wenn Sie mit der Maus über ein geerbtes Tag fahren oder darauf klicken, erscheint ein JavaScript-Tooltip mit dem Text „Inherited tag“. Wenn ein geerbtes Tag auch als reguläres Tag vorhanden ist, wird je nach Liste, in der es erscheint, ein anderer Tooltip-Text angezeigt (zum Beispiel „Inherited and template tag“ in der Liste Vorlagen oder „Inherited and host tag“ in der Liste Hosts). An anderen Stellen im Frontend werden reguläre und geerbte Tags zusammen angezeigt (Duplikate werden entfernt), ohne Symbole und ohne zusätzlichen Tooltip-Text.

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

Tags haben mehrere Zwecke, insbesondere die Kennzeichnung 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 erbt jedes Host-Problem (erstellt durch Auslöser aus der Vorlage) die Tags der Vorlage.
  • bei getaggten Hosts erbt jedes Host-Problem die Tags des Hosts.
  • bei getaggten Datenpunkten/Webszenarien erbt jedes Datenpunkt-/Webszenario-Problem die Tags des Datenpunkts/Webszenarios.
  • bei getaggten Auslösern erbt jedes durch den Auslöser erzeugte Problem die Tags des Auslösers.

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 einzigen zusammengeführt, wodurch Duplikate vermieden werden.

Wiederherstellungsereignisse, die durch ein manuelles Schließen erzeugt werden, enthalten ebenfalls die aufgelösten Ereignis-Tags, die von Vorlagen, Hosts, Datenpunkten/Webszenarien und Auslösern geerbt wurden. Diese Tags sind in Benachrichtigungen und über Makros wie {EVENT.RECOVERY.TAGS} und {EVENT.RECOVERY.TAGSJSON} verfügbar.

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

  • die Ereigniskorrelation kann auf Basis von Ereignis-Tags konfiguriert werden.
  • Aktionsbedingungen können auf Basis von Ereignis-Tags konfiguriert werden.
  • Datenpunkt-Probleme 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 werden (zum Beispiel component:memory und component:storage). Ebenso kann eine Entität ein Tag ohne Wert und dasselbe 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 wie folgt:

  1. Auslöserereignisse markieren:

    • Definieren Sie ein Auslöser-Tag (zum Beispiel scope:performance).
    • Von diesem Auslöser erzeugte Probleme erhalten das Auslöser-Tag.
  2. Von Vorlagen geerbte Probleme markieren:

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

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

    • Definieren Sie ein Datenpunkt-Tag (zum Beispiel component:cpu).
    • In Monitoring > Neueste Daten 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 Monitoring > Probleme 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 Auslöser-Tag für den Log-Monitoring-Datenpunkt-Auslöser, das mithilfe eines Makros Werte aus dem Datenpunktwert extrahiert (zum Beispiel service:{{ITEM.VALUE<N>}.regsub()} ).
    • In der Auslöserkonfiguration richten Sie Ereigniskorrelation ein:
      • setzen Sie den Modus zur PROBLEM-Ereigniserzeugung auf "Multiple";
      • setzen Sie OK event closes auf "All problems if tag values match";
      • setzen Sie das Tag für die Übereinstimmung.
    • Von dem Log-Datenpunkt-Auslöser erzeugte Probleme erhalten das Auslöser-Tag und werden einzeln geschlossen.
  7. Benachrichtigungen filtern:

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

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

    • Definieren Sie ein Vorlagen-Auslöser-Tag.
    • Aus diesem Vorlagen-Auslöser erstellte Auslöser erhalten dessen Tag.
  10. Auslöser mit Tags aus der Low-Level-Discovery (LLD) erstellen:

    • Definieren Sie ein Tag des Auslöserprototyps mit einem LLD-Makro im Tag-Namen oder -Wert (zum Beispiel scope:{#FSNAME}).
    • Aus dem Auslöserprototyp erstellte Auslöser erhalten dessen Tag.
  11. Services mithilfe von Service-Tags zuordnen:

    • Definieren Sie Service-Tags.
    • Konfigurieren Sie Service-Aktionen für Services mit übereinstimmenden Tags.
    • Verwenden Sie außerdem Service-Tags, um einen Service für SLA-Berechnungen mit einem SLA zu verknüpfen.
  12. Services mithilfe von Service-Problem-Tags mit Problemen verknüpfen:

    • Definieren Sie ein Problem-Tag in der Servicekonfiguration (zum Beispiel target:mysql).
    • Probleme mit einem übereinstimmenden Tag werden automatisch dem Service zugeordnet, und der Servicestatus ändert sich basierend auf den konfigurierten Regeln zur Berechnung des Servicestatus.
  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 Teilzeichenfolgenextraktion wird zum Befüllen des Tag-Namens oder Tag-Werts mithilfe einer Makro-Funktion unterstützt. Die Funktion wendet einen regulären Ausdruck auf den Wert an, der durch das unterstützte Makro erhalten 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 Makroauflösung 255 Zeichen überschreitet, wird er auf 255 Zeichen gekürzt.

Siehe auch: Verwendung von Makrofunktionen in Low-Level-Discovery-Makros für Event-Tagging.

Anzeigen von Ereignis-Tags

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

Die Reihenfolge und Anzahl der angezeigten Tags wird durch die Filteroptionen Tag-Anzeigepriorität und Tags anzeigen in Monitoring > Probleme oder im Dashboard-Widget Probleme 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 Pop-up-Fenster angezeigt.