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 :D 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:

83.149.9.216 - - [04/Jan/2015:05:13:42 +0000] "GET /presentations/logstash-monitorama-2013/images/kibana-search.png HTTP/1.1" 200 203023 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"

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

time-format %H:%M:%S
date-format %d/%b/%Y
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"

Sau đó chạy:

goaccess -f logstash-tutorial.log -a

Kết quả:
alt text

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

goaccess -f logstash-tutorial.log -a -o report.html

alt text

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

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

Male avatar

manhdung

44 bài viết.
240 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
Male avatar
67 11
Giới thiệu RabbitMQ là một message broker ( messageoriented middleware) sử dụng giao thức AMQP Advanced Message Queue Protocol (Đây là giao thức ph...
manhdung viết gần 3 năm trước
67 11
Male avatar
45 4
Giả định bạn tiếp nhận một server mới toanh, bạn cần tìm một số thông tin về nó như loại CPU, loại main, loại memory, memory dùng của hãng nào... c...
manhdung viết hơn 1 năm trước
45 4
Male avatar
38 7
Giới thiệu MongoDB là một giải pháp nosql database. Data được lưu ở dạng các bson document. Hỗ trợ vertical scaling và horizontal scaling, dynamic...
manhdung viết hơn 2 năm trước
38 7
Bài viết liên quan
Male avatar
25 13
Vẫn theo khung sườn đã định trước từ phần 1, trong phần này tôi sẽ giới thiệu cách cấu hình nginx để thực hiện vai trò của một load balancer. Trư...
manhdung viết gần 3 năm trước
25 13
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


Male avatar
{{userFollowed ? 'Following' : 'Follow'}}
44 bài viết.
240 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!