Jak analizować wiele plików dziennika gz dla Awstats?

21

Jestem całkiem nowy w awstats i skonfigurowałem Awstats na moim serwerze Apache do analizowania dzienników dostępu Nginx (serwer Nginx jest dla mojej aplikacji Django), jestem w stanie pobrać statystyki, LogFile=/var/log/nginx/access.logale jak analizować wiele dzienników w formacie gzip. Takich jak access.log.1.gz ... access.log.40.gz. Mam wiele dzienników do analizy.

Rakesh
źródło

Odpowiedzi:

29

To, co prawdopodobnie chcesz tutaj zrobić, to raz przeanalizować wszystkie te pliki dziennika, a następnie dalej analizować tylko bieżące pliki dziennika.

Najprostszą rzeczą do zrobienia jest rozpakowanie wszystkich tych plików do jednego pliku, a następnie uruchomienie jednego z nich pliku awstats, a następnie wskazanie pliku awstats na pliku access.log.

awstats zwykle ma skrypt o nazwie logresolvemerge.pl, który może odczytać skompresowane pliki i scali je odpowiednio dla awstats w celu przeprowadzenia analizy.

Aby połączyć wszystkie istniejące, uruchom

perl /usr/share/awstats/tools/logresolvemerge.pl /var/log/nginx/access.log* > /tmp/nginx.tmplog

To zajmie trochę czasu.

Następnie możesz raz uruchomić awstats na tym pliku (odpowiednio ustaw LogFile).

Od tego momentu powinieneś uruchamiać awstaty na najnowszym pliku dziennika - właśnie to robi twoja obecna konfiguracja.

W zależności od tego, jak często uruchamiasz awstats a obracając pliki logów nginx, możesz chcieć, aby odczytał zarówno bieżący, jak i poprzedni. (np. jeśli obracasz pliki dzienników nginx codziennie o godzinie 12, ale codziennie uruchamiasz awstats o 1, to za każdym razem, gdy uruchamia się awstats, plik dziennika będzie zawierał tylko to, co zostało zapisane od ostatniej rotacji). Możesz użyć logresolvemerge.pl w komendzie LogFile w następujący sposób:

LogFile="/usr/share/awstats/tools/logresolvemerge.pl /var/log/nginx/access.log /var/log/nginx/access.log.1.gz |"

Mówi to awstats, aby uruchomiło komendę logresolvemerge.pl z dwoma plikami logów jako parametrami, a awstats przeczyta dane wyjściowe tego skryptu (to właśnie robi potok |

Daniel Lawson
źródło
Nie wiedziałem, że skrypt awstats może obsługiwać potoki w pliku konfiguracyjnym. Nicea + 1.
d -_- b
Uzgodnione - logresolvemerge.plprzesyłanie danych wyjściowych do awstats jest świetnym rozwiązaniem.
Jez
na temat instalacji rurowej patrz stackoverflow.com/questions/13832701/…
brauliobo
7

Alternatywnie możesz użyć analizatora dziennika w czasie rzeczywistym, takiego jak GoAccess. Jest naprawdę szybki i nie musisz rozpakowywać żadnego dziennika.apache & nginx

http://goaccess.prosoftcorp.com/

zcat -f access.log* | goaccess -a -s -b

LUB

zcat access.log.*.gz | goaccess -a -s -b
Szlifierki 12
źródło