Auf einen Blick: Die Anweisungen zur Konfiguration von Filebeat, um nginx-Logs zu lesen und an ElasticSearch zu senden, sind detailliert beschrieben und betonen die Verwendung des JSON-Formats zur einfacheren Loganalyse. Wichtige Schritte umfassen die Einrichtung von Elastic Cloud, die Installation von Filebeat und die Konfiguration des nginx-Moduls.
- Verwenden Sie das nginx-Modul von Filebeat für die automatische JSON-Konvertierung von Logs.
- Befolgen Sie die spezifischen Einrichtungsanweisungen für die Konfiguration von Elastic Cloud und Filebeat.
Hier erklären wir, wie man ElasticSearch so einrichtet, dass es nginx-Webserver-Logs liest und in ElasticSearch schreibt. Wir verwenden dafür Filebeat. Filebeat hat ein nginx-Modul, das heißt, es ist vorprogrammiert, um jede Zeile der nginx-Webserver-Logs in das JSON-Format umzuwandeln, das das Format ist, das ElasticSearch benötigt. Die Nutzung von JSON ermöglicht es ElasticSearch leichter, solche Logs abzufragen und zu analysieren. Hinweis: Sie könnten auch ElasticSearch Logstash zu diesem Design hinzufügen, aber das zwischen FileBeat und Logstash setzen. Aber diese gängige Praxis scheint hier überflüssig zu sein. Wir werden in einem anderen Beitrag Anwendungsfälle besprechen, wenn Sie Logstash verwenden möchten. Was Sie benötigen
- nginx-Webserver (oder einfach das unten gezeigte Beispiel herunterladen und in den entsprechenden Ordner legen)
- Filebeat
- Elastic Cloud-Konto (oder richte deinen eigenen Server ein)
- Ubuntu (oder eine andere Linux-Distribution). Hier verwenden wir Ubuntu 16.04.
Elastic Cloud einrichten Du kannst deine eigene lokal installierte ElasticSearch-Instanz verwenden. Hier verwenden wir jedoch Elastic Cloud. Befolge die hier geschriebenen Anweisungen , um ElasticSearch in der Cloud einzurichten, falls du noch kein System hast. Merke dir die Cloud-ID, das Passwort, die Kibana-URL und die Elasticsearch-URL , da du sie unten benötigen wirst. Installiere nginx Wenn du noch keinen Webserver hast, kannst du Linux installieren oder einfach einige Beispiel-nginx-Dateien in den /var/log/nginx-Ordner herunterladen.
sudo apt-get install nginx
Erstelle einige Daten Wenn dein Webserver nicht viele Daten hat, wechsele direkt zum nginx-Log, um mehr Log-Einträge zu erhalten, und lade diese beiden Logs herunter:
sudo cd /var/log/nginx
sudo wget http://igm.univ-mlv.fr/~cherrier/download/L1/access.log
wget https://raw.githubusercontent.com/respondcreate/nginx-access-log-frequency/master/example-access.log
Installiere filebeat Lade filebeats herunter und installiere es dann:
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.0.1-amd64.deb
sudo dpkg -i filebeat-7.0.1-amd64.deb
Aktivieren Sie nun das nginx filebeat-Modul.
sudo filebeat modules enable nginx
Liste aktivierte Module auf, und du wirst sehen, dass nginx aufgeführt ist.
sudo filebeat modules list
Enabled:
nginx
Disabled:
apache
auditd
elasticsearch
Füge die Cloud-IT sowie deine Benutzer-ID und dein Passwort zur Filebeat-Konfigurationsdatei hinzu. Das macht die Verbindung zur Instanz einfacher, da IP-Adressen und Ports nicht mehr angegeben werden müssen.
sudo vi /etc/filebeat/filebeat.yml
cloud.id: 'xxxx'
cloud.auth: 'elastic:xxxxx'
Führe diesen Befehl aus, um nginx-Dashboards zu Kibana zu pushen. Es beginnt auch mit der Verarbeitung von Logs.
sudo filebeat setup -e
Für nachfolgende Durchläufe von Filebeat läuft es so. Die Option -e gibt die Logs an stdout aus.
sudo filebeat -e
Filebeat verarbeitet alle Logs in /var/log/nginx. Das können Sie überprüfen, indem Sie ElasticSearch nach den Indizes abfragen und die untenstehende URL für die URL für Ihre ES-Instanz ersetzen. Beachten Sie, dass wir die Option userid:password in der Variablen $pwd environment gespeichert haben.
curl --user $pwd -X GET 'https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/_cat/indices?v'
Der Indexname wird eine Kombination aus dem Wort filebeat und dem heutigen Datum sein.
green open filebeat-7.0.1-2019.06.12-000001 baiHMtkcSqO1SojJUW1mVg 1 1 8984 0 6.2mb 3.1mb
Kibana öffnen Wenn du Kibana noch nie benutzt hast, wird es dich auffordern, ein Indexmuster einzurichten. Wenn ja, gehe zum Verwaltungsbildschirm und füge eines hinzu.
Ein Indexmuster hinzuzufügen bedeutet einfach, wie viele Buchstaben bestehender Indizes du bei Abfragen zuordnen möchtest. Das heißt, wenn du filebeat* eingibst, liest es alle Indizes, die mit den Buchstaben filebeat beginnen. Wenn du das Datum hinzufügst, liest es die heutigen geparsten Logs. Natürlich ist das nicht nützlich, wenn du andere Arten von Logs als nginx analysierst. Das werden wir in einem anderen Beitrag veranschaulichen. Fang einfach an, die Buchstaben f-i-l-e einzutippen, dann zeigt es dir, welche ES-Dokumentindexe übereinstimmen:
KIbana wird fragen, welches Feld als Zeitstempel verwendet werden kann. Das dient dazu, eine Zeitreihenanalyse zu erstellen, was eigentlich der ganze Sinn der Zusammenstellung von Logs ist. Wähle vorerst @timestamp aus. Es wird von ES generiert. Du kannst das verwenden, wenn sonst nichts in den Daten selbst ist.
Jetzt kannst du vom Discover-Bildschirm (also oben links in der Navigationsleiste) Datensätze durchsuchen. Kibana fragt dich, welches Indexmuster du verwenden möchtest. Klicke auf einen Datensatz, um ihn zu erweitern. Der untenstehende Datensatz ist zu lang, um ihn vollständig zu sehen. Scrolle also nach oben und runter, um alles zu sehen.
Klicken Sie nun auf den Visualisierungsbildschirm und wählen Sie erneut aus der linken Navigationsleiste. Es gibt verschiedene nginx-Dashboards, die Filbeat bereits installiert hat. Das untenstehende zeigt Website-Aufrufe im Zeitverlauf.
Diese Visualisierung (auch Dashboard genannt) zeigt den Standort der Nutzer, die Ihre Webseite für den gewählten Zeitraum besucht haben.
ElasticSearch-Leitfaden
- ElasticSearch Tutorial für Anfänger: ElasticSearch Grundlagen
- Verwendung von Apache Hive mit ElasticSearch
- Verwendung von ElasticSearch mit Apache Spark
- Curl ElasticSearch Befehle Spickzettel
- Spark ElasticSearch Hadoop-Update und Upsert Beispiel und Erklärung
- Wie man Apache Spark-Daten mit Python in ElasticSearch schreibt
- ElasticSearch-Suchsyntax sowie boolesche und Aggregationssuchen
- ElasticSearch verschachtelte Abfragen: Wie man nach eingebetteten Dokumenten sucht
- ElasticSearch Joins: Has_Child, Has_parent Abfrage
- Wie man einen elastischen Cluster der Version 7 einrichtet
- Wie man Filebeat für nginx und ElasticSearch konfiguriert
- Beats und Logstash verwenden, um Logs an ElasticSearch zu senden
- Wie man eine CSV-Datei mit Logstash in ElasticSearch lädt
- ElasticSearch-Aggregationen erklärt
- Was ist der ELK-Stack?
- Logstash 101: Verwendung von Logstash in einer Datenverarbeitungspipeline
- Verwendung von Kibana zur Ausführung von Abfragen in ElasticSearch mit Lucene und Kibana Query Language
- ElasticSearch Maschinelles Lernen
- Wie man Elastic Enterprise Search installiert
- Wie man Elastic Enterprise Search mit GitHub verwendet
Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.