Analizator logów dla nginx [zamknięty]

13

Mam aplikację internetową działającą z nginx i chciałbym przeanalizować dzienniki, aby uzyskać informacje o tym, ile trafień otrzymuje każdy plik, jakie 404 błędy i inne generujemy błędy (coś, czego Google Analytics nie może dostarczyć).

Zwykle po prostu wstawiałbym awstaty na serwer, ale z nginx, z powodu braku cgi-bin, nie jest to trywialne. Czy istnieje inne trywialne rozwiązanie, aby uzyskać te informacje? Nie mam nic przeciwko temu, aby zapłacić za to podmiot zewnętrzny za tę analizę.

pupeno
źródło

Odpowiedzi:

20

Możesz użyć goaccess do analizy dzienników sieciowych i uzyskać podsumowanie trafień, unikalne adresy IP, najlepsze pliki statyczne, najlepsze 404, różne kody stanu i wiele innych. Wyświetla pierwsze podsumowanie informacji na najwyższym poziomie, a następnie umożliwia interaktywne drążenie każdego głównego rozdziału. Podajesz mu plik dziennika lub potok i jest bardzo szybki.

Odkryłem to tutaj na SF i od tamtej pory zmieniłem sposób patrzenia na dzienniki serwera: zazwyczaj wykonuję oportunistyczną, opartą na problemach analizę logów i byłem niezadowolony z analogów, awstatów i webalizera.

Blau
źródło
Wow, dziękuję za wspomnienie o GoAccess, to jest cholernie niesamowite!
Richie086,
6

Jeśli chcesz ubrudzić rękę, radzę użyć Logstash + ElasticSearch + Kibana .

Może zrobić znacznie więcej niż to, o co prosisz, ale może zrobić to, o co prosisz, a będziesz mieć prawdziwy interfejs do przeglądania dzienników, aby zrozumieć, co się dzieje lub było.

To Kibana demo www

To jest wpis na blogu, który pokazuje, jak skonfigurowano analizę Apache Tomcat za pomocą tej platformy. Możesz po prostu dostosować ją do swoich potrzeb: http://spredzy.wordpress.com/2013/03/02/monitor-your-cluster -of-tomcat-applications-with-logstash-and-kibana /

Spredzy
źródło
1
+1 za właściwą odpowiedź.
Tom O'Connor,
1

W tym tygodniu musiałem używać awstats z Nginx i niekoniecznie musisz używać cgi-bin. Awstats zawiera skrypt awstats_buildstaticpages.pl, który wygeneruje statyczne pliki HTML, które można następnie obsługiwać w Nginx. W przypadku zadania cron regularnie aktualizuję pliki HTML.

/usr/share/doc/awstats/examples/awstats_updateall.pl now -awstatsprog=/usr/lib/cgi-bin/awstats.pl

/usr/share/awstats/tools/awstats_buildstaticpages.pl -update -config=domain.com -dir=/path/to/save/html/files awstatsprog=/usr/lib/cgi-bin/awstats.pl (W zależności od systemu operacyjnego ścieżki mogą się nieco różnić, ale będziesz w stanie znaleźć skrypty)

Aby zapobiec utracie danych podczas rotacji dziennika, możesz dodać ten wiersz do pliku awstats.domain.com.conf:

LogFile="/usr/share/awstats/tools/logresolvemerge.pl /path/to/log/access.domain.tld.log /path/to/log/access.domain.tld.log.1 |"

Skrypt połączy ostatnie 2 dzienniki za każdym razem, gdy pobierasz dziennik w celu aktualizacji danych. Lub możesz dodać hak do Logrotate na Nginx, tak jak tutaj: http://www.bytetouch.com/blog/system-administration/how-to-awstats-installation-and-configuration-on-debian/

użytkownik178412
źródło
0

Zależy od wymaganego poziomu funkcjonalności, ale AFAIK jest możliwe, aby AWStats generował pliki statyczne - więc nie ma potrzeby używania cgi.

Odwrotnie - powinno być możliwe uruchomienie AWStats jako skryptu FastCGI. Powiedziałbym, że nie będzie to zbyt duże hakowanie.

Lis
źródło