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

White

manhdung

44 bài viết.
324 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
95 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 5 năm trước
95 11
White
53 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 gần 4 năm trước
53 4
White
51 13
Trong phần 1, tôi đã giới thiệu về sơ lược rabbitmq, vai trò của rabbitmq trong hệ thống phân tán và hướng dẫn cài đặt. Trong phần này, tôi sẽ trìn...
manhdung viết 5 năm trước
51 13
Bài viết liên quan
White
40 14
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 5 năm trước
40 14
{{like_count}}

kipalog

{{ comment_count }}

bình luận

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


White
{{userFollowed ? 'Following' : 'Follow'}}
44 bài viết.
324 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á!