Sử dụng goaccess để visualize access log nginx/apache

Trong trường hợp bạn cần phân tích access log để tìm kiếm các thông tin như: thống kê status code server trả về, thống kê nguồn gốc địa lý của user, thống kê top dynamic file nào được request nhiều nhất, thống kê top static file nào được request nhiều nhất… Những kết qủa truy vấn đó sẽ cho bạn căn cứ để đưa ra các điều chỉnh cần thiết như cache lại các file được request nhiều, tạo ra các server cache tại các vùng địa lý có nhiều request, xác định tình trạng server qua các status code. Nếu có quá nhiều response 5xx hay 4xx thì hẳn là có vấn đề.

Nếu trước kia, bạn sẽ phải kết hợp các command truy vấn khác nhau để trích xuất thông tin từ file access log. Thường thì chuỗi command này khá phức tạp và ngay bản thân mình đôi khi cũng không biết nó có chính xác không ? Goaccess sẽ giải quyết cho bạn vấn đề này.

Việc cài đặt goaccess rất đơn giản:

https://goaccess.io/download

Mình lấy bộ access log mẫu trong document logstash:

https://download.elastic.co/demos/logstash/gettingstarted/logstash-tutorial.log.gz

Lấy thử một request mẫu:

Dựa theo man page của goaccess:

https://goaccess.io/man#custom-log

mình sẽ cấu hình log-format khớp với mẫu request.

Cấu hình /usr/local/etc/goaccess.conf

Sau đó chạy:

Kết quả:

Screen Shot 2016-08-02 at 10.17.10 AM

Hoặc có thể xem ở dạng dashboard:

Screen Shot 2016-08-02 at 10.17.36 AM

Một số trick nho nhỏ trong việc dùng goaccess có thể tìm thấy cuối bài viết này:

https://www.digitalocean.com/community/tutorials/how-to-install-and-use-goaccess-web-log-analyzer-with-apache-on-debian-7

ITZone via kipalog

Chia sẻ bài viết ngay