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

Was ist ein MySQL-Index? Fragen Sie, wenn Sie es nicht verstehen

Inhaltsverzeichnis Überblick Vom Binärbaum zum B+...

Eine kurze Einführung in die Gesamtstruktur von Tomcat

Tomcat ist weithin als Webcontainer bekannt. Es h...

Tutorial zur Installation und Kennwortkonfiguration von MySQL 5.7.21

Tutorial zur Installation und Kennworteinstellung...

Grafische Installationsschritte für VMware vSphere 6.7 (ESXI 6.7)

Umgebung: VMware VCSA 6.7 (VMware-VCSA-all-6.7.0-...

Detaillierte Erklärung des MySQL-Covering-Index

Konzept Wenn der Index alle Daten enthält, die di...

Verwenden des JS-Timers zum Verschieben von Elementen

Verwenden Sie einen JS-Timer, um ein Element zu e...

Detaillierte Erklärung der wichtigsten Einzigartigkeit von v-for in Vue

Inhaltsverzeichnis 1. DOM-Diff 2. Fügen Sie Eleme...

Vor- und Nachteile des Tabellenlayouts und warum es nicht empfohlen wird

Nachteile von Tabellen 1. Tabellen nehmen mehr Byt...

Docker-Installations-Tutorial zu RocketMQ (am ausführlichsten)

RocketMQ ist eine verteilte, warteschlangenbasier...

Lernhinweise zum WeChat-Applet: Seitenkonfiguration und -routing

Ich habe kürzlich die Entwicklung kleiner Program...

mysql 5.7.5 m15 winx64.zip Installations-Tutorial

So installieren und konfigurieren Sie mysql-5.7.5...