Zentralisiertes Logging: ELK/Opensearch für Web Stacks einsetzen

Zentralisiertes Logging ist ein essenzieller Bestandteil moderner Web-Stacks, um Logs von Webservern, Datenbanken und Applikationen effizient zu sammeln, zu analysieren und zu visualisieren. Mit Tools wie ELK (Elasticsearch, Logstash, Kibana) oder OpenSearch lassen sich große Mengen an Logdaten strukturiert verarbeiten, wodurch Monitoring, Fehlersuche und Sicherheitsanalysen erheblich vereinfacht werden. In diesem Tutorial lernen Sie, wie Sie ELK/OpenSearch in einer Web-Stack-Umgebung einsetzen und konfigurieren.

ELK vs. OpenSearch

ELK besteht aus drei Komponenten:

  • Elasticsearch: Such- und Analyseengine für strukturierte Daten.
  • Logstash: Pipeline für das Parsen, Transformieren und Weiterleiten von Logs.
  • Kibana: Visualisierung und Dashboard-Erstellung.

OpenSearch ist ein Fork von Elasticsearch/Kibana, entwickelt von AWS, mit ähnlicher Funktionalität. Beide Systeme eignen sich für Web-Stack-Logs, unterscheiden sich aber in Lizenz und Features.

Logquelle definieren

Zuerst müssen die zu sammelnden Logs identifiziert werden:

  • Nginx/Apache Access und Error Logs
  • PHP-FPM Logs
  • Datenbank-Logs (MySQL, MariaDB, PostgreSQL)
  • Application Logs (Laravel, Django, Node.js, etc.)

Es empfiehlt sich, ein konsistentes Logformat wie JSON zu verwenden, um Parsing und Analyse zu vereinfachen.

Logstash einrichten

Logstash übernimmt das Parsen und Weiterleiten der Logs an Elasticsearch/OpenSearch.

Grundkonfiguration

input {
  file {
    path => "/var/log/nginx/access.log"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}

filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
}
}

output {
opensearch {
hosts => ["http://localhost:9200"]
index => "nginx-access-%{+YYYY.MM.dd}"
}
}

Die Konfiguration enthält:

  • input: Logdateiquelle
  • filter: Parsen der Logeinträge mittels Grok
  • output: Weiterleitung an OpenSearch/Elasticsearch mit täglichem Index

OpenSearch/Elasticsearch starten

Installation über Paketmanager oder Docker ist möglich. Beispiel Docker:

docker run -d --name opensearch 
  -p 9200:9200 -p 9600:9600 
  -e "discovery.type=single-node" 
  opensearchproject/opensearch:latest

Wichtig ist, dass der Node als Single-Node Cluster konfiguriert ist, wenn keine Hochverfügbarkeit benötigt wird.

Kibana/OpenSearch Dashboards

Für die Visualisierung nutzen Sie Kibana oder OpenSearch Dashboards:

docker run -d --name opensearch-dashboards 
  -p 5601:5601 
  -e "OPENSEARCH_HOSTS=http://localhost:9200" 
  opensearchproject/opensearch-dashboards:latest

Nach dem Start können Sie via Browser auf http://localhost:5601 zugreifen, Index Patterns erstellen und Dashboards bauen.

Logs aus verschiedenen Quellen zentralisieren

Für PHP-FPM, Datenbanken oder App-Logs können weitere Inputs in Logstash definiert werden:

input {
  file { path => "/var/log/php7.4-fpm.log"; type => "php-fpm" }
  file { path => "/var/log/mysql/error.log"; type => "mysql" }
}

So können Logs aus unterschiedlichen Quellen in konsistenten Indizes gesammelt werden.

Performance und Retention

Bei hoher Logdichte sind folgende Punkte wichtig:

  • Index-Rotation: Tägliche oder wöchentliche Indizes
  • Retention-Policy: Alte Logs nach X Tagen löschen
  • Sharding: Elasticsearch/OpenSearch horizontal skalieren
  • Ressourcenplanung: RAM und CPU für Elasticsearch dimensionieren

Alerts und Monitoring

ELK/OpenSearch kann Alarme bei Fehlern oder ungewöhnlichen Zugriffsmustern auslösen. Beispiele:

  • Mehr als 50 Fehler 500 in 5 Minuten → E-Mail-Alert
  • Spike bei 403/429 → mögliche Angriffsversuche erkennen
  • CPU/Memory Metriken der Webserver via Metricbeat integrieren

Security Best Practices

  • TLS für die Kommunikation zwischen Beats/Logstash und Elasticsearch verwenden
  • HTTP Basic Auth oder Benutzerrollen auf Dashboards setzen
  • Logs anonymisieren, falls personenbezogene Daten enthalten sind
  • Firewall-Regeln für ELK/OpenSearch Cluster definieren

Automatisierung

Cronjobs oder Systemd-Services können sicherstellen, dass Logstash und Dashboards automatisch starten und überwacht werden:

[Unit]
Description=Logstash Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/logstash.conf
Restart=always

[Install]
WantedBy=multi-user.target

Fazit

Mit ELK oder OpenSearch lässt sich ein zentralisiertes Logging für Web Stacks effizient umsetzen. Logs werden strukturiert erfasst, analysiert und visualisiert. Durch Dashboards, Alerts und Automatisierung gewinnen Administratoren Echtzeit-Einblicke in den Zustand der Systeme, wodurch Performance, Sicherheit und Troubleshooting deutlich verbessert werden.

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:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

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

Related Articles