Beispielcode zum Bereitstellen von ELK mit Docker-Compose

Beispielcode zum Bereitstellen von ELK mit Docker-Compose

Umfeld

  1. Host-IP 192.168.0.9
  2. Docker-Version 19.03.2
  3. Docker-Compose Version 1.24.0-rc1
  4. elasticsearch Version 6.6.1
  5. Kibana-Version 6.6.1
  6. Logstash Version 6.6.1

1. Schreiben von ELK-Dockerfile-Dateien und Konfigurationsdateien

● elastische Suche

1. elasticsearch-Dockerdatei

VON centos:latest
Füge elasticsearch-6.6.1.tar.gz /usr/local/ hinzu
KOPIEREN Sie elasticsearch.yml /usr/local/elasticsearch-6.6.1/config/
KOPIEREN Sie jdk1.8 /usr/local/
ENV JAVA_HOME=/usr/local/jdk1.8
ENV CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
ENV PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
RUN groupadd elsearch && \
Benutzeradd elsearch -g elsearch -p elasticsearch && \
chown -R elsearch:elsearch /usr/local/elasticsearch-6.6.1 && \
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/shanghai" > /etc/Zeitzone && \
yum installiere welches -y && \
mkdir /opt/data && \
mkdir /opt/logs
AUSSETZEN 9200 9300
#Wechseln Sie hauptsächlich zum Elsearch-Benutzer, um es zu starten
BENUTZER elsesearch
ARBEITSVERZEICHNIS /usr/local/elasticsearch-6.6.1/bin/
EINSTIEGSPUNKT ["./elasticsearch"]

2. elasticsearch.yml

[root@localhost elasticsearch]# egrep "^[^#]" elasticsearch.yml 
Clustername: es-cluster
Knotenname: Knoten-1
Pfad.Daten: /opt/data
Pfad.logs: /opt/logs
Netzwerkhost: 0.0.0.0
http.port: 9200
cluster.routing.allocation.disk.threshold_enabled: wahr
cluster.routing.allocation.disk.watermark.low: 94 %
cluster.routing.allocation.disk.watermark.high: 96 %
cluster.routing.allocation.disk.watermark.flood_stage: 98 %
Entdeckung.zen.minimum_master_nodes: 1

● Logstash

1. logstash-dockerfile

VON centos:latest
Füge logstash-6.6.1.tar.gz /usr/local/ hinzu
KOPIEREN Sie logstash.yml /usr/local/logstash-6.6.1/config/
KOPIEREN Sie logstash.conf /usr/local/logstash-6.6.1/config/
KOPIEREN Sie jdk1.8 /usr/local/
KOPIEREN start.sh /start.sh
ENV JAVA_HOME=/usr/local/jdk1.8
ENV CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
ENV PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
RUN mkdir /opt/data && \
mkdir /opt/logs && \
chmod +x /start.sh
EINSTIEGSPUNKT ["/start.sh"]

2. logstash-start.sh

#!/bin/bash
/usr/local/logstash-6.6.1/bin/logstash -f /usr/local/logstash-6.6.1/config/logstash.conf

3. logstash.yml

[root@localhost logstash]# egrep "^[^#]" logstash.yml 
Pfad.Daten: /opt/data
Pfad.logs: /opt/logs
pipeline.batch.size: 200

4. logstash.conf

Eingabe {
 Datei {
  Pfad => "/usr/local/nginx/logs/access.log"
  Typ => "nginx"
  start_position => "Anfang"
  sincedb_path => "/dev/null"
 }
 Datei {
  Pfad => "/var/log/secure"
  Typ => "sicher"
  start_position => "Anfang"
  sincedb_path => "/dev/null"
 }
}
#Eine ausführliche Beschreibung finden Sie in meinem vorherigen Blog-Filter {
  grok {
    Übereinstimmung => {
      "message" => '(? <Clientip> [0-9] {1,3} \. [0-9] {1,3} \. 2} \: [0-9] {2} \: [0-9] {2} \+[0-9]*\]) "(? > [^] | (http | https): // [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \. [0-9] {1,3} \/) "" (?
    }
     remove_field => ["Nachricht", "Protokoll", "Beat", "Offset", "Prospektor", "Host", "@Version"]
  }
}
#output zeigt auf die Ausgabe des es-Containers {
 wenn [Typ] == "nginx" {
 elastische Suche
  Hosts => ["es:9200"]
  index => "nginx-%{+JJJJ.MM.tt}"
    }
   }
 sonst wenn [Typ] == "sicher" {
  elastische Suche
  Gastgeber => ["es:9200"]
  index => "sicher-%{+JJJJ.MM.tt}"
    }
   }
 }

● Kibana

1. Kibana-Dockerdatei

VON centos:latest
HINZUFÜGEN von kibana-6.6.1-linux-x86_64.tar.gz /usr/local/
KOPIEREN Sie kibana.yml /usr/local/kibana-6.6.1-linux-x86_64/config/
KOPIEREN start.sh /start.sh
AUSFÜHREN chmod +x /start.sh
EXPOSE 5601
EINSTIEGSPUNKT ["/start.sh"]

2. kibana.yml

[root@localhost kibana]# egrep "^[^#]" kibana.yml 
Server-Port: 5601
server.host: "0.0.0.0"
#Zeigen Sie auf Port 9200 des es-Containers elasticsearch.hosts: ["http://es:9200"]

3. kibana-start.sh

#!/bin/bash
/usr/local/kibana-6.6.1-linux-x86_64/bin/kibana

2. Docker-Compose, YML-Datei schreiben

[root@localhost elk_dockerfile]# cat docker-compose.yml 

Version: '3.7'
Leistungen:
 elastische Suche:
  Bild: elasticsearch:elk
  container_name: es
  Netzwerke:
   -Elch
  Bände:
   – /opt/Daten:/opt/Daten
   – /opt/logs:/opt/logs
  exponieren:
   - 9200
   - 9300
  Neustart: immer
  hängt ab von:
   - Logstash
   -kibana
 Protokollspeicher:
  Bild: logstash:elk
  Containername: Logstash
  Netzwerke:
   -Elch
  Bände:
   – /opt/logstash/data/:/op/data
   – /opt/logstash/logs/:/opt/logs
   - /opt/elk/elk_dockerfile/logstash/logstash.conf:/usr/local/logstash-6.6.1/config/logstash.conf
   – /usr/local/nginx/logs:/usr/local/nginx/logs
   – /var/log/sichern:/var/log/sichern
  Neustart: immer
 kibana:
  Bild: kibana:elk
  Containername: Kibana
  Häfen:
   -5601:5601
  Netzwerke:
   -Elch
  Bände:
   - /opt/elk/elk_dockerfile/kibana/kibana.yml:/usr/local/kibana-6.6.1-linux-x86_64/config/kibana.yml
Netzwerke:
 Elch:

Die Compiler-Dateiversion verweist auf

3. Zugriffsschnittstelle

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So erstellen Sie schnell ELK basierend auf Docker
  • Eine kurze Zusammenfassung der Praxis der Verbindung des Node-Frameworks mit ELK
  • Beispiel für die Verwendung von Docker zum Erstellen eines ELK-Protokollsystems
  • Detaillierte Analyse des ELK-Prinzips und Einführung

<<:  Der einfachste Weg, MySQL 5.7.20 mit yum in CentOS 7 zu installieren

>>:  So ändern Sie das Kennwort von mysql5.7.20 unter Linux CentOS 7.4

Artikel empfehlen

Benutzerdefinierte Docker-Netzwerkcontainer-Verbindung

Inhaltsverzeichnis Vorwort -Link Benutzerdefinier...

Lösung für das Problem des MySQL-Datenverzögerungssprungs

Heute haben wir ein weiteres typisches Problem im...

Zusammenfassung der Verwendung von vue Watch und Computed

Inhaltsverzeichnis 01. Hörer beobachten (1) Funkt...

Beispielerklärung von MySQL-Fremdschlüsseleinschränkungen

Die Fremdschlüsseleinschränkung von MySQL dient z...

So kapseln Sie Abfragekomponenten basierend auf Element-UI Schritt für Schritt

Inhaltsverzeichnis Funktion Grundlegende Abfragef...

HTML-Tutorial: Definitionsliste

<br />Originaltext: http://andymao.com/andy/...

Mehrere Methoden zum Löschen von Floating (empfohlen)

1. Fügen Sie ein leeres Element desselben Typs hi...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.11 (Win10)

In diesem Artikel werden die Installations- und K...

Bestimmte Vorgänge der geplanten MySQL-Löschung von Sicherungsdaten

1|0 Hintergrund Aufgrund von Projektanforderungen...

CSS HACK für IE6/IE7/IE8/IE9/FF (Zusammenfassung)

Seit ich die offizielle Version von IE8.0 install...

Elemente der Benutzererfahrung oder Elemente des Webdesigns

System- und Benutzerumgebungsdesign <br />D...

Die Rolle und Öffnung des MySQL-Protokolls für langsame Abfragen

Vorwort Das MySQL Slow Query Log ist ein Protokol...

Implementierung von webpack-dev-server zum Erstellen eines lokalen Servers

Inhaltsverzeichnis Vorwort Webpack-Deb-Server Sta...