In den bisherigen Kapiteln hast du gelernt, Logs mit grep
zu filtern, mit sed
zu bereinigen und mit awk
auszuwerten.
Die wahre Stärke zeigt sich, wenn man diese Werkzeuge miteinander kombiniert – in Pipelines.
So lassen sich Logs mit einem einzigen Befehl filtern, transformieren und analysieren.
🔹 grep + awk → Vorfiltern & Auswerten
Nur Fehlerzugriffe aus einem Apache-Log zählen:
grep " 404 " access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head
👉 grep
filtert 404-Fehler → awk
extrahiert IPs → sort | uniq -c
zählt → sort -nr
sortiert.
🔹 sed + awk → Bereinigen & Summieren
CSV mit Komma als Dezimaltrenner:
Artikel;Preis Apfel;1,20 Banane;0,80 Kirsche;2,50
sed '1d; s/,/./g' sales.csv | awk -F';' '{sum+=$2} END {print "Summe:", sum}'
👉 sed
löscht Kopfzeile & ersetzt Komma → awk
summiert Preise.
🔹 cut + sort + uniq → Felder extrahieren & zählen
SSH-Logins aus auth.log
:
grep "Accepted" auth.log | cut -d' ' -f9 | sort | uniq -c | sort -nr
👉 cut
holt den Usernamen (9. Feld), uniq -c
zählt.
🔹 tr + awk → Zeichen umwandeln & analysieren
Userliste mit Kommas trennen:
Alice,Bob,Charlie,Alice
cat users.txt | tr ',' '\n' | sort | uniq -c
Ausgabe:
2 Alice 1 Bob 1 Charlie
👉 tr
macht aus Kommas Zeilen → sort | uniq -c
zählt.
🔹 Komplettbeispiel: Fehler pro Stunde im Apache-Log
grep " 500 " access.log \ | awk -F: '{print $2":00"}' \ | sort | uniq -c | sort -nr
Ausgabe:
15 14:00 7 13:00 3 12:00
👉 grep
filtert 500er-Fehler → awk
extrahiert Stunde → sort | uniq -c
zählt.
🔹 Komplettbeispiel: Top-IPs, die Fehler erzeugen
grep " 404 " access.log \ | awk '{print $1}' \ | sort | uniq -c | sort -nr | head
Ausgabe:
25 203.0.113.42 10 192.168.1.10 5 10.0.0.5
👉 Damit erkennst du sofort, wer deine Seite „kaputtklickt“.
🔹 Übungen
1. Top-User aus auth.log
- Finde heraus, welcher User die meisten erfolgreichen SSH-Logins hatte.
2. Fehler pro Stunde
- Zähle, wie viele
404
-Fehler in jeder Stunde vorkamen.
3. Durchschnittliche Größe nur erfolgreicher Zugriffe
- Filtere Statuscode
200
, extrahiere$10
(Größe), berechne Durchschnitt mitawk
.
✅ Zusammenfassung
- grep: Vorfilterung nach Mustern.
- sed: Bereinigung & Formatänderung.
- awk: Spaltenweise Analyse & Summen/Durchschnitt.
- cut: Felder extrahieren.
- sort + uniq: Häufigkeiten berechnen.
- tr: Zeichenumwandlungen.
👉 Zusammen ergeben sie ein flexibles Schweizer Taschenmesser für Log-Analysen.
Im nächsten Kapitel (6) machen wir ein Praxisprojekt mit Apache-/Nginx-Access-Logs: Wir erstellen eine komplette Analyse, die die wichtigsten Fragen beantwortet (Top-IPs, häufigste Seiten, Fehlerübersicht)
📚 Inhaltsverzeichnis
👉 Log-Analyse Kapitel 1: Logs im Terminal lesen – cat, less, tail & grep
👉 Log-Analyse Kapitel 2: Filtern mit grep und regulären Ausdrücken
👉 Log-Analyse Kapitel 3: Logs bereinigen mit sed – inkl. Mehrdatei-Änderungen
👉 Log-Analyse Kapitel 4: Logs analysieren mit awk
👉 Log-Analyse Kapitel 5: Logs kombinieren mit grep, sed, awk, sort, uniq & cut
👉 Log-Analyse Kapitel 6: Praxisprojekt – Apache-/Nginx-Access-Logs analysieren
👉 Log-Analyse Kapitel 7: Praxisprojekt – Systemlogs analysieren (auth.log & journalctl)
⭐ Bonus-Kapitel
👉 Log-Analyse Kapitel 8 (Bonus): Eigene Auswertungs-Skripte für Logs schreiben
👉 Log-Analyse Kapitel 9 (Bonus): Logs visualisieren mit CSV & gnuplot