Site icon bintorosoft.com

ELK/Opensearch Stack mit Docker Compose: Logs zentral sammeln

Ein zentraler Logging-Stack wie ELK (Elasticsearch, Logstash, Kibana) oder OpenSearch ermöglicht die Erfassung, Aggregation und Visualisierung von Logs aus unterschiedlichen Systemen und Containern. Mit Docker Compose lässt sich dieser Stack einfach auf Linux aufsetzen, inklusive persistenter Volumes, Netzwerke und konfigurierbarer Ports. Dieses Tutorial zeigt praxisnah, wie ein stabiler, updatefähiger Logging-Stack aufgebaut wird.

Grundkomponenten eines ELK/Opensearch-Stacks

Ein typischer Logging-Stack besteht aus mehreren Diensten:

Volumes für Persistenz

Persistente Volumes sichern Indizes, Konfigurationen und Dashboards, sodass sie auch nach Neustarts der Container erhalten bleiben.

volumes:
  elasticsearch_data:
  logstash_config:
  kibana_data:

Netzwerke für interne Kommunikation

Ein separates Netzwerk ermöglicht sichere Kommunikation zwischen Elasticsearch, Logstash und Kibana.

networks:
  logging_net:

Beispiel: docker-compose.yml für ELK

version: '3.8'

services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:8.10.0
container_name: elasticsearch
environment:
- discovery.type=single-node
- ES_JAVA_OPTS=-Xms512m -Xmx512m
volumes:
- elasticsearch_data:/usr/share/elasticsearch/data
ports:
- "9200:9200"
- "9300:9300"
networks:
- logging_net

logstash:
image: docker.elastic.co/logstash/logstash:8.10.0
container_name: logstash
volumes:
- logstash_config:/usr/share/logstash/pipeline
ports:
- "5000:5000"
networks:
- logging_net
depends_on:
- elasticsearch

kibana:
image: docker.elastic.co/kibana/kibana:8.10.0
container_name: kibana
ports:
- "5601:5601"
networks:
- logging_net
depends_on:
- elasticsearch

Beispiel: docker-compose.yml für OpenSearch

version: '3.8'

services:
opensearch:
image: opensearchproject/opensearch:2.10.1
container_name: opensearch
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- elasticsearch_data:/usr/share/opensearch/data
ports:
- "9200:9200"
- "9600:9600"
networks:
- logging_net

opensearch_dashboards:
image: opensearchproject/opensearch-dashboards:2.10.1
container_name: opensearch_dashboards
ports:
- "5601:5601"
networks:
- logging_net
depends_on:
- opensearch

logstash:
image: docker.elastic.co/logstash/logstash:8.10.0
container_name: logstash
volumes:
- logstash_config:/usr/share/logstash/pipeline
ports:
- "5000:5000"
networks:
- logging_net
depends_on:
- opensearch

Erklärungen zur Compose-Datei

Start und Verwaltung des Logging-Stacks

Starten Sie den Stack mit:

docker-compose up -d

Zum Stoppen und Entfernen aller Container, Netzwerke und Volumes:

docker-compose down -v

Best Practices

Praxisbeispiele

ELK-Stack starten

docker-compose up -d

OpenSearch-Stack starten

docker-compose up -d

Logs überwachen

docker-compose logs -f elasticsearch
docker-compose logs -f logstash
docker-compose logs -f kibana

Rollback auf vorherige Version

docker service update --image docker.elastic.co/elasticsearch/elasticsearch:8.9.0 elasticsearch_service
docker service update --image opensearchproject/opensearch:2.9.0 opensearch_service

Updatefähigkeit

Versionierte Docker Images ermöglichen einfache Updates für Elasticsearch, Logstash und Kibana bzw. OpenSearch. Persistente Volumes sichern Indizes, Pipelines und Dashboards, sodass diese nach Updates erhalten bleiben.

docker-compose pull
docker-compose up -d

Zusammenfassung

Mit Docker Compose lässt sich ein ELK- oder OpenSearch-Stack auf Linux schnell, sicher und updatefähig betreiben. Persistente Volumes, interne Netzwerke und Best Practices wie Backups, Monitoring und Alerts sorgen für einen stabilen und wartbaren Betrieb. Versionierte Images erleichtern Updates und Rollbacks, wodurch ein zuverlässiges zentrales Logging gewährleistet wird.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Exit mobile version