1. System: Centos 7
2.Docker 1.12.1
EinführungElasticSearch
Elasticsearch ist eine verteilte Such- und Analysemaschine in Echtzeit, die für die Volltextsuche, strukturierte Suche und Analyse verwendet werden kann. Es handelt sich um eine Suchmaschine, die auf der Volltextsuchmaschine Apache Lucene basiert und in der Sprache Java geschrieben ist.
Logstash
Logstash ist eine Datenerfassungs-Engine mit Echtzeit-Kanalfunktionen. Sie wird hauptsächlich zum Sammeln und Analysieren von Protokollen und zum Speichern dieser in ElasticSearch verwendet.
Kibana
Kibana ist eine Webplattform, die auf dem Open-Source-Protokoll Apache basiert und in der JavaScript-Sprache geschrieben ist und Analysen und Visualisierung für Elasticsearch bietet. Es kann im Index von Elasticsearch suchen, mit Daten interagieren und Tabellen und Diagramme in verschiedenen Dimensionen erstellen.
Filebeat
Filebeat wird als Protokollsammler eingeführt, hauptsächlich um das Problem des hohen Logstash-Overheads zu lösen. Im Vergleich zu Logstash belegt Filebeat nahezu vernachlässigbar wenig System-CPU und -Speicher.
ArchitekturFühren Sie Filebeat nicht ein
Wir stellen vor: Filebeat
BereitstellungElasticSearch starten
docker run -d -p 9200:9200 --name elasticsearch elasticsearch
Logstash starten
# 1. 新建配置文件logstash.conf input { beats { port => 5044 } } output { stdout { codec => rubydebug } elasticsearch { #填写实际情况elasticsearch的访问IP,因为是跨容器间的访问,使用内网、公网IP,不要填写127.0.0.1|localhost hosts => ["{$ELASTIC_IP}:9200"] } } # 2.启动容器,暴露并映射端口,挂载配置文件 docker run -d --expose 5044 -p 5044:5044 --name logstash -v "$PWD":/config-dir logstash -f /config-dir/logstash.conf
Filebeat starten
Download-Adresse: https://www.elastic.co/downloads/beats/filebeat
# 1.下载Filebeat压缩包 wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.2.2-linux-x86_64.tar.gz # 2.解压文件 tar -xvf filebeat-5.2.2-linux-x86_64.tar.gz # 3.新建配置文件filebeat.yml filebeat: prospectors: - paths: - /tmp/test.log #日志文件地址 input_type: log #从文件中读取 tail_files: true #以文件末尾开始读取数据 output: logstash: hosts: ["{$LOGSTASH_IP}:5044"] #填写logstash的访问IP # 4.运行filebeat ./filebeat-5.2.2-linux-x86_64/filebeat -e -c filebeat.yml
Kibana starten
docker run -d --name kibana -e ELASTICSEARCH_URL=http://{$ELASTIC_IP}:9200 -p 5601:5601 kibana
Simulierte Protokolldaten
# 1.创建日志文件 touch /tmp/test.log # 2.向日志文件中写入一条nginx访问日志 echo '127.0.0.1 - - [13/Mar/2017:22:57:14 +0800] "GET / HTTP/1.1" 200 3700 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36" "-"' >> /tmp/test.log
Besuchen Sie http://{$KIBANA_IP}:5601
ZusammenfassungDieser Artikel beschreibt hauptsächlich den schrittweisen Prozess der ELK-Erstellung und die Rolle, die Filebeat dabei spielt.
Hier ist nur eine Demonstration für Sie. Bei der Bereitstellung von Datenvolumina für die Datenpersistenz müssen auch Probleme mit dem Speicher von Elasticsearch und Logstash berücksichtigt werden Bringen Sie Ihren gesamten Server zum Absturz.
Natürlich dürfen Sicherheitsfaktoren wie Übertragungssicherheit, minimierte Offenlegung von Portberechtigungen, Firewall-Einstellungen usw. nicht außer Acht gelassen werden.
NachverfolgungLogstash analysiert Protokollformate wie JAVA, Nginx, NodeJS und andere Protokolle
Gemeinsame Suchsyntax für Elasticsearch;
Erstellen Sie visuelle Diagramme mit Kibana;
Das obige ist der detaillierte Inhalt vonVerwendung von Docker zum Aufbau einer zentralisierten ELK+Filebeat-Protokollverwaltungsplattform. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!