Bagaimana cara menganalisis beberapa file log gz untuk Awstats?

21

Saya cukup baru untuk awstats dan telah mengkonfigurasi Awstats pada server web apache saya untuk menganalisis log akses nginx (server web nginx adalah untuk aplikasi django saya), saya dapat mengambil statistik dari LogFile=/var/log/nginx/access.logtetapi bagaimana cara menganalisis beberapa Log yang format gzip. Seperti access.log.1.gz ... access.log.40.gz. Saya punya banyak log untuk dianalisis.

Rakesh
sumber

Jawaban:

29

Apa yang mungkin ingin Anda lakukan di sini adalah menganalisis semua file log ini sekali, kemudian terus menganalisis hanya file log saat ini.

Hal paling sederhana yang harus dilakukan adalah unzip semua file menjadi satu file, kemudian jalankan awstats sekali, kemudian arahkan awstats pada file access.log Anda sejak saat itu.

awstats biasanya memiliki skrip bernama logresolvemerge.pl, yang dapat membaca file yang dikompresi, dan akan menggabungkannya dengan tepat agar awstats melakukan analsyis.

Untuk menggabungkan semua yang sudah ada, jalankan

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

Ini mungkin akan memakan waktu cukup lama.

Anda kemudian dapat menjalankan awstats sekali pada file ini (atur LogFile dengan tepat).

Sejak saat itu, Anda harus menjalankan awstats di atas logfile terbaru - yang sedang dikerjakan konfigurasi Anda saat ini.

Bergantung pada seberapa sering Anda menjalankan awstats vs memutar nginx logfiles, Anda mungkin ingin membuatnya membaca logfile saat ini dan yang sebelumnya. (mis., jika Anda memutar nginx logfiles setiap hari pada jam 12, tetapi menjalankan awstats setiap hari pada jam 1, maka setiap kali awstats menjalankan logfile hanya akan berisi apa yang telah ditulis sejak rotasi terakhir). Anda dapat menggunakan logresolvemerge.pl di dalam perintah LogFile Anda seperti ini:

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

Ini memberitahu awstats untuk menjalankan perintah logresolvemerge.pl dengan dua file log sebagai parameter, dan awstats akan membaca dalam output skrip tersebut (itulah yang dilakukan oleh pipe | |

Daniel Lawson
sumber
Saya tidak tahu skrip awstats dapat menangani pipa dalam file konfigurasi. +1 bagus
d -_- b
Setuju - menyalurkan logresolvemerge.ploutput ke awstats adalah solusi yang bagus.
Jez
tentang perpipaan, lihat stackoverflow.com/questions/13832701/…
brauliobo
7

Atau, Anda dapat menggunakan penganalisis log waktu-nyata, seperti GoAccess. Ini sangat cepat dan Anda tidak perlu membuka zip log apa pun.apache & nginx

http://goaccess.prosoftcorp.com/

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

ATAU

zcat access.log.*.gz | goaccess -a -s -b
Sanders12
sumber