Überwachung von Protokolldateien mithilfe von Prometheus

Überwachung von Protokolldateien mithilfe von Prometheus
Sie können den Prometheus-Drittanbieter-Exporteur verwenden grok_exporter Analyse von Protokolldateien und Exportmetriken in Prometheus zu exportieren.

grok_exporter Verwendet regelmäßige Ausdrücke zum Parsen verschiedener Daten aus Protokolldateien. Die Protokolldateien übereinstimmen die Zeile der Zeile mit einem regulären Ausdruck, und die übereinstimmenden Daten werden in verschiedenen Variablen gespeichert. Dann werden die Daten dieser Variablen über exportiert grok_exporter.

Sobald Sie das hinzufügen grok_exporter Server zu Prometheus als Ziel, Prometheus kann die gewünschten Protokolldateien über überwachen grok_exporter.

In diesem Artikel werde ich Ihnen zeigen, wie Sie GROK_EXPORTER unter Linux (Ubuntu 20.04 LTs in meinem Fall), generieren Sie Dummy -Protokolldateien, konfigurieren. Also lasst uns anfangen.

Inhaltsverzeichnis:

  1. Dinge, die Sie brauchen werden
  2. Herunterladen und Installieren von GROK_EXPORTER
  3. Generieren einer Dummy -Protokolldatei mit Fakedata
  4. Konfigurieren von grok_exporter
  5. Hinzufügen von Grok_exporter zu Prometheus
  6. Metriken von grok_exporter mit prometheus abkratzen
  7. Wohin als nächstes gehen?
  8. Abschluss
  9. Verweise

Dinge, die Sie brauchen:

Sie müssen Prometheus auf Ihrem Computer installiert haben, um Protokolldateien mit Prometheus zu überwachen.

Wenn Sie Unterstützung bei der Installation von Prometheus auf Ihrem Computer benötigen, lesen Sie den Artikel, wie Sie Prometheus auf Ubuntu 20 installieren.04 LTS.

Herunterladen und Installieren von GROK_EXPORTER:

In diesem Abschnitt zeige ich Ihnen, wie Sie GROK_EXPORTER auf Ihrem Computer herunterladen und installieren.

Navigieren Sie zuerst zur Navigation zum ~/Downloads Verzeichnis wie folgt:

$ cd ~/downloads

Laden Sie die neueste Version der herunter grok_exporter Archiv mit dem folgenden Befehl:

$ wget https: // github.com/fstab/grok_exporter/releases/download/v1.0.0.RC5/grok_exporter-1.0.0.RC5.Linux-AMD64.Reißverschluss

grok_exporter Das Archiv wird heruntergeladen. Es kann eine Weile dauern, bis es fertig ist.

An diesem Punkt die grok_exporter Das Archiv sollte heruntergeladen werden.

Einmal der grok_exporter Das Archiv wird heruntergeladen, Sie sollten eine neue Datei finden grok_exporter-1.0.0.RC5.Linux-AMD64.Reißverschluss im ~/Downloads Verzeichnis wie im Screenshot unten markiert.

$ ls -lh

Extrahieren Sie das Archiv grok_exporter grok_exporter-1.0.0.RC5.Linux-AMD64.Reißverschluss mit dem folgenden Befehl:

$ unzip grok_exporter-1.0.0.RC5.Linux-AMD64.Reißverschluss

Das Archiv grok_exporter sollte extrahiert werden.

Ein neues Verzeichnis grok_exporter-1.0.0.RC5.Linux-AMD64/ sollte in der erstellt werden ~/Downloads Verzeichnis.

$ ls -lh

Benennen Sie nun die um grok_exporter-1.0.0.RC5.Linux-AMD64/ Verzeichnis an grok-exporter/ und bewege es in die /opt Verzeichnis wie folgt:

$ sudo mv -v grok_exporter -1.0.0.RC5.Linux-AMD64 /Opt /Grok-Exporter

Erstellen Sie nun eine Systemd -Dienstdatei Grok-EXPORTER.Service im /opt/grok-exporter Verzeichnis wie folgt:

$ sudo nano/opt/grok-exporter/grok-exporter.Service

Geben Sie die folgenden Zeilen in die ein Grok-EXPORTER.Service Datei.

[Einheit]
Beschreibung = Prometheus grok_exporter Server
[Service]
Neu starten = immer
WorkingDirectory =/opt/grok-exporter
Execstart =/opt/grok-exporter/grok_exporter –config =/opt/grok-exporter/config.YML
Execreload =/bin/Kill -hup $ mainpid
TimeoutStopsec = 20s
SendSigkill = nr
[Installieren]
Wantby by = multi-user.Ziel

Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und um die zu retten Grok-EXPORTER.Service Datei.

So installieren Sie die Grok-EXPORTER.Service Die Systemd -Dienstdatei auf Ihrem Computer erstellen Sie einen symbolischen Link der /opt/grok-exporter/grok-exporter.Service Datei in der /etc/systemd/system Verzeichnis wie folgt:

$ sudo ln -s/opt/grok-exporter/grok-exporter.Service/etc/systemd/system/grok-exporter.Service

Kopiere das Konfiguration.YML Datei aus der /opt/grok-exporter/Beispiel Verzeichnis zum /opt/grok-exporter Verzeichnis wie folgt:

$ sudo cp -v/opt/grok -exporter/Beispiel/Konfiguration.YML/opt/grok-exporter/

NOTIZ: Der Konfiguration.YML Datei wird zum Konfigurieren verwendet grok_exporter. Das Beispiel (Standard) Konfiguration.YML Datei ist gut zum Testen, wenn grok_exporter funktioniert. Ich werde Ihnen zeigen, wie Sie konfigurieren grok_exporter In einem späteren Abschnitt dieses Artikels.

Führen Sie den folgenden Befehl aus, damit die systemd -Änderungen wirksam werden sollen:

$ sudo systemctl Daemon-Reload

Beginnen Sie jetzt die Grok-EXPORTER Systemd -Dienst mit dem folgenden Befehl:

$ sudo systemctl start grok-exporter.Service

Der Grok-EXPORTER Systemd Service sollte sein aktiv/rennen, Wie Sie im Screenshot unten sehen können. Es bedeutet grok_exporter Läuft gut.

$ sudo systemctl Status Grok-Exporter.Service

Generieren einer Dummy -Protokolldatei mit Fakedata:

Um gefälschte Protokolldateien zu generieren, werde ich in diesem Artikel Lucapette/Fakedata verwenden. Es gibt viele andere Tools, mit denen Sie gefälschte Protokolldateien generieren können. Sie können eine von ihnen verwenden, wenn Sie möchten.

Navigieren Sie zuerst zur Navigation zum ~/Downloads Verzeichnis wie folgt:

$ cd ~/downloads

Herunterladen Fakedata, Führen Sie den folgenden Befehl aus:

$ wget https: // github.com/lucapette/fakedata/releases/download/v1.1.2/fakedata_1.1.2_linux_amd64.Teer.gz

Fakedata -Archiv sollte heruntergeladen werden.

Sobald das Fakedata -Archiv heruntergeladen wurde, sollten Sie eine neue sehen fakedata_1.1.2_linux_amd64.Teer.gz im ~/Downloads Verzeichnis.

$ ls -lh

Extrahieren Sie das Fakedata -Archiv fakedata_1.1.2_linux_amd64.Teer.gz mit dem folgenden Befehl:

$ tar xvzf fakedata_1.1.2_linux_amd64.Teer.gz

Sie sollten eine neue ausführbare Datei finden Fakedata im ~/Downloads Verzeichnis wie im Screenshot unten markiert.

$ ls -lh

Beweg das Fakedata binär zu /usr/local/bin Verzeichnis wie folgt:

$ sudo mv -v fakedata/usr/local/bin/

Jetzt sollten Sie in der Lage sein, zugreifen zu können Fakedata aus der Befehlszeile.

$ fakedata -Verssion

Erstellen Sie ein neues Shell -Skript Hallo http im /usr/local/bin Verzeichnis wie folgt:

$ sudo nano/usr/local/bin/hello-http

Geben Sie die folgenden Codes -Zeilen in der ein Hallo http Skript.

#!/Bin/Bash
LogFile =/tmp/hello-http.Protokoll
während wahr
Tun
Fakedata Benutzername http.Methode Enum:/,/Login,/Logout,/Message IPv4 -Limit 1 >> $ logfile
Schlaf 1
Erledigt
beenden 0

Sobald Sie fertig sind, drücken Sie + X gefolgt von Y Und Um das Hello-HTTP-Skript zu speichern.

Fügen Sie dem Shell -Skript die Berechtigung hinzu /usr/local/bin/hello-http folgendermaßen:

$ sudo chmod +x/usr/local/bin/hello-http

Um die zu testen Hallo http Skript, führen Sie es wie folgt aus:

$ hello-http

Eine Protokolldatei /tmp/hello-http.Protokoll sollte erzeugt werden. Jede Sekunde sollte der Protokolldatei ein neuer Eintrag hinzugefügt werden.

$ tail -f /tmp /hello -http.Protokoll

Jede Zeile der /tmp/hello-http.Protokoll Die Datei sollte im folgenden Format sein,

Konfigurieren von GROK_EXPORTER:

In diesem Abschnitt werde ich Ihnen zeigen, wie Sie konfigurieren grok_exporter Um die generierte Protokolldatei zu überwachen /tmp/hello-http.Protokoll.

Öffne das grok_exporter Konfigurationsdatei /opt/grok-exporter/config.YML Mit dem Nano -Texteditor wie folgt:

$ sudo nano/opt/grok-exporter/config.YML

Die Standardkonfigurationsdatei sollte wie folgt aussehen.

Im Eingang Abschnitt geben Sie die an Weg der Protokolldatei, die Sie überwachen möchten.

In diesem Fall möchte ich die Protokolldatei überwachen /tmp/hello-http.Protokoll.

Lese alles sollte sein WAHR Wenn Sie die gesamte Protokolldatei und neu hinzugefügte Zeilen aus der Protokolldatei überwachen möchten.

Lese alles sollte sein FALSCH Wenn Sie nur die neu hinzugefügten Zeilen aus der Protokolldatei überwachen möchten.

Daten aus der Protokolldatei extrahieren /tmp/hello-http.Protokoll, Ändern Sie den Abschnitt Metriken der Konfiguration.YML Datei wie folgt:

Hier ist der metrische Typ der Zähler. GROK_EXPORTER unterstützt auch andere Prometheus -Metriktypen. Wenn Sie einen anderen Prometheus -Metriktyp verwenden möchten, überprüfen Sie die offizielle Dokumentation von GROK_EXPORTER. Die Links sind unten angegeben.

GROK_EXPORTER - ZEIT METIC TYPE

GROK_EXPORTER - Messmetriktyp

GROK_EXPORTER - HISTOGRAMME

GROK_EXPORTER - Zusammenfassung metrischer Typ

Der Name der Metrik wird sein hello_http_total.

Der Hilfe Eigenschaft ist eine kurze Beschreibung dessen, was die Metrik tut.

Der passen Eigenschaft wird verwendet, um unterschiedliche Daten aus jeder Protokolldateizeile abzustimmen und sie in ihren jeweiligen Variablen zu speichern.

Die erste Spalte der /tmp/hello-http.Protokoll Datei ist die . Der ; ist vom Mustentyp -Wort, und die mit diesem Typ extrahierten Daten werden in der Benutzervariablen gespeichert.

Ebenso ist die zweite Spalte und ist auch vom Mustertyp WORT, und die extrahierten Daten werden in der gespeichert http_method Variable.

Die dritte Spalte der Protokolldatei ist der URL -Pfad. Es ist vom Mustertyp Uripathparam, und es wird in der gespeichert http_path Variable.

Die vierte Spalte der Protokolldatei ist die IP -Adresse. Es ist vom Mustertyp IP, und es wird in der Variablen gespeichert ip_addr.

Es gibt viele andere Mustertypen, mit denen Sie Daten aus der Protokolldatei extrahieren können. Sie finden alle unterstützten Mustertypen in der /opt/grok-exporter/musters/grok-patterns Datei.

$ sudo cat/opt/grok-exporter/musters/grok-patterns

Sobald die Daten extrahiert und in verschiedenen Variablen gespeichert sind, können Sie die Variablen auswählen, die Sie über exportieren möchten grok_exporter.

Die Variablen, die Sie über exportieren möchten grok_exporter muss in der aufgeführt sein Etiketten Abschnitt wie im Screenshot unten markiert.

Sie können auch neue Mustertypen erstellen und Daten aus jeder Protokolldateizeile mit den neu erstellten Mustertypen übereinstimmen.

Um neue Mustertypen zu erstellen, fügen Sie die Mustertypen in die hinzu grok_patterns Abschnitt der Konfiguration.YML Datei.

Standardmäßig ein benutzerdefinierter Mustertyp Exim_message wird definiert und kann verwendet werden, um Daten aus Protokolldateien mit dem regulären Ausdruck zu übereinstimmen [a-za-z]*.

Zu entsprechen dem HTTP -Status (i.e., Veröffentlichen, posten, setzen), Sie können einen neuen Mustertyp definieren Http_status [a-z] 3,4 und verwenden Sie es, um Daten aus der Protokolldatei wie folgt abzustimmen. Ich hoffe du bekommst die Idee.

Die endgültige Version der Konfiguration.YML Die Datei finden Sie im Screenshot unten.

Sobald Sie fertig sind, Änderungen an der Konfiguration.YML Datei, drücken Sie + X gefolgt von Y Und um es zu retten.

Damit die Änderungen wirksam werden sollen, starten Sie die neu neu Grok-EXPORTER Systemd Service wie folgt:

$ sudo systemctl restart grok-exporter.Service

Wenn alles in Ordnung ist (Sie haben in der Konfigurationsdatei keine Fehler gemacht Konfiguration.YML), Die Grok-EXPORTER Systemd Service sollte sein aktiv/rennen.

$ sudo systemctl Status Grok-Exporter.Service

Hinzufügen von GROK_EXPORTER zu Prometheus:

Jetzt müssen Sie hinzufügen grok_exporter zu Prometheus als Ziel.

Zuerst müssen Sie die IP -Adresse des Computers kennen, auf dem Sie installiert haben grok_exporter.

In meinem Fall lautet die IP -Adresse 192.168.3.149. Es wird für Sie anders sein. Stellen Sie also sicher, dass Sie es von nun an durch Ihre ersetzen.

$ hostname -i

Öffnen Sie dann die Prometheus -Konfigurationsdatei Prometheus.YML Mit dem Nano -Texteditor wie folgt:

$ sudo nano/opt/prometheus/prometheus.YML

Im crape_configs Abschnitt der Prometheus.YML Datei, fügen Sie die im Screenshot unten markierten Zeilen hinzu.

NOTIZ: Vergessen Sie nicht, die Ziel -IP -Adresse des Ziels zu ersetzen Grok-EXPORTER Job mit der IP -Adresse des Computers, auf dem Sie haben grok_exporter Eingerichtet.

Damit die Änderungen wirksam werden sollen, starten Sie die neu neu Prometheus Systemd Service wie folgt:

$ sudo systemctl restart prometheus neu.Service

NOTIZ: Ich habe installiert Prometheus auf dem gleichen Computer wie grok_exporter. Die IP -Adresse des Computers, auf dem ich Prometheus installiert habe. In meinem Fall ist es 192.168.3.149. Stellen Sie sicher, dass Sie es von nun an durch Ihre ersetzen.

Besuchen Sie nun die Zielseite von Prometheus bei der URL http: // 192.168.3.149: 9090/Ziele, und Sie sollten sehen, dass die Grok-EXPORTER Ziel ist in der HOCH Zustand.

Kratzmetriken von grok_exporter mit prometheus:

Bevor Sie anfangen, Metriken von abzukratzen grok_exporter Starten Sie mit Prometheus den Generator der Dummy -Protokolldatei Hallo http mit dem folgenden Befehl:

$ hello-http

Besuchen Sie nun die Seite Prometheus Graph unter http: // 192.168.3.149: 9090/Graph und führen Sie den Ausdruck aus hello_http_total.

Wie Sie sehen können, werden die Daten aus der Protokolldatei extrahiert /tmp/hello-http.Protokoll. Jede Zeile der Protokolldatei ist ein separater Eintrag in Prometheus.

Sie können auch die Daten filtern. Nehmen wir zum Beispiel an, Sie möchten nur die Einträge auflisten, bei denen die http_method ist bekommen. Um das zu tun, führen Sie den Ausdruck aus hello_http_total http_method = "get".

Sie können auch die Anzahl der Einträge zählen, die bestimmten Kriterien entsprechen. Um beispielsweise die Anzahl der HTTP -Anforderungen zu zählen, können Sie den Ausdruck ausführen count (hello_http_total http_method = ”get”.

Wie Sie sehen können, beträgt die Anzahl der HTTP -Anfragen 30.

Wenn Sie nach wenigen Sekunden den gleichen Ausdruck ausführen, sollte die Anzahl der HTTP -Anfragen zunehmen.

Wohin als nächstes gehen?

Um mehr über das Konfigurieren zu erfahren grok_exporter, Lesen Sie die offizielle Seite GROK_EXPORTER -Konfigurationskonfiguration Dokumentation.

Abschluss:

In diesem Artikel habe ich Ihnen gezeigt, wie Sie GROK_EXPORTER auf Ubuntu 20 installieren sollen.04 LTS. Ich habe Ihnen auch gezeigt, wie Sie Dummy -Protokolldateien mit Fakedata generieren und GROK_EXPORTER konfigurieren, um die generierte Protokolldatei zu überwachen. Ich habe Ihnen gezeigt, wie Sie GROK_EXPORTER als Ziel für Prometheus hinzufügen und Protokolldateien auch mit Prometheus überwachen.

Verweise:

  1. fstab/grok_exporter: exportieren prometheus metriken aus willkürlichen unstrukturierten Protokolldaten.
  2. Lucapette/Fakedata: CLI -Dienstprogramm für gefälschte Datenerzeugung
  3. Grok Filter Plugin | Logstash -Referenz [7.15] | Elastisch
  4. Logstash-Patterns/Grok-Patterns bei Master · Hpcugent/Logstash-Patterns
  5. https: // github.com/logstash-plugins/logstash patterns-core/baum/master/musters/ecs-v1
  6. Logstash: Sammeln, analysieren, Protokolle | Elastisch
  7. grok_exporter/config.MD bei Master · fstab/grok_exporter