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, insbesondere zum Markieren von Ereignissen. Wenn Entitäten mit Tags versehen sind, übernimmt jedes neue Ereignis, das sich auf eine getaggte Entität bezieht, deren Tags. Zum Beispiel:

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

Ein Problemereignis übernimmt 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 den 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 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 wie folgt:

  1. Auslöserereignisse markieren:

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

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

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

    • Definieren Sie ein Datenpunkt-Tag (zum Beispiel component:cpu).
    • In MonitoringNeueste 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 MonitoringProbleme haben 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 Generierung von PROBLEM-Ereignissen auf "Multiple";
      • setzen Sie OK event closes auf "All problems if tag values match";
      • legen Sie das Tag für die Übereinstimmung fest.
    • Von dem Log-Datenpunkt-Auslöser erzeugte Probleme haben 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 Verwendung von Vorlagen-Tags vereinfachen:

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

    • Definieren Sie ein Auslöserprototyp-Tag mit einem LLD-Makro im Tag-Namen oder -Wert (zum Beispiel scope:{#FSNAME}).
    • Aus dem Auslöserprototyp erstellte Auslöser haben 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 einer 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:

Makrounterstützung

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

Makros der Low-Level-Discovery werden während des Discovery-Prozesses aufgelöst.

Die folgenden Makros können in Trigger-Tag-Namen und -Werten verwendet werden:

  • {ITEM.VALUE}, {ITEM.LASTVALUE}, {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} und {HOST.ID} Built-in-Makros
  • {INVENTORY.*} Built-in-Makros (zum Referenzieren von Host-Inventarwerten von einem oder mehreren Hosts in einem Trigger-Ausdruck)
  • Benutzermakros und Benutzermakros mit Kontext (der Kontext kann Makros der Low-Level-Discovery enthalten)
  • Makros der Low-Level-Discovery (nur in Trigger-Prototyp-Tags)

Die folgenden Makros können in Tag-Namen und -Werten von Vorlage, Host und item/web-Szenarien verwendet werden:

  • {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} und {HOST.ID} Built-in-Makros
  • {INVENTORY.*} Built-in-Makros
  • Benutzermakros
  • Makros der Low-Level-Discovery (nur in Host- und item-Prototyp-Tags)

Die folgenden Makros können in triggerbasierten Benachrichtigungen verwendet werden:

  • {EVENT.TAGS} und {EVENT.RECOVERY.TAGS} Built-in-Makros (diese Makros werden in eine durch Kommas getrennte Liste von Ereignis-Tags oder Wiederherstellungs-Ereignis-Tags aufgelöst)
  • {EVENT.TAGSJSON} und {EVENT.RECOVERY.TAGSJSON} Built-in-Makros (diese Makros werden in ein JSON-Array aufgelöst, das Ereignis-Tag-Objekte oder Wiederherstellungs-Ereignis-Tag-Objekte 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 Makroauflösung 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 es mehr Tags gibt, werden beim Überfahren der drei Punkte alle Tags in einem Popup-Fenster angezeigt.