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:
error
- Szukaj całych fraz:
"connection reset"
- Szukaj kilku słów na raz:
apache 500
- Wyklucz słowo lub frazę:
-debug
-"not found"
Używaj gwiazdek (wildcards), by znaleźć częściowe dopasowania:
- Szukaj wszystkiego, co zaczyna się od:
conn*
"error* on* file*"
Filtrowanie po dacie i czasie:
timestamp>="2017-11-12 13:14:15.667"
timestamp<2017-11-12
date=2017-11-12
Filtrowanie po ścieżce pliku:
path="/var/log/nginx"
path:access
-path:error
Filtrowanie po nazwie pliku:
file="access.log"
file:log
-file:error
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:
sudo apt install bat
alias bat='batcat' # opcjonalne
Przykładowe użycie:
batcat /var/log/nginx/access.log

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 (jakgit 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 ztail -f
, - działa w trybie interaktywnym lub jako generator statycznych stron.
Instalacja:
Na Ubuntu/Debian:
sudo apt install goaccess
Lub z kodu źródłowego (pełna funkcjonalność):
wget https://tar.goaccess.io/goaccess-1.7.2.tar.gz
tar -xzvf goaccess-1.7.2.tar.gz
cd goaccess-1.7.2
./configure --enable-utf8 --enable-geoip=legacy
make
sudo make install
Przykład:
goaccess /var/log/nginx/access.log --log-format=COMBINED -o raport.html
Następnie raport.html możesz otworzyć w przeglądarce.
xdg-open ~/raport.html

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:
pip install requests
Jak używać:
- Zarejestruj się na https://www.abuseipdb.com i wygeneruj darmowy klucz API.
- Dodaj go do zmiennej API_KEY w kodzie.
- Uruchom skrypt:
python3 abuse_checker.py
- 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:
IP: 192.168.1.100
Poziom zagrożenia: 100%
Dostawca: ExampleISP
Typ użycia: Data Center/Web Hosting/Transit
Liczba zgłoszeń: 75
Ostatnie zgłoszenie: 2025-06-20
Kraj: Poland (PL)