1 Auslöser-basierte Ereigniskorrelation

Übersicht

Die Auslöser-basierte Ereigniskorrelation ermöglicht es, separate Probleme zu korrelieren, die von einem Auslöser gemeldet werden.

Während ein OK-Ereignis im Allgemeinen alle Problemereignisse schließen kann, die von einem Auslöser erstellt wurden, gibt es Fälle, in denen ein detaillierterer Ansatz erforderlich ist. Zum Beispiel möchten Sie bei der Überwachung von Protokolldateien möglicherweise bestimmte Probleme in einer Protokolldatei erkennen und diese einzeln statt alle zusammen schließen.

Dies ist bei Auslösern der Fall, deren Parameter PROBLEM event generation mode auf Multiple gesetzt ist. Solche Auslöser werden normalerweise für die Protokollüberwachung, Trap-Verarbeitung usw. verwendet.

In Zabbix ist es möglich, Problemereignisse auf Grundlage von Tags in Beziehung zu setzen. Tags werden verwendet, um Werte zu extrahieren und eine Identifikation für Problemereignisse zu erstellen. Dadurch können Probleme auch einzeln auf Grundlage eines übereinstimmenden Tags geschlossen werden.

Mit anderen Worten: Derselbe Auslöser kann separate Ereignisse erzeugen, die durch das Ereignis-Tag identifiziert werden. Daher können Problemereignisse einzeln identifiziert und separat auf Grundlage der Identifikation durch das Ereignis-Tag geschlossen werden.

Funktionsweise

Bei der Log-Überwachung können Sie auf Zeilen wie diese stoßen:

Zeile1: Dienst 1 gestoppt
Zeile2: Dienst 2 gestoppt
Zeile3: Dienst 1 wurde neu gestartet
Zeile4: Dienst 2 wurde neu gestartet

Die Idee der Ereigniskorrelation besteht darin, das Problemereignis aus Zeile1 mit der Behebung aus Zeile3 und das Problemereignis aus Zeile2 mit der Behebung aus Zeile4 abzugleichen und diese Probleme nacheinander zu schließen:

Zeile1: Dienst 1 gestoppt
Zeile3: Dienst 1 wurde neu gestartet #Problem aus Zeile 1 geschlossen

Zeile2: Dienst 2 gestoppt
Zeile4: Dienst 2 wurde neu gestartet #Problem aus Zeile 2 geschlossen

Dazu müssen Sie diese zusammengehörigen Ereignisse zum Beispiel mit „Dienst 1“ und „Dienst 2“ taggen. Das kann durch Anwenden eines regulären Ausdrucks auf die Log-Zeile erfolgen, um den Tag-Wert zu extrahieren. Wenn dann Ereignisse erstellt werden, werden sie entsprechend mit „Dienst 1“ und „Dienst 2“ getaggt, und das Problem kann mit der Behebung abgeglichen werden.

Konfiguration

Datenpunkt

Zunächst sollten Sie einen Datenpunkt einrichten, der eine Protokolldatei überwacht, zum Beispiel:

log[/var/log/syslog]

Nachdem der Datenpunkt eingerichtet wurde, warten Sie eine Minute, bis die Konfigurationsänderungen übernommen wurden, und gehen Sie dann zu Letzte Daten, um sicherzustellen, dass der Datenpunkt begonnen hat, Daten zu sammeln.

Auslöser

Wenn der Datenpunkt funktioniert, müssen Sie den Auslöser konfigurieren. Es ist wichtig zu entscheiden, welche Einträge in der Protokolldatei beachtet werden sollen. Zum Beispiel sucht der folgende Auslöserausdruck nach einer Zeichenfolge wie 'Stopping', um auf potenzielle Probleme hinzuweisen:

find(/My host/log[/var/log/syslog],,"regexp","Stopping")=1 

Um sicherzustellen, dass jede Zeile mit der Zeichenfolge "Stopping" als Problem betrachtet wird, setzen Sie auch den Modus zur Problemerzeugung von Ereignissen in der Auslöserkonfiguration auf 'Multiple'.

Definieren Sie dann einen Wiederherstellungsausdruck. Der folgende Wiederherstellungsausdruck löst alle Probleme, wenn eine Protokollzeile gefunden wird, die die Zeichenfolge "Starting" enthält:

find(/My host/log[/var/log/syslog],,"regexp","Starting")=1 

Da wir das nicht möchten, ist es wichtig, irgendwie sicherzustellen, dass die entsprechenden ursprünglichen Probleme geschlossen werden und nicht einfach alle Probleme. Hier kann die Verschlagwortung helfen.

Probleme und Lösungen können durch Angabe eines Tags in der Auslöserkonfiguration abgeglichen werden. Die folgenden Einstellungen müssen vorgenommen werden:

  • Modus zur Problemerzeugung von Ereignissen: Multiple
  • OK-Ereignis schließt: Alle Probleme, wenn Tag-Werte übereinstimmen
  • Geben Sie den Namen des Tags für den Ereignisabgleich ein

  • konfigurieren Sie die Tags, um Tag-Werte aus Protokollzeilen zu extrahieren

Bei erfolgreicher Konfiguration können Sie in MonitoringProbleme Problemereignisse sehen, die nach Anwendung getaggt und ihrer Lösung zugeordnet sind.

Da Fehlkonfigurationen möglich sind, wenn ähnliche Ereignis-Tags für nicht zusammenhängende Probleme erzeugt werden können, prüfen Sie bitte die unten beschriebenen Fälle!

  • Indizierte Makros beziehen sich immer auf das Feld Ausdruck der Auslöserkonfiguration, nicht auf den Wiederherstellungsausdruck. Zum Beispiel wird {ITEM.VALUE1} in einem Wiederherstellungsereignis zum Zeitpunkt der Wiederherstellung zum neuesten Wert des ersten Datenpunkts im Problemausdruck aufgelöst. Wenn der Wiederherstellungsausdruck auf einem anderen Datenpunkt basiert und sich der Wert des Datenpunkts aus dem Problemausdruck bis zur Wiederherstellung ändert, erhalten die Ereignisse unterschiedliche Tags und werden nicht korreliert.

  • Wenn zwei Anwendungen Fehler- und Wiederherstellungsmeldungen in dieselbe Protokolldatei schreiben, kann ein Benutzer entscheiden, zwei service-Tags im selben Auslöser mit unterschiedlichen Tag-Werten zu verwenden, indem separate reguläre Ausdrücke in den Tag-Werten verwendet werden, um die Namen von beispielsweise Service A und Service B aus dem Makro {ITEM.VALUE} zu extrahieren (z. B. wenn sich die Nachrichtenformate unterscheiden). Dies funktioniert jedoch möglicherweise nicht wie geplant, wenn es keine Übereinstimmung mit den regulären Ausdrücken gibt. Nicht übereinstimmende reguläre Ausdrücke ergeben leere Tag-Werte, und ein einzelner leerer Tag-Wert sowohl in Problem- als auch in OK-Ereignissen reicht aus, um sie zu korrelieren. So kann eine Wiederherstellungsmeldung von Service A versehentlich eine Fehlermeldung von Service B schließen.

  • Tatsächliche Tags und Tag-Werte werden erst sichtbar, wenn ein Auslöser ausgelöst wird. Wenn der verwendete reguläre Ausdruck ungültig ist, wird er stillschweigend durch die Zeichenfolge *UNKNOWN* ersetzt. Wenn das ursprüngliche Problemereignis mit einem *UNKNOWN*-Tag-Wert übersehen wird, können nachfolgende OK-Ereignisse mit demselben *UNKNOWN*-Tag-Wert erscheinen, die Problemereignisse schließen können, die sie nicht hätten schließen dürfen.

  • Wenn ein Benutzer das Makro {ITEM.VALUE} ohne Makrofunktionen als Tag-Wert verwendet, gilt die Begrenzung auf 255 Zeichen. Wenn Protokollmeldungen lang sind und die ersten 255 Zeichen unspezifisch sind, kann dies ebenfalls zu ähnlichen Ereignis-Tags für nicht zusammenhängende Probleme führen.