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

Ubuntu 16.04 mysql5.7.17 öffnet Remote-Port 3306

Aktivieren Sie den Remotezugriff auf MySQL MySQL-...

So verwenden Sie CSS-Variablen in JS

So verwenden Sie CSS-Variablen in JS Verwenden Si...

Mobile Frontend-Anpassungslösung (Zusammenfassung)

Ich habe online gesucht und festgestellt, dass in...

Zusammenfassung der Methoden zum Löschen des Cache im Linux-System

1) Einführung in den Cache-Mechanismus Um die Lei...

Docker-Installations- und Konfigurationsschritte für das Redis-Image

Inhaltsverzeichnis Vorwort Umfeld Installieren Er...

Über MySQL innodb_autoinc_lock_mode

Der Parameter innodb_autoinc_lock_mode steuert da...

Detaillierte Erklärung der Lösung für verweigerte Berechtigungen in Linux

Zugriff verweigert: Der Grund hierfür ist: Es lie...

Beispiel für die Verwendung von CASE WHEN beim Sortieren in MySQL

Vorwort In einem früheren Projekt wurde die Sorti...

So zeigen Sie kleine Symbole in der Browsertitelleiste einer HTML-Webseite an

Genau wie dieser Effekt ist auch die Methode sehr...

Mehrere Möglichkeiten zum Kapseln von Breadcrumb-Funktionskomponenten in Vue3

Inhaltsverzeichnis Vorwort 1. Warum brauchen wir ...