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 -nrAusgabe:
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 | headAusgabe:
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 mit awk.
✅ 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