Analiza logów HTTP: CloudVyzor, batcat, goaccess

W dzisiejszych czasach analiza logów serwerowych to nie tylko codzienna praktyka administratora systemu czy devopsa, ale też istotny element diagnostyki, analizy bezpieczeństwa oraz monitorowania ruchu sieciowego. Przedstawię Ci trzy narzędzia, które warto znać: CloudVyzor, batcat, goaccess.


CloudVyzor (cloudvyzor.com) — Prosty, schludny choć…

CloudVyzor LogPad to darmowe narzędzie online do szybkiej analizy logów HTTP bez potrzeby rejestracji. Wspiera również pliki .zip, .gz, potrafi automatycznie wykrywać formaty dat i przeszukiwać duże pliki tekstowe.

CloudVyzor umożliwia bardzo intuicyjne filtrowanie logów — podobnie jak w wyszukiwarkach, ale z dodatkowymi operatorami. Oto jak z tego korzystać:

Szukanie konkretnych słów i fraz:

  • Wpisz po prostu słowo:
  • Szukaj całych fraz:
  • Szukaj kilku słów na raz:
  • Wyklucz słowo lub frazę:

Używaj gwiazdek (wildcards), by znaleźć częściowe dopasowania:

  • Szukaj wszystkiego, co zaczyna się od:

Filtrowanie po dacie i czasie:

Filtrowanie po ścieżce pliku:

Filtrowanie po nazwie pliku:

Dlaczego nie jest rekomendowane:

  • Logi przesyłane są do zewnętrznych serwerów, a polityka prywatności nie daje jasności, czy i kiedy dane są usuwane.
  • Brak wsparcia dla szyfrowania danych „at rest” (w stanie spoczynku).
  • Możliwość narażenia danych osobowych lub logów produkcyjnych.

Dla testów, logów demonstracyjnych lub szybkiego debugowania lokalnie — tak. Dla realnej pracy z danymi produkcyjnymi — zdecydowanie nie.


batcat — kolorowy terminalowy czytnik logów

batcat (alias bat) to ulepszony zamiennik cat, który:

  • dodaje podświetlanie składni,
  • wyświetla numery linii i ramki,
  • obsługuje duże pliki z opcjami --paging,
  • może pokazywać logi jako czysty tekst lub z kolorami.

Instalacja:

Na Ubuntu/Debian:

Przykładowe użycie:


Opcje:

  • --style=<opcje> – wybiera styl wyświetlania:
    • full – domyślny: numery linii, nagłówki, ramki,
    • numbers – tylko numerowanie linii,
    • plain – bez ozdób,
    • grid, header, rule, snip, changes – dodają konkretne elementy layoutu.
  • --theme=<nazwa> – ustawia motyw kolorów. Lista dostępna przez --list-themes.
  • --color=auto|never|always – kontrola, kiedy używać kolorów.
  • --force-colorization – wymusza kolory nawet przy przekierowaniu (|).
  • -l, --language <nazwa> – ustaw ręcznie język podświetlania (np. json, bash, python).
  • -L, --list-languages – pokaż pełną listę wspieranych języków i rozszerzeń.
  • -n, --number – pokazuje tylko numerację linii, bez ramek.
  • -r, --line-range 10:20 – wyświetl tylko określony zakres linii.
  • -H, --highlight-line 15:25 – podświetl wybrane linie innym kolorem tła.

🔍 Porównanie z Git (diff)

  • -d, --diff – pokazuje tylko zmodyfikowane linie względem indeksu Git.
  • --diff-context=N – kontroluje ilość kontekstu wokół zmian (jak git diff -U).

Wszystkie te opcje możesz uruchamiać ręcznie, ale batcat potrafi też automatycznie rozpoznać typ pliku i dobrać odpowiednie podświetlanie składni.

🌐 goaccess — wizualna analiza logów HTTP

goaccess to zaawansowane narzędzie terminalowe i webowe do analizy logów HTTP w czasie rzeczywistym.

Co potrafi:

  • analizuje logi Apache/Nginx (format COMBINED),
  • generuje raporty HTML z wykresami,
  • wspiera dane z stdin oraz z tail -f,
  • działa w trybie interaktywnym lub jako generator statycznych stron.

Instalacja:

Na Ubuntu/Debian:

Lub z kodu źródłowego (pełna funkcjonalność):

Przykład:

Następnie raport.html możesz otworzyć w przeglądarce.

PANELE ANALIZY

OVERALL ANALYZED REQUESTS

Podsumowanie: łączna liczba żądań HTTP, przetworzonych przez GoAccess

Ruch i użytkownicy

  • UNIQUE VISITORS PER DAY - INCLUDING SPIDERS
    Liczba unikalnych odwiedzających każdego dnia (uwzględnia boty/spidery).
  • REQUESTED FILES (URLs)
    Lista najczęściej żądanych URL-i – pliki, ścieżki, strony.
  • STATIC REQUESTS
    Żądania statycznych zasobów (np. .css, .js, .jpg).
  • NOT FOUND URLs (404s)
    Wszystkie błędy 404 – lista niedziałających lub nieistniejących zasobów.
  • VISITOR HOSTNAMES AND IPS
    Adresy IP i hosty odwiedzających (jeśli DNS reverse działa).

Systemy i urządzenia

  • OPERATING SYSTEMS
    Wykryte systemy operacyjne na podstawie User-Agent (np. Windows, Linux, Android).
  • BROWSERS
    Przeglądarki odwiedzających – Chrome, Firefox, Safari itd.

Czas i źródła

  • TIME DISTRIBUTION
    Wykres przedstawiający rozkład ruchu w czasie (np. godziny największego obciążenia).
  • REFERRING SITES
    Strony odsyłające – skąd przyszli użytkownicy (np. Google, Facebook).

Status HTTP

  • HTTP STATUS CODES
    Kod odpowiedzi serwera (np. 200 OK, 404 Not Found, 500 Error).


🚀 Skrypt abuse_checker.py — moje narzędzie do AbuseIPDB

Gwoli wyjaśnienia.

AbuseIPDB to publiczna baza danych adresów IP zgłaszanych jako źródła nadużyć, takich jak ataki sieciowe, spam, skanowanie portów czy próby włamań.

Umożliwia między innymi.

  • sprawdzanie, czy dany adres IP był zgłaszany jako podejrzany,
  • analizę tzw. „abuse confidence score” (poziomu zagrożenia),
  • zgłaszanie własnych incydentów bezpieczeństwa.

Jest wykorzystywana do ochrony systemów, filtrowania ruchu sieciowego i automatycznej analizy logów.

Podczas analizy logów warto zweryfikować, czy pojawiające się wzorce lub adresy IP są potencjalnie niebezpieczne. Jednym ze sposobów jest ręczne sprawdzenie adresu na stronie AbuseIPDB, która udostępnia informacje o zgłoszonych nadużyciach.

Ja jednak korzystam z szybszego rozwiązania — własnego narzędzia, które automatycznie sprawdza adresy IP bezpośrednio przez API.

To narzędzie napisał mi Windsurf do szybkiej analizy adresów. Co może robić ? :

  • ładować adresy IP z pliku,
  • dodawać je ręcznie,
  • wybierać, które IP sprawdzić,
  • pobierać dane z AbuseIPDB (potrzebny darmowy klucz API),
  • generować czytelny raport i zapisać go do pliku.

Instalacja zależności:

Jak używać:

  1. Zarejestruj się na https://www.abuseipdb.com i wygeneruj darmowy klucz API.
  2. Dodaj go do zmiennej API_KEY w kodzie.
  3. Uruchom skrypt:
  1. Korzystaj z menu tekstowego:
    • wczytaj IP z pliku
    • dodaj IP ręcznie
    • sprawdź je przez AbuseIPDB
    • wygeneruj raport

Sam program możesz pobrać tutaj: git clone https://[email protected]/kazoo/abuse/_git/abuse

Przykładowy wynik:

Przewijanie do góry