Protokollüberwachung mit zabbix

10662
ufk

Ich versuche, eine Protokolldatei zu überwachen und Alarme zu erhalten, die auf regulären Ausdrücken basieren.

mit zabbix 2.4.5

Dies ist das Protokollelement, das ich erstellt habe

Artikel

und das ist der Auslöser

auslösen

Wie Sie sehen, habe ich das Element nach Bedarf als Zabbix-Agent (Aktiv) erstellt, und es ist ordnungsgemäß aktiviert. Ich bekomme jedoch immer noch keine Benachrichtigungen für die Protokollmeldungen, nach denen ich suche.

Monitor

irgendwelche Ideen?

2

3 Antworten auf die Frage

3
Vladimir

Stellen Sie sicher, dass in der Agentenkonfigurationsdatei auf dem überwachten Host:

Der Parameter 'Hostname' stimmt mit dem Hostnamen im Frontend überein. Server im Parameter 'ServerActive' werden für die Verarbeitung aktiver Prüfungen angegeben. Beispiel:

/etc/zabbix/zabbix_agentd.conf:

Hostname=game.bingodrive.com ServerActive=10.1.1.1 

Prüfen Sie dann, ob der Zabbix Unix-Benutzer zum Lesen der Datei berechtigt ist:

# su - zabbix -c "tail $YOUR-FILE" 

Beachten Sie, dass die Triggerfunktion "regexp" true (1) zurückgibt, wenn string gefunden wurde. Wenn die Meldung auf dem zweiten Screenshot fehlerhaft ist, sollte "1" und nicht = 0 sein.

Vielen Dank für Ihre Antwort. Ich habe den Regex in Eq 1 geändert. Ich habe keine ausführbare Zabbix-Datei in meinem überwachten Host. was mache ich ? ufk vor 8 Jahren 0
"Zabbix" wird auf Ihrem Host nicht ausführbar sein. "su - zabbix -c ..." ist nur ein Befehl, mit dem Sie prüfen können, ob der zabbix agent die Berechtigung zum Lesen der Datei hat. Vladimir vor 8 Jahren 0
ahh oh, du hast recht. Wie auch immer, ich habe überprüft, und der Zabbix-Benutzer hat Zugriff auf diese Protokolldatei. ufk vor 8 Jahren 0
Nun, überprüfen Sie, ob Ihr Protokollüberwachungselement nicht im nicht unterstützten Status ist. Vladimir vor 8 Jahren 0
`su - zabbix -c" tail $ YOUR-FILE "` funktioniert nicht für Benutzer ohne Shell. Sie können dafür `runuser -u zabbix tail $ YOUR-FILE` verwenden. user3132194 vor 5 Jahren 0
1
SimplifiedWork

Eine bessere Alternative für Sie ist, stattdessen ein spezielles Plugin zu verwenden. Wie viele andere moderne Überwachungsanwendungen ermöglicht Zabbix Benutzern die Implementierung benutzerdefinierter Plugins. In Ihrem Fall ist das benutzerdefinierte Plugin ein Tool, das speziell für die Prüfung, Überwachung und Benachrichtigung von Protokolldateien entwickelt wurde.

Ein Beispiel für ein solches Tool ist autoresolve.kl.sh

Der Installationsvorgang ist einfach:

  1. Melden Sie sich bei dem Host an, auf dem sich Protokolldateien befinden, die überwacht werden sollen
  2. wget (the-url-link-of-zip-file-of-autoresolve.kl.sh)
  3. cd / tmp; entpacken (die heruntergeladene ZIP-Datei)
  4. ./install.sh /var/tmp/KINGLAZY/SHIELDX-autoresolve.kl.sh / home / jserver -force

Ersetzen Sie '/ home / jserver' durch Ihr Verzeichnis für zabbix-Plugins. Stellen Sie außerdem sicher, dass Sie die vorhergehenden Installationsbefehle als normalen Benutzer ausführen - nicht als root, wenn Sie nicht testen.

Sobald die obigen Schritte abgeschlossen sind. Sie können nun mit der Überwachung der Protokolle beginnen:

./autoresolve.kl.sh localhost / var / tmp / logXray, fixer, 0n-1y-2y, 0-uname, 1-who, 2-uptime-autonda / var / log / syslog 60m 'app. * error' '. ' 1 2 app_err_monitor -ndshow

Die wichtigsten Parameter, die Sie ändern müssen, sind:

  1. / var / log / syslog - Dies ist die Protokolldatei, die Sie überwachen
  2. app. * error - Dies ist der String, nach dem Sie in der Protokolldatei suchen
  3. app_err_monitor - Dies ist der Name / Tag, den Sie dieser bestimmten Protokollprüfung zuweisen. Wenn Sie möchten, kann dieses Tag später verwendet werden, um Diagramme im überwachten Protokoll zu erstellen.

Eine ausführliche Erklärung zu den einzelnen Parametern finden Sie direkt auf der Hilfeseite .

Auf derselben Hilfeseite finden Sie auch Schritt-für-Schritt-Anleitungen, wie Sie dieses Tool mit Zabbix zusammenarbeiten können, dh welche Konfigurationsdatei für Zabbix Sie aktualisieren müssen ... und welche Einstellungen Sie für Zabbix benötigen Webschnittstelle.

1
Otheus

Für die Zabbix-Überwachung von UNIX-Protokolldateien mit den logElementen ist es entscheidend, dass der betreffende Host aktive Prüfungen verwenden kann . Dies bedeutet im Allgemeinen:

  1. Der Agent muss mit ServerActive=und dem Hostnamen des Zabbix-Servers oder -Proxy konfiguriert sein, den Sie mit diesem Host verwenden.

  2. Der vom Zabbix-Server konfigurierte Hostname stimmt mit dem FQDN oder dem Systemhostnamen des Zielhosts (überwacht) überein.

  3. Wenn dies nicht der Fall ist, muss der Agent mit HOSTNAME=dem entsprechenden Zabbix-Server-Hostnamen konfiguriert werden.

  4. Wie bereits erwähnt, muss der Agent (der als Zabbix-Benutzer ausgeführt wird) Zugriff auf die Protokolldatei haben su zabbix -c "tail -1 logfile". Dies ist eine gute Möglichkeit, dies zu testen. Wenn das zabbix-Konto deaktiviert ist, verwenden Sie runuser -u zabbix tail -1 logfile. (Ersetzen Sie logfilemit der zu überwachenden Datei).

Wenn Sie den Agenten neu starten, überprüfen Sie die Protokolldatei auf Fehlernachrichten wie z

no active checks on server [127.0.0.1:10051]: host [Zabbix server] not found 

Dies weist auf eine Fehlkonfiguration des obigen Typs hin.

Wenn auf dem Server für dieses Element "NICHT UNTERSTÜTZT" angezeigt wird, liegt möglicherweise ein Problem mit den Dateiberechtigungen vor.

Wenn Sie Ihre Nachrichten immer noch nicht sehen, werden möglicherweise zu viele Nachrichten gesendet. Standardmäßig sendet Zabbix nur etwa 100 pro Sekunde und es wird nur alle 30 Sekunden "aufgeholt" (siehe Artikel).

Sie haben Ihren Trigger so konfiguriert, dass nur der letzte Eintrag ( regexp(...,#1)) angezeigt wird . Ich denke, das ist richtig, aber normalerweise lässt man das einfach weg ,#1.

BEARBEITEN: Ersetzt sudodurch runuser. Zeige Kommentare

Sudo ist optional erhältlich. Es ist besser, runuser -u zabbix tail $ YOUR-FILE zu verwenden. user3132194 vor 5 Jahren 1