Làm thế nào để phân tích nhiều tệp nhật ký gz cho Awstats?


21

Tôi khá mới với awstats và đã cấu hình Awstats trên máy chủ web apache của tôi để phân tích nhật ký truy cập nginx (máy chủ web nginx dành cho ứng dụng django của tôi), tôi có thể lấy số liệu thống kê từ LogFile=/var/log/nginx/access.lognhưng làm cách nào để phân tích nhiều Nhật ký có định dạng gzip. Chẳng hạn như access.log.1.gz ... access.log.40.gz. Tôi có rất nhiều nhật ký để phân tích.

Câu trả lời:


29

Những gì bạn có thể muốn làm ở đây là phân tích tất cả các logfile này một lần, sau đó tiếp tục chỉ phân tích các logfile hiện tại kể từ đó.

Điều đơn giản nhất để làm là giải nén tất cả các tệp đó thành một tệp duy nhất, sau đó các awstats chạy qua nó một lần, sau đó trỏ awstats vào tệp access.log của bạn từ đó trở đi.

awstats thường có một tập lệnh gọi là logresolvemerge.pl, có thể đọc các tệp được nén và sẽ hợp nhất chúng một cách thích hợp để các awstats thực hiện analsyis.

Để hợp nhất tất cả những cái hiện có của bạn, hãy chạy

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

Điều này có thể sẽ mất một lúc.

Sau đó, bạn có thể chạy awstats một lần trên tệp này (đặt LogFile một cách thích hợp).

Từ đó trở đi, bạn sẽ có các awstats chạy trên logfile gần đây nhất - đó là những gì cấu hình hiện tại của bạn đang làm.

Tùy thuộc vào tần suất bạn chạy awstats so với logfiles nginx, bạn có thể muốn nó đọc cả logfile hiện tại và logfile trước đó. (ví dụ: nếu bạn xoay ngfx logfiles mỗi ngày ở mức 12, nhưng có awstats chạy mỗi ngày ở mức 1, thì bất cứ khi nào awstats chạy logfile sẽ chỉ chứa những gì được viết từ lần quay cuối cùng). Bạn có thể sử dụng logresolvemerge.pl bên trong lệnh LogFile của bạn như thế này:

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

Điều này báo cho awstats chạy lệnh logresolvemerge.pl với hai logfiles làm tham số và awstats sẽ đọc trong đầu ra của tập lệnh đó (đó là những gì ống | làm)


Tôi không biết kịch bản awstats có thể xử lý các đường ống trong tệp cấu hình. Đẹp + 1.
d -_- b

Đồng ý - logresolvemerge.plđầu ra đường ống đến awstats là một giải pháp tuyệt vời.
Jez


7

Ngoài ra, bạn có thể sử dụng trình phân tích nhật ký thời gian thực, chẳng hạn như GoAccess. Nó thực sự nhanh và bạn không cần giải nén bất kỳ nhật ký nào.apache & nginx

http://goaccess.prosoftcorp.com/

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

HOẶC LÀ

zcat access.log.*.gz | goaccess -a -s -b
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.