InstallierenFilebeat hat Logstash-Forwarder vollständig ersetzt und stellt die neue Generation von Protokollsammlern dar, da es leichter und sicherer ist. Das auf Filebeat + ELK basierende Architekturdiagramm der Bereitstellungslösung sieht wie folgt aus: Softwareversion:
Docker-Compose-DateiVersion: "3" Leistungen: es-master: Containername: es-master Hostname: es-master Bild: elasticsearch:7.5.1 Neustart: immer Häfen: 9200:9200 9300:9300 Bände: - ./elasticsearch/master/conf/es-master.yml:/usr/share/elasticsearch/config/elasticsearch.yml - ./elasticsearch/master/data:/usr/share/elasticsearch/data - ./elasticsearch/master/logs:/usr/share/elasticsearch/logs Umfeld: – „ES_JAVA_OPTS=-Xms512m -Xmx512m“ es-slave1: Containername: es-slave1 Bild: elasticsearch:7.5.1 Neustart: immer Häfen: 9201:9200 - 9301:9300 Bände: - ./elasticsearch/slave1/conf/es-slave1.yml:/usr/share/elasticsearch/config/elasticsearch.yml - ./elasticsearch/slave1/data:/usr/share/elasticsearch/data - ./elasticsearch/slave1/logs:/usr/share/elasticsearch/logs Umfeld: – „ES_JAVA_OPTS=-Xms512m -Xmx512m“ es-slave2: Containername: es-slave2 Bild: elasticsearch:7.5.1 Neustart: immer Häfen: - 9202:9200 - 9302:9300 Bände: - ./elasticsearch/slave2/conf/es-slave2.yml:/usr/share/elasticsearch/config/elasticsearch.yml - ./elasticsearch/slave2/data:/usr/share/elasticsearch/data - ./elasticsearch/slave2/logs:/usr/share/elasticsearch/logs Umfeld: – „ES_JAVA_OPTS=-Xms512m -Xmx512m“ kibana: Containername: Kibana Hostname: Kibana Bild: kibana:7.5.1 Neustart: immer Häfen: -5601:5601 Bände: - ./kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml Umfeld: - elasticsearch.hosts=http://es-master:9200 hängt ab von: -es-master -es-slave1 -es-slave2 # Dateibeat: # # Containername # container_name: filebeat # # Hostname # Hostname: Filebeat # # Bild: docker.elastic.co/beats/filebeat:7.5.1 # # Neustartmechanismus# Neustart: immer # # Dauerhafte Einbindungen # Datenträger: # - ./filebeat/conf/filebeat.yml:/usr/share/filebeat/filebeat.yml ## Dem Container zugeordnet [als Datenquelle] # - ./logs:/home/projekt/spring-boot-elasticsearch/logs # - ./filebeat/logs:/usr/share/filebeat/logs # - ./filebeat/data:/usr/share/filebeat/data # # Verbinden Sie den angegebenen Container mit der aktuellen Verbindung. Sie können einen Alias festlegen, um zu vermeiden, dass der Container aufgrund dynamischer Änderungen der IP-Adresse nicht verbunden werden kann. # Links: # - Logstash # # Abhängigkeitsdienst [optional] # hängt ab von: # - es-master # - es-slave1 # - es-slave2 Protokollspeicher: Containername: Logstash Hostname: logstash Bild: logstash:7.5.1 Befehl: logstash -f ./conf/logstash-filebeat.conf Neustart: immer Bände: # Zuordnung zum Container - ./logstash/conf/logstash-filebeat.conf:/usr/share/logstash/conf/logstash-filebeat.conf - ./logstash/ssl:/usr/share/logstash/ssl Umfeld: - elasticsearch.hosts=http://es-master:9200 # Beheben Sie den Verbindungsfehler beim Logstash-Monitoring – xpack.monitoring.elasticsearch.hosts=http://es-master:9200 Häfen: -5044:5044 hängt ab von: -es-master -es-slave1 -es-slave2
es-master.yml # Clustername cluster.name: es-cluster #KnotennameKnoten.name: es-master # Ob es ein Masterknoten werden kann.ode.master: true # Ob dem Knoten das Speichern von Daten erlaubt werden soll, standardmäßig aktiviert node.data: false # Netzwerkbindung network.host: 0.0.0.0 # Legen Sie den HTTP-Port für externe Dienste fest http.port: 9200 # Stellen Sie den TCP-Port für die Kommunikation zwischen Knoten ein transport.port: 9300 # Cluster-Erkennung discovery.seed_hosts: -es-master -es-slave1 -es-slave2 # Geben Sie manuell den Namen oder die IP-Adresse aller Knoten an, die Masterknoten werden können. Diese Konfigurationen werden bei der ersten Wahl cluster.initial_master_nodes berechnet: -es-master # Unterstützt domänenübergreifenden Zugriff http.cors.enabled: true http.cors.allow-origin: "*" # Sicherheitsauthentifizierung xpack.security.enabled: false #http.cors.allow-headers: "Autorisierung" es-slave1.yml # Clustername cluster.name: es-cluster #KnotennameKnoten.name: es-slave1 # Ob es ein Masterknoten werden kann.ode.master: true # Ob dem Knoten das Speichern von Daten erlaubt werden soll, standardmäßig aktiviert node.data: true # Netzwerkbindung network.host: 0.0.0.0 # Legen Sie den HTTP-Port für externe Dienste fest http.port: 9201 # Stellen Sie den TCP-Port für die Kommunikation zwischen Knoten ein #transport.port: 9301 # Cluster-Erkennung discovery.seed_hosts: -es-master -es-slave1 -es-slave2 # Geben Sie manuell den Namen oder die IP-Adresse aller Knoten an, die Masterknoten werden können. Diese Konfigurationen werden bei der ersten Wahl cluster.initial_master_nodes berechnet: -es-master # Unterstützt domänenübergreifenden Zugriff http.cors.enabled: true http.cors.allow-origin: "*" # Sicherheitsauthentifizierung xpack.security.enabled: false #http.cors.allow-headers: "Autorisierung" es-slave2.yml # Clustername cluster.name: es-cluster #KnotennameKnoten.name: es-slave2 # Ob es ein Masterknoten werden kann.ode.master: true # Ob dem Knoten das Speichern von Daten erlaubt werden soll, standardmäßig aktiviert node.data: true # Netzwerkbindung network.host: 0.0.0.0 # Legen Sie den HTTP-Port für externe Dienste fest http.port: 9202 # Stellen Sie den TCP-Port für die Kommunikation zwischen Knoten ein #transport.port: 9302 # Cluster-Erkennung discovery.seed_hosts: -es-master -es-slave1 -es-slave2 # Geben Sie manuell den Namen oder die IP-Adresse aller Knoten an, die Masterknoten werden können. Diese Konfigurationen werden bei der ersten Wahl cluster.initial_master_nodes berechnet: -es-master # Unterstützt domänenübergreifenden Zugriff http.cors.enabled: true http.cors.allow-origin: "*" # Sicherheitsauthentifizierung xpack.security.enabled: false #http.cors.allow-headers: "Autorisierung" logstash-filebeat.conf Eingabe { # Quellbeats schlägt { # Port-Port => "5044" ssl_certificate_authorities => ["/usr/share/logstash/ssl/ca.crt"] ssl_certificate => "/usr/share/logstash/ssl/server.crt" ssl_key => "/usr/share/logstash/ssl/server.key" ssl_verify_mode => "Peer_erzwingen" } } # Analyse- und Filter-Plugins, mehrere Filter sind möglich { grok { Übereinstimmung => { "Nachricht" => "%{COMBINEDAPACHELOG}"} } geoip Quelle => "ClientTip" } } Ausgabe { # Elasticsearch auswählen elastische Suche Hosts => ["http://es-master:9200"] index => "%{[Felder][Dienst]}-%{[@Metadaten][Version]}-%{+JJJJ.MM.tt}" } } filebeat.yml Dateibeat.Eingaben: - Typ: Protokoll aktiviert: true Pfade: # Alle .log-Dateien im aktuellen Verzeichnis - /root/tmp/logs/*.log Felder: Dienst: "our31-java" mehrzeiliges Muster: ^\[ multiline.negate: true multiline.match: nach - Typ: Protokoll aktiviert: true Pfade: # Alle .log-Dateien im aktuellen Verzeichnis - /root/tmp/log/*.log Felder: Dienst: „our31-nginx“ Dateibeat.config.modules: Pfad: ${path.config}/modules.d/*.yml reload.enabled: falsch # setup.template.einstellungen: # index.Anzahl_der_Scherben: 1 # setup.dashboards.enabled: false # setup.kibana: # Host: "http://localhost:5601" # Nicht direkt an ES übertragen #Ausgabe.elasticsearch: # Hosts: ["http://es-master:9200"] # index: "filebeat-%{[beat.version]}-%{+yyyy.MM.dd}" setup.ilm.enabled: false Ausgabe.logstash: Hosts: ["logstash.server.com:5044"] # Optionales SSL. Standardmäßig deaktiviert. # Liste der Stammzertifikate für HTTPS-Serverüberprüfungen ssl.Zertifikatsautoritäten: "./ssl/ca.crt" # Zertifikat für SSL-Client-Authentifizierung ssl.Zertifikat: "./ssl/client.crt" # Client-Zertifikatschlüssel ssl.key: "./ssl/client.key" # Prozessoren: # - Host-Metadaten hinzufügen: ~ # - add_cloud_metadata: ~ Beachten Generieren Sie ein Zertifikat, konfigurieren Sie SSL und richten Sie SSL zwischen Filebeat und Logstash ein. #Generieren Sie einen privaten CA-Schlüssel openssl genrsa 2048 > ca.key #Verwenden Sie den privaten CA-Schlüssel, um das CA-Zertifikat zu erstellen openssl req -new -x509 -nodes -key ca.key -subj /CN=elkCA\ CA/OU=Development\ group/O=HomeIT\ SIA/DC=elk/DC=com > ca.crt #Server-CSR-Zertifikatanforderungsdatei generieren openssl req -newkey rsa:2048 -nodes -keyout server.key -subj /CN=logstash.server.com/OU=Development\ group/O=Home\ SIA/DC=elk/DC=com > server.csr #Verwenden Sie CA-Zertifikat und privaten Schlüssel, um Serverzertifikat auszustellen openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 > server.crt #Client-CSR-Zertifikatanforderungsdatei generieren openssl req -newkey rsa:2048 -nodes -keyout client.key -subj /CN=filebeat.client.com/OU=Development\ group/O=Home\ SIA/DC=elk/DC=com > client.csr #Verwenden Sie CA-Zertifikat und privaten Schlüssel, um Client-Zertifikat auszustellen openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 > client.crt Denken Sie daran, das Zertifikat im entsprechenden Ordner abzulegen. Der in Dynamisches Generieren von Indizes basierend auf verschiedenen Servern, verschiedenen Diensten und verschiedenen Daten Im obigen Bild werden einige benutzerdefinierte Attribute hinzugefügt. Diese Attribute werden an Logstash übergeben, das diese Attribute übernimmt und dynamisch Indizes in Elasticsearch erstellt, wie unten gezeigt:
Ursprünglich wollte ich hier Indizes dynamisch generieren, aber laut der offiziellen Konfiguration hat das nicht geklappt. Kann mir jemand sagen, warum? Verwenden Sie die Nginx Http Basic-Autorisierung, um die Anmeldung bei Kibana zu verlangen Verwenden Sie zunächst das Tool $ yum -y installiere httpd-tools Erstellen einer neuen Kennwortdatei Zusätzliche Benutzerinformationen: Konfigurieren Sie abschließend Nginx: Server { ...... auth_basic "Kibana-Authentifizierung"; auth_basic_user_file /usr/local/nginx/pwd/kibana/passwd; ...... } So starten Sie Filebeat separat $ nohup ./filebeat 2>&1 & Starten Sie Docker Compose Führen Sie es im Verzeichnis aus, in dem sich $ docker-compose up --build -d Dies ist das Ende dieses Artikels über die Implementierung der ELK-Bereitstellung mit einem Klick mit Docker Compose. Weitere Informationen zur ELK-Bereitstellung mit Docker Compose finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
>>: Anfänger lernen einige HTML-Tags (2)
Hinweis: Wenn der Artikel Fehler enthält, hinterl...
Vorwort Vue (ausgesprochen /vjuː/, ähnlich wie vi...
Inhaltsverzeichnis 1. RegExp-Objekt 2. Grammatik ...
1. CSS-Navigationsleiste (1) Funktion der Navigat...
Beachten! ! ! Wählen Sie * vom Benutzer, wobei di...
Inhaltsverzeichnis Spezifikation a. Die Auslageru...
Die Gesamtarchitektur von NGINX ist durch eine Re...
Mit der Anweisung „Truncate table“ werden alle Da...
Methode 1: Bitte fügen Sie den folgenden Code nach...
In diesem Artikel wird hauptsächlich erläutert, w...
Vorwort In diesem Artikel wird erklärt, wie Vue-K...
Deinstallieren Sie MariaDB CentOS7 installiert st...
Seitendesigns im dunklen Hintergrundstil sind seh...
In vielen Projekten muss eine Countdown-Funktion ...
Die automatische Inkrementierung der Primärschlüs...