Mam kilka plików dziennika 2-8 GB z usługi, którą prowadzę. Zwykle te pliki dziennika są mniejsze niż to (więcej rzędu 50–250 MB).
Chciałbym je przeanalizować i podsumować, aby dowiedzieć się, co się dzieje.
Czy są jakieś narzędzia, które pomogą to zautomatyzować, lub przynajmniej dać pierwsze przejście? Zastanawiam się nad użyciem head, awk, cut, grep itp., Ale nie są one zbyt automatyczne.
Odpowiedzi:
Czy próbowałeś odłamać? http://www.splunk.com/
źródło
Znalazłem, że kombinacja
grep
,cut
,sort
,uniq
,head
, itail
są pomocne dla dziennika inspekcji, jednorazowej ad-hoc.Sprawdź górę pliku dziennika
Wygląda na to, że każda linia zaczyna się od daty / godziny.
Usuń znacznik czasu
Korzystam z
cut
polecenia, aby zachować pola 3 i nowsze oraz użyć spacji jako separatora.Przytnij do niezmiennej części linii
Miałem przeczucie, że większość nadmiarowych wierszy wyjściowych będzie miała podobny tekst, więc przyciąłem wynik do pierwszych 20 znaków po znaczniku czasu.
Sortuj i znajdź największe liczby
Następnie posortowałem, policzyłem i posortowałem liczby, aby znaleźć, które linie występowały najczęściej.
Wygląda na to, że moja naiwna technika usuwania znaczników czasu narzuciła kilka użytecznych (niezwiązanych ze znacznikiem czasu) informacji w kilku liniach, pozostawiając mi raczej nagie liczby.
Wygląda jednak na to, że wszystkie występowały z tą samą częstotliwością i rzędem wielkości częściej niż cokolwiek innego, więc znalazłem moich podejrzanych.
Zasięg 20 znaków to przeczucie, a nie trudna zasada. Być może trzeba będzie uruchomić ten krok wiele razy, aby znaleźć najsłodsze miejsce oddzielające niezwykłe linie.
Szukaj kandydatów w kontekście
Teraz, gdy mam już listę potencjalnych kandydatów, mogę ich szukać w kontekście przy użyciu
grep
opcji-C#
linii kontekstu:Podejście Monte-Carlo - sprawdź środek pliku dziennika
Jeśli powyższe podejście nie działa, spróbuj spojrzeć na różne miejsca w pliku.
Wygląda na to, że w tym pliku znajduje się około 1,6 miliona linii, więc spojrzałem na linię 800k.
Potwierdziło to wyniki mojego podejścia sortowania i liczenia.
Powodzenie!
W tym przypadku wynik był spowodowany pozostawieniem nadmiaru rejestrowania debugowania w naszych plikach konfiguracyjnych.
Konieczne będzie dostosowanie tego podejścia do konkretnego pliku dziennika, ale główne klucze to:
źródło
Jeśli chcesz analizować plik podczas rozwijania, możesz uzyskać zgrabny wynik za pomocą logtop :
Najbardziej wymagający adres IP:
Najczęściej żądany adres URL (jeśli adres URL to 7. pole, to plik?)
źródło