Einführung
Die Überwachung der Webserverlogs ist entscheidend, um Ihre Webseite flott zu halten, Probleme zu lösen und das Nutzerverhalten zu verstehen. Wenn Sie Nginx verwenden, erzeugt es Zugriffs- und Fehlerlogs, die viel wertvolle Informationen enthalten. Um diese Logs zu verwalten und zu analysieren, können Sie Logstash verwenden, um sie zu verarbeiten und weiterzuleiten, und DigitalOcean’s Managed OpenSearch, um die Daten zu indizieren und可视化する.
In diesem Leitfaden gehen wir Ihnen durch die Installation von Logstash auf einem Droplet, die Konfiguration zur Sammlung Ihrer Nginx-Logs und die Übertragung an das DigitalOcean Managed OpenSearch vor.
Voraussetzungen
-
Ein DigitalOcean Cloud-Konto und ein Ubuntu Droplet, das laufend ist.
-
Nginx sollte installiert werden und auf Ihrem Droplet Protokolle generiert werden. Um Nginx auf einem Droplet zu installieren, befolgen Sie diesen Leitfaden: Wie man Nginx auf Ubuntu installiert.
-
Ein OpenSearch-Cluster sollte laufen und Sie sollten Zugriff darauf haben. Besuchen Sie Wie man OpenSearch-Cluster erstellt, um mehr Details zu erhalten.
- Vertrautheit mit Nginx, Logstash und OpenSearch ist von Vorteil.
Anwendungsfall
Du könntest diese Einrichtung brauchen, wenn du:
- Monitoring und Fehlerbehebung: Web-Server-Leistung und Fehler analysieren, indem aktuelle Logdateien untersucht werden.
- Leistungsanalyse: Einblicke in die Web-Traffic-Muster und Server-Metriken erhalten.
- Logging zentralisieren: Logdateien von mehreren Nginx-Servern in einer einzigen OpenSearch-Instanz aggregieren, um einfacher verwalten zu können.
Hinweis: Die Einrichtungszeit sollte etwa 30 Minuten dauern.
Schritt 1 – Installieren von Logstash auf Droplets
Logstash kann mit Hilfe von binaeren Dateien, die hier verfügbar sind, oder Paket-Repositories, die für Ihr Betriebssystem angepasst sind, installiert werden. Für eine einfache Verwaltung und Updates ist die Verwendung von Paket-Repositories im Allgemeinen empfehlenswert. Sie können den APT-Paket-Manager auf Debian-basierten Systemen wie Ubuntu verwenden, während Sie auf Red Hat-basierten Systemen wie CentOS oder RHEL yum
verwenden können. Beide Methoden gewährleisten, dass Logstash ordnungsgemäß in Ihre Systempaketverwaltung integriert wird, was die Installation und Wartung vereinfacht.
In diesem Abschnitt werden wir Ihnen durch die Installation von Logstash mit beiden apt
und yum
Paketmanagern geführt, sodass Sie Logstash auf Ihrem Droplet egal welcher Linux-Distribution konfigurieren können.
Um das Betriebssystem zu finden, führen Sie folgenden Befehl aus:
Für APT-basierte Systeme (Ubuntu/Debian)
1. Laden und installieren Sie den öffentlichen Signaturschlüssel:
2. Installieren Sie apt-transport-https, falls es noch nicht installiert ist:
3. Fügen Sie der apt
-Quellliste den Logstash-Repository-Eintrag hinzu und speichern Sie ihn:
Hinweis: Stelle sicher, dass du add-apt-repository
-Befehle nicht verwendest, da sie eine deb-src
-Eintragung hinzufügen könnten, die nicht unterstützt wird. Wenn du mit einem deb-src
-Eintrag zusammenhängenden Fehler aufgegriffen bist, lösche ihn aus der Datei /etc/apt/sources.list
. Wenn du den deb-src
-Eintrag hinzugefügt hast, zeigt ein Fehler wie folgendes an:
Wenn du nur den deb-src
-Eintrag aus der Datei /etc/apt/sources.list
löschst, sollte die Installation wie erwartet funktionieren.
4. Aktualisiere den Paketindex, um das neue Repository zu integrieren:
5. Installiere Logstash mit dem apt
-Paketmanager:
6. Starte Logstash und aktiviere es, damit es bei jedem Neustart automatisch gestartet wird:
Logstash ist nun auf deinem System installiert und laufend.
Für YUM-basierte Systeme (CentOS/RHEL):
1. Lade und installiere den öffentlichen Signaturschlüssel für das Logstash-Repository:
2. Erstelle eine Repositorydatei für Logstash in /etc/yum.repos.d/
. Zum Beispiel kannst du eine Datei namens logstash.repo
erzeugen. Du kannst den folgenden Inhalt kopieren und einfügen, um die Datei zu erstellen und den Inhalt zu aktualisieren:
Das Repository ist bereit zu verwenden.
3. Installiere Logstash mit dem YUM-Paketmanager:
4. Starte Logstash und aktiviere es, damit es bei jedem Neustart automatisch gestartet wird:
Logstash ist nun installiert und auf Ihrem System ausgeführt.
Schritt 2 – Installation des Open Search Output Plugins
Sie können das OpenSearch-Ausgabeplugin mithilfe des folgenden Befehls installieren:
Weitere Informationen über das Plugin finden Sie auf diesem logstash-output-opensearch-PluginkRepository.
Schritt 3 – Konfigurieren von Logstash, um Nginx-Protokolle an OpenSearch zu senden
Ein Logstash-Pipeline besteht aus drei Hauptstufen: Eingabe, Filterung und Ausgabe. Logstash-Pipelines nutzen Plugins. Sie können Community-Plugins verwenden oder eigenen erstellen.
- Eingabe: In dieser Phase erfasst Logstash Daten aus verschiedenen Quellen. Logstash unterstützt zahlreiche Eingabeplugins, um Datenquellen wie Logdateien, Datenbanken, Meldezeichen und Clouddienstleistungen zu verwalten.
- Filterung: In dieser Phase wird die in der Eingabestufe erfasste Daten verarbeitet und verändert. Filter können die Daten verändern, vervollständigen und strukturieren, um sie nützlicher und einfacher analysierbar zu machen.
- Ausgabe: In diesem Abschnitt werden die verarbeiteten Daten an eine Zieladresse gesendet. Ziele können Datenbanken, Dateien und DatenSpeicher wie OpenSearch sein.
Nun erstellen wir einen Pipeline.
1. Erstellen Sie ein Logstash-Konfigurationsdatei unter /etc/logstash/conf.d/nginx-to-opensearch.conf
mit folgendem Inhalt:
Ersetzen Sie:
OpenSearch-Hostname
mit dem Hostnamen Ihres OpenSearch-Servers.<your_password>
mit Ihrem OpenSearch-Passwort.
2. Aktualisieren Sie die neue Konfiguration, indem Sie Logstash neu starten:
3. Prüfen Sie die Logstash-Logs, um sicherzugehen, dass Daten korrekt verarbeitet und weitergeleitet werden:
Ausführliche Beschreibung der nginx-to-opensearch.conf
-Konfiguration
EINGABE
Der input
-Block konfiguriert zwei Dateieingaben, um Logdateien zu lesen:
Nginx-Logs:
Pfade:
/var/log/nginx/access.log
(für Zugriffslogs)
/var/log/nginx/error.log
(für Fehlerlogs)
Startposition: beginning
– Liest von der Anfangszelle der Logdateien aus.
Sincedb-Pfad: /dev/null
– Deaktiviert die Tracking-Funktion für kontinuierliches Lesen.
Tags:
["nginx_access"]
für Zugriffslogs
["nginx_error"]
für Fehlerlogs
Hinweis: Stellen Sie sicher, dass der Logstash-Dienst auf die Eingabepfade zugreifen kann.
FILTER
Der filter
-Block verarbeitet Logs auf Basis ihrer Markierungen:
Log Verarbeitung:
Zugriffsprotokolle:
Verwendet ein grok
-Filter, um das Zugriffsprotokollformat zu parsen und Felder wie client_ip
, timestamp
, method
, request
, http_version
, response
, bytes
, referrer
und user_agent
herauszufiltern.
Entfernt das ursprüngliche message
-Feld und bestimmte Metadatenfelder.
Fehlerprotokolle:
Sucht nach der nginx_error
-Markierung und verwendet ein grok
-Filter, um Felder wie timestamp
, level
, pid
, tid
und error_message
herauszufiltern.
Entfernt auch das message
-Feld und die Metadatenfelder.
OUTPUT
Der output
-Block leitet Ereignisse an OpenSearch weiter, basierend auf ihren Markierungen:
Weiterleitung an OpenSearch:
Bei sowohl Zugriffs- als auch Fehlerprotokollen wird festgelegt:
Hosts: URL der OpenSearch-Instanz.
User: doadmin
für die Authentifizierung.
Password: Ihr OpenSearch-Passwort.
Index:
nginx_access-%{+YYYY.MM.dd}
für Zugriffsprotokolle
nginx_error-%{+YYYY.MM.dd}
für Fehlerprotokolle
SSL-Einstellungen: Aktiviert SSL und Zertifikatüberprüfung.
Schritt 4 – OpenSearch einrichten
1.Öffnen Sie Ihren Webbrowser und navigieren Sie zu der URL des OpenSearch-Dashboards:
Ersetzen Sie OpenSearch-Hostname
durch den Hostnamen Ihres OpenSearch-Servers.
2.Erstellen Sie ein Indexmuster.
a. Navigieren Sie linksseitig zu Verwaltung > Dashboard-Verwaltung > Indexmuster.
b. Klicken Sie oben rechts auf Indexmuster erstellen.
c. Geben Sie nginx_access-*
oder nginx_error-*
als Indexmuster ein, um alle Indizes, die von Logstash erstellt wurden, abzubilden, und klicken Sie auf Nächster Schritt.
d. Klicken Sie auf Indexmuster erstellen.
3.Stellen Sie sicher, dass das Indexmuster erfolgreich erstellt und in der Liste der Indexmuster sichtbar ist.
4.Gehen Sie linksseitig zu Entdecken und wählen Sie das von Ihnen erstellte Indexmuster (nginx_access-*
oder nginx_error-*
). Prüfen Sie, dass Logeinträge sichtbar sind und korrekt indiziert wurden.
5.Erstellen Sie Visualisierungen und Dashboards. Besuchen Sie Wie man ein Dashboard in OpenSearch erstellt für weitere Informationen.
Fehlerbehebung
Verbindung prüfen
Du kannst überprüfen, ob Logstash mit OpenSearch verbunden werden kann, indem du die Verbindung testen:
Ersetze:
OpenSearch-Hostname
mit dem Hostnamen deines OpenSearch-Servers.<your_password>
mit deinem OpenSearch-Passwort.
Daten Ingestion
Du kannst sicherstellen, dass die Daten korrekt in OpenSearch indiziert werden, indem du folgendes curl-Befehl verwendest:
Ersetze:
OpenSearch-Hostname
mit dem Hostnamen deines OpenSearch-Servers.<your_password>
mit deinem OpenSearch-Passwort.
Firewall und Netzwerkskonfiguration
Stelle sicher, dass die Firewall-Regeln und die Netzwerksettings den Verkehr zwischen Logstash und OpenSearch auf Port 25060
zulassen.
Schlussfolgerung
In diesem Leitfaden hast du gelernt, Logstash einzurichten, um Nginx-Logdateien zu sammeln und an OpenSearch weiterzuleiten.
Du hast beschrieben, wie du die Paketverwaltungen apt
oder yum
verwendest, je nach deiner Linux-Distribution, um Logstash auf deinem Droplet zu installieren. Du hast auch die Logstash-Konfigurationsdatei erstellt und angepasst, um sicherzustellen, dass die Nginx-Logdateien korrekt verarbeitet und an OpenSearch gesendet werden. Anschließend hast du in OpenSearch Dashboards einen Index-Muster eingerichtet, um zu überprüfen, dass die Logdateien ordnungsgemäß indexiert werden und für die Analyse sichtbar sind.Nach Abschluss dieser Schritte solltest du nun eine funktionierende Einrichtung haben, in der Logstash Nginx-Logdateien sammelt und an OpenSearch sendet. Diese Einrichtung ermöglicht es dir, die leistungsstarken Suche und Visualisierungs工具 von OpenSearch zu verwenden, um deine Serverlogs zu analysieren.
Wenn du auf Probleme stößt, schaue dir die Fehlerbehebung-Tipps an, die wir bereitgestellt haben, und beziehe dich auf die Logstash– und OpenSearch-Dokumentation für weitere Hilfe. Der regelmäßige Überwachung sorgt dafür, dass das Logging-System flüssig und effektiv läuft.
Source:
https://www.digitalocean.com/community/tutorials/forward-nginx-logs-to-opensearch-using-logstash