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 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