Awstats için birden fazla gz günlük dosyası nasıl analiz edilir?


21

Awstats için oldukça yeniyim ve apache web sunucumdaki Awstats'ı nginx erişim günlüklerini (nginx web sunucusu benim django uygulamam için) analiz edecek şekilde yapılandırdım, LogFile=/var/log/nginx/access.logancak istatistikleri alabilirim ama nasıl gzip biçiminde birden fazla Log'u analiz edebilirim. Access.log.1.gz ... access.log.40.gz gibi. Analiz edilecek çok fazla günlüküm var.

Yanıtlar:


29

Muhtemelen burada yapmak istediğiniz şey, tüm bu günlük dosyalarını bir kez analiz etmektir, daha sonra sadece geçerli günlük dosyalarını analiz etmeye devam etmelidir.

Yapılacak en basit şey, tüm bu dosyaları tek bir dosyaya açmak, ardından bir kez üzerinde awstats çalıştırmak, sonra awstats'ı o zamandan sonra access.log dosyanıza yönlendirmektir.

awstats normalde sıkıştırılmış dosyaları okuyabilen logosolvemerge.pl adlı bir betiğe sahiptir ve awstatların analsiyi yapmaları için uygun şekilde birleştirir.

Mevcut olanlarınızı birleştirmek için çalıştırın

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

Bu muhtemelen biraz zaman alacaktır.

Daha sonra awstats'ın bu dosya üzerinde bir kez çalışmasını sağlayabilirsiniz (LogFile'ı uygun şekilde ayarlayın).

O andan itibaren, en son günlük dosyası üzerinde awstats çalıştırmalısınız - bu, geçerli yapılandırmanızın yaptığı şeydir.

Awstats ve dönen nginx günlük dosyalarını ne sıklıkta çalıştırdığınıza bağlı olarak, hem geçerli günlük dosyasını hem de öncekini okumasını isteyebilirsiniz. (örneğin, nginx günlük dosyalarını her gün 12'de döndürürseniz, ancak awstats'ı her gün 1'de çalıştırırsanız, awstats her çalıştığında günlük dosyası yalnızca son dönüşten beri yazılanları içerir). LogFile komutunuzun içinde logresolvemerge.pl komutunu şu şekilde kullanabilirsiniz:

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

Bu, awstats'a logresolvemerge.pl komutunu iki günlük dosyasıyla parametre olarak çalıştırmasını söyler ve awstats bu komut dosyasının çıktısında okuyacaktır (pipe |


Awstats komut dosyasının yapılandırma dosyasındaki boruları işleyebileceğini bilmiyordum. Güzel + 1.
d -_- b

Anlaşmalı - logresolvemerge.plawstats'a boru çıkışı harika bir çözümdür.
Jez


7

Alternatif olarak, GoAccess gibi gerçek zamanlı bir günlük analizörü kullanabilirsiniz. Gerçekten hızlı ve herhangi bir günlüğü açmanıza gerek yok.apache & nginx

http://goaccess.prosoftcorp.com/

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

VEYA

zcat access.log.*.gz | goaccess -a -s -b
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.