Hintergrundanforderungen:Mit zunehmender Größe des Unternehmens gibt es immer mehr Server und die Anzahl der verschiedenen Zugriffsprotokolle, Anwendungsprotokolle und Fehlerprotokolle nimmt zu. Infolgedessen kann das Betriebs- und Wartungspersonal die Protokolle nicht gut verwalten. Entwickler müssen die Protokolle auf dem Server überprüfen, um Probleme zu beheben, was für das Betriebspersonal unbequem ist. Wenn sie Daten benötigen, müssen wir den Server betreiben und warten, um die Protokolle zu analysieren. ELK-Einführung:ELK ist die Abkürzung für drei Open-Source-Softwareprogramme: Elasticsearch, Logstash und Kibana, die alle Open-Source-Software sind. Derzeit wurde der ursprüngliche ELK Stack aufgrund der Hinzufügung des Beats-Tools in Elastic Stack umbenannt. Beats ist ein leichtes Tool zur Protokollsammlung und -verarbeitung (Agent), das nur wenige Ressourcen benötigt und sich zum Sammeln von Protokollen auf verschiedenen Servern und zum Übertragen an Logstash eignet. Der Beamte empfiehlt dieses Tool auch. Bauschritte:Nach der obigen Beschreibung sollte jeder ein wenig Verständnis dafür haben, dass zum Erstellen dieser Plattform mindestens 3/4 Software benötigt wird (Filebeat ist nicht erforderlich).
Dieser Artikel setzt voraus, dass Sie bereits über eine Docker-Umgebung und grundlegende Erfahrung mit der Verwendung von Docker verfügen. Ziehen Sie das Bild (eine einheitliche Version kann viele Fallstricke vermeiden): Docker-Pull Kibana:6.8.2 Docker zieht Elasticsearch:6.8.2 docker pull mobz/elasticsearch-head:5 # ein Plugin für es docker pull logstash:6.8.2 docker pull docker.elastic.co/beats/filebeat:6.8.2 # Wenn es sehr langsam ist, können Sie versuchen, einen Proxy einzurichten oder die Docker-Image-Quelle zu ändern Um einen Docker-Proxy in Linux einzurichten, können Sie ClashX verwenden, um die URL zu abonnieren und dann Docker mit dem Proxy zu verbinden. Wenn Sie einen Desktop haben, können Sie ihn direkt ändern. Wenn Sie keinen haben, können Sie eine Konfigurationsdatei erstellen, um ihn zu ändern. ⇒ Portal Geben Sie Docker außerdem mehr Speicher, um Verzögerungen zu vermeiden. Build ES:docker run -d -p 9200:9200 -p 9300:9300 --name elasticsearch -e "discovery.type=single-node" elasticsearch:6.8.2 Browserzugriff (curl ist auch ok): localhost:9200. Wenn das folgende Ergebnis erscheint, bedeutet dies, dass der Start erfolgreich war: Wenn ein Fehler auftritt, überprüfen Sie das Fehlerprotokoll. ES-HEAD erstellen:docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5 Besuchen Sie localhost:9100 erneut und Sie werden das folgende Ergebnis sehen: Möglicherweise können Sie in es-head keine Verbindung zu es herstellen, da es keine domänenübergreifende Funktion aktiviert hat. Rufen Sie den es-Container auf und suchen Sie in der Konfigurationsdatei nach elasticsearch.yml. Fügen Sie dieser Datei Folgendes hinzu: http.cors.enabled: wahr http.cors.allow-origin: "*" Starten Sie es dann neu und es-head kann eine Verbindung zu es herstellen. Öffnen Sie Kibana:docker run -d -p 5601:5601 --link elasticsearch -e ELASTICSEARCH_URL=http://elasticsearch:9200 kibana:6.8.2 Hier ist es http://elasticsearch:9200. Ändern Sie es nicht. Zuvor haben wir --link verwendet, um die Elasticsearch-IP-Adresse zur Hosts-Datei des Kibana-Containers hinzuzufügen, sodass wir über den definierten Namen direkt auf den ES-Dienst zugreifen können. Der Besuch von localhost:5601 führt zu Folgendem: Bisher lief unser Kibana erfolgreich und es lief auch. Der nächste Schritt besteht darin, Protokolldienste zu sammeln. Erstellen Sie Filebeat und Logstash:Zunächst benötigen diese beiden Brüder einige Konfigurationsdateien. Wir möchten diese beiden Konfigurationsdateien im selben Ordner speichern: mkdir elktest # Im Hauptverzeichnis, also ~/elktest Pfad cd elktest berühren Sie filebeat.yml berühren Sie logstash.conf. Hinzufügen eines Profils vim filebeat.yml Dateibeat.prospectors: - Pfade: - /home/elk/logs/user/a.log mehrzeilig: Muster: ^\d{4} negieren: wahr Übereinstimmung: nach Felder: doc_type: Benutzer - Pfade: - /home/elk/logs/service/a.log mehrzeilig: Muster: ^\d{4} negieren: wahr Übereinstimmung: nach Felder: doc_type: Dienst output.logstash: # Ausgabeadresse Hosts: ["logstash:5044"] vim logstash.conf Eingabe { schlägt { Port => "5044" } } Filter { json { Quelle => "Nachricht" } } Ausgabe { stdout { codec => rubydebug } elastische Suche Hosts => [ "elasticsearch:9200" ] index => "%{[Felder][Dokumenttyp]}-%{+JJJJ.MM.tt}" } } Sie sollten sich noch im Verzeichnis elktest befinden. Da wir keine Protokollquelle haben, wird in diesem Video manuell ein Protokoll erstellt und ein Protokollordner angelegt: mkdir logdir Erstellen Sie selbst einige Protokolle, schreiben Sie, was Sie wollen, ändern Sie die Datei- und Ordnernamen nicht, sie sind bereits in der Konfigurationsdatei zugeordnet. Nach Abschluss des Builds sollte Ihre Verzeichnisstruktur folgendermaßen aussehen: Erstellen Sie einen Container: docker run -it --name logstash --link elasticsearch -d -p 5044:5044 -v ~/elktest/logstash.conf:/usr/share/logstash/pipeline/logstash.conf logstash:6.8.2 docker run --name filebeat --link logstash -d -v ~/elktest/filebeat.yml:/usr/share/filebeat/filebeat.yml -v ~/elktest/logdir/user/:/home/elk/logs/user/ -v ~/elktest/logdir/service/:/home/elk/logs/service/ docker.elastic.co/beats/filebeat:6.8.2 An diesem Punkt sollte Ihr Es-Head folgendermaßen aussehen: Sollte dies nicht der Fall sein, kannst du prüfen, ob der Container läuft und ob ein Fehlerprotokoll vorhanden ist. Du kannst außerdem elasticsearch im Logstash-Container und logstash im Filebeat-Container anpingen, um zu prüfen, ob ein Problem mit dem Pfad vorliegt. Kibana zeigt: Index erstellen: Nachdem die Erstellung abgeschlossen ist, überprüfen Sie sie und fügen Sie die Felder hinzu, die Sie anzeigen möchten. Der Inhalt befindet sich in der Nachricht (die zufällig der Inhalt von a.log ist): Bisher ist unser Elch fertig gebaut. Freunde, die ihn erfolgreich gebaut haben, können sich zum Abendessen eine Hähnchenkeule gönnen! ! ! ! Oben finden Sie detaillierte Informationen zur Methode zum Erstellen eines Docker-basierten ELK-Protokollsystems. Weitere Informationen zum Erstellen eines ELK-Protokollsystems mit Docker finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: CSS realisiert den Prozessnavigationseffekt (drei Methoden)
>>: Tudou.com Frontend-Übersicht
Umgebungsbeschreibung Serversystem: Ubuntu 18.04 ...
1. MySQL herunterladen Offizielle Website-Downloa...
Im Linux-System können Umgebungsvariablen entspre...
Grundlegende SQL-Anweisungen MySQL-Abfrageanweisu...
Problemhintergrund: Es ist erforderlich, einen Sc...
1. Einleitung Ich habe mein Blog kürzlich aktuali...
Vorwort Ich war kürzlich damit beschäftigt, ein K...
Nachdem ich die Installation von Python8 minimier...
Großes Problem: Löschen Sie nicht einfach die Pyt...
Umgebung: (Docker, K8s-Cluster), fahren Sie mit d...
Nachdem wir im vorherigen Artikel mit OpenSSL ein...
Join-Abfrage Eine Join-Abfrage bezieht sich auf e...
W3C hat kürzlich zwei Standards veröffentlicht, n...
Als ich kürzlich eine mobile Seite entwickelte, s...
Was ist HTML? Um es einfach auszudrücken: HTML wi...