Mam kilka plików dziennika Apache, które chciałbym przeanalizować. Szukam narzędzia, które nie wymaga dużej konfiguracji; coś, co mogę uruchomić dziennik za pomocą wiersza polecenia, bez bałaganu na naszych serwerach internetowych na żywo.
Jakieś rekomendacje?
apache-2.2
log-files
analytics
mmattax
źródło
źródło
Odpowiedzi:
Chociaż wszystkie powyższe narzędzia są fajne, myślę, że wiem, o co pytał pytający. Często boli mnie, że nie mogę wyciągnąć informacji z dziennika dostępu w sposób, w jaki mogę to zrobić z innymi plikami.
Wynika to z głupiego formatu dziennika dostępu:
127.0.0.1 - - [16/Aug/2014:20:47:29 +0100] "GET /manual/elisp/index.html HTTP/1.1" 200 37230 "http://testlocalhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0"
Dlaczego użyli [] do daty i „” do innych celów? czy myśleli, że nie wiedzielibyśmy, że data jest w polu 4? To niezwykle frustrujące.
Obecnie najlepszym narzędziem do tego jest gawk:
gawk 'BEGIN { FPAT="([^ ]+)|(\"[^\"]+\")|(\\[[^\\]]+\\])" } { print $5 }'
na powyższych danych dałoby to:
Innymi słowy, FPAT daje możliwość wyciągnięcia pól dziennika apache, tak jakby były rzeczywistymi polami, a nie tylko jednostkami oddzielonymi spacjami. Tego zawsze chcę. Następnie mogę to jeszcze bardziej przeanalizować za pomocą potoku.
Tworzenie FSPAT jest zdefiniowane tutaj: http://www.gnu.org/software/gawk/manual/html_node/Splitting-By-Content.html
Możesz więc ustawić alias, aby utworzyć gawk, który może analizować dzienniki Apache:
alias apacheawk="gawk -vFPAT='([^ ]+)|(\"[^\"]+\")|(\\\\[[^\\\\]]+\\\\])' " apacheawk '$6 ~ /200/ { print $5 } | sort | uniq
zrobił to dla mnie:
i oczywiście prawie wszystko inne jest teraz możliwe.
Cieszyć się!
źródło
awk '($9 == 200) {print $6,$7,$8}'
wyświetlić to samo, co w przykładzie. Nie trzeba tam używać FPAT (chociaż ta metoda może być przydatna w innych przypadkach)wtop jest fajny. Są też inne narzędzia. Często parsuję logi za pomocą bash, sed i awk.
źródło
apachetop jest całkiem fajny; drukuje statystyki na żywo. Uruchamiasz to z
Aby zainstalować go w Debian / Ubuntu:
lub ze źródła: https://github.com/JeremyJones/Apachetop
źródło
Jakiego rodzaju wyników chcesz?
Jeśli chcesz tylko policzyć, grep coś logfile.txt | wc -l działa świetnie. Jeśli chcesz ładne wykresy ... nie tak bardzo.
źródło
jeśli masz stację roboczą z systemem Windows, której możesz użyć, to logparser jest narzędziem z wyboru!
źródło
Analog działa dobrze po wyjęciu z pudełka i nie wymaga dużej konfiguracji. logwrangler to pakiet, który działa z analogiem w celu generowania ładniejszego wyjścia, a także wymaga niewielkiej konfiguracji.
źródło
Zamiast korzystać z narzędzia wiersza polecenia, proponuję spróbować Apache Logs Viewer. To bezpłatne narzędzie, które może monitorować i analizować plik dziennika Apache. Może generować całkiem fajne wykresy i raporty w locie.
Więcej informacji z http://www.apacheviewer.com
źródło