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: Logdateiquellefilter: Parsen der Logeinträge mittels Grokoutput: 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.

