GoAccess là trình phân tích nhật ký web thời gian thực cho các hệ thống giống Unix, bao gồm Ubuntu. Nó cung cấp một cách hiệu quả và thân thiện với người dùng để trực quan hóa và phân tích nhật ký máy chủ web, hỗ trợ nhiều định dạng như nhật ký Apache, Nginx và Amazon S3. GoAccess có thể chạy trong thiết bị đầu cuối hoặc dưới dạng giao diện dựa trên web, cung cấp các báo cáo động với các số liệu cần thiết như số lượng khách truy cập, chi tiết yêu cầu, vị trí địa lý và các trang web giới thiệu. Nó được đánh giá cao vì tốc độ, tính tương tác và thông tin chi tiết toàn diện, khiến nó trở thành một công cụ có giá trị cho các quản trị viên hệ thống và nhà phát triển muốn theo dõi và tối ưu hóa hiệu suất máy chủ web trên các hệ thống Ubuntu.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt GoAccess Log Analyzer trên máy chủ Ubuntu 24.04.
Đầu tiên, hãy chạy lệnh sau để thêm khóa GPG cho kho lưu trữ GoAccess.
Thêm kho lưu trữ GoAccess cho bản phân phối dựa trên Ubuntu/Debian bằng lệnh bên dưới.
Tiếp theo, hãy chạy lệnh sau Lệnh 'apt' để cập nhật chỉ mục gói Ubuntu của bạn và cài đặt 'goaccess'. Nhập 'Y' để xác nhận cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22417%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy định vị tệp nhị phân 'goaccess' và kiểm tra phiên bản 'goaccess' bằng sau đây:
Như bạn có thể thấy bên dưới, GoAccess1.9.3 được cài đặt tại '/usr/bin/goaccess'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22562%22%20height=%22339%22%3E%3C/svg%3E
Trước khi biên dịch GoAccess, hãy chạy lệnh 'apt' sau để cài đặt các gói phụ thuộc.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22225%22%3E%3C/svg%3E
Truy cập trang tải xuống GoAccess, lấy liên kết cho phiên bản mới nhất, sau đó tải xuống mã nguồn GoAccess và giải nén bằng lệnh 'tar' bên dưới.
Di chuyển đến thư mục 'goaccess-*' và cấu hình cài đặt của bạn bằng lệnh sau. Trong ví dụ này, bạn sẽ bật hỗ trợ GeoIP thông qua tệp cơ sở dữ liệu 'mmdb'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22439%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh bên dưới để biên dịch GoAccess và cài đặt nó trên hệ thống của bạn. Sau khi thực thi, GoAccess sẽ được cài đặt tại '/usr/local/bin/goaccess' với thư mục cấu hình mặc định là '/usr/local/etc/goaccess'.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22560%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh bên dưới để xác minh phiên bản GoAccess của bạn. Bạn có thể thấy bên dưới GoAccess 1.9.3 được cài đặt tại /usr/local/bin/goaccess.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22697%22%20height=%22232%22%3E%3C/svg%3E
Đầu tiên, hãy truy cậphttps://db-ip.com/db/lite.php và lấy liên kết đến tệp cơ sở dữ liệu GeoIP và tải xuống bằng lệnh 'wget' bên dưới.
Giải nén tệp cơ sở dữ liệu GeoIP vào thư mục /opt/geoip bằng tiếp theo.
Tiếp theo, chạy lệnh 'goaccess' bên dưới để định vị thư mục cấu hình mặc định. Nếu bạn đang cài đặt thông qua APT, thư mục GoAccess của bạn sẽ nằm trong thư mục '/etc/goaccess'. Nếu bạn đang biên dịch từ mã nguồn, thư mục GoAccess của bạn nằm ở thư mục '/usr/local/etc/goaccess'.
Bây giờ hãy mở tệp cấu hình GoAccess '/usr/local/etc/goaccess/goaccess.conf' bằng trình soạn thảo 'nano' sau lệnh.
Bỏ chú thích các dòng 'time-format' và 'date-format' như sau:
Trên tùy chọn 'log-format', hãy đổi thành 'COMBINED' cho Nginx/Apache thông thường nhật ký.
Bỏ ghi chú tùy chọn 'geoip' và thêm đường dẫn của tệp cơ sở dữ liệu GeoIP.
Khi hoàn tất, hãy lưu tệp và thoát khỏi trình chỉnh sửa.
Để phân tích nhật ký bằng GoAccess, hãy chạy lệnh 'goaccess' bên dưới.
Bạn có thể thấy đầu ra như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22586%22%3E%3C/svg%3E
Với tích hợp GeoIP, bạn sẽ thấy phần 'Vị trí địa lý' như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22269%22%3E%3C/svg%3E
Để tạo báo cáo HTML cho GoAccess, hãy bao gồm tùy chọn '-o' theo sau là 'filename.html' như sau:
Bây giờ hãy sử dụng trình duyệt web của bạn và điều hướng đến tệp 'access-log.html'. Bạn sẽ thấy báo cáo GoAccess sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22390%22%3E%3C/svg%3E
Ngoài ra, bạn cũng có thể tạo báo cáo nhật ký ở định dạng JSON và CSV. Sử dụng lệnh 'goaccess' bên dưới.
Tiếp theo, bạn cũng có thể thiết lập giám sát nhật ký thời gian thực bằng lệnh 'goaccess' sau.
Bây giờ hãy điều hướng đến trang 'reports.html' bằng trình duyệt web và bạn sẽ thấy các báo cáo thời gian thực được tạo bởi GoAccess.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22363%22%3E%3C/svg%3E
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt GoAccess Log Analyzer trên máy chủ Ubuntu 24.04.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo rằng bạn có những điều sau:- Máy chủ Ubuntu 24.04.
- Người dùng không phải root có quyền quản trị viên.
- Máy chủ web được cài đặt Apache/Nginx.
Cài đặt GoAccess bằng APT
GoAccess Log Analyzer có thể được cài đặt theo hai cách khác nhau, thông qua trình quản lý gói và thủ công thông qua mã nguồn. Trong phần này, bạn sẽ tìm hiểu cách cài đặt GoAccess trên Ubuntu bằng trình quản lý gói APT.Đầu tiên, hãy chạy lệnh sau để thêm khóa GPG cho kho lưu trữ GoAccess.
Mã:
wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg >/dev/null
Mã:
echo "deb [signed-by=/usr/share/keyrings/goaccess.gpg arch=$(dpkg --print-architecture)] https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/goaccess.list
Mã:
sudo apt update && sudo apt install goaccess
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22417%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy định vị tệp nhị phân 'goaccess' và kiểm tra phiên bản 'goaccess' bằng sau đây:
Mã:
which goaccess
goaccess --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22562%22%20height=%22339%22%3E%3C/svg%3E
Cài đặt GoAccess từ mã nguồn
Nếu bạn muốn xây dựng GoAccess theo cách thủ công từ mã nguồn, bạn có thể sử dụng các bước sau:Trước khi biên dịch GoAccess, hãy chạy lệnh 'apt' sau để cài đặt các gói phụ thuộc.
Mã:
sudo apt install libncursesw5-dev libgeoip-dev libtokyocabinet-dev build-essential
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22225%22%3E%3C/svg%3E
Truy cập trang tải xuống GoAccess, lấy liên kết cho phiên bản mới nhất, sau đó tải xuống mã nguồn GoAccess và giải nén bằng lệnh 'tar' bên dưới.
Mã:
wget https://tar.goaccess.io/goaccess-1.9.3.tar.gz
tar -xzvf goaccess-1.9.3.tar.gz
Mã:
cd goaccess-*/
./configure --enable-utf8 --enable-geoip=mmdb
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22439%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh bên dưới để biên dịch GoAccess và cài đặt nó trên hệ thống của bạn. Sau khi thực thi, GoAccess sẽ được cài đặt tại '/usr/local/bin/goaccess' với thư mục cấu hình mặc định là '/usr/local/etc/goaccess'.
Mã:
sudo make && sudo make install
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22560%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh bên dưới để xác minh phiên bản GoAccess của bạn. Bạn có thể thấy bên dưới GoAccess 1.9.3 được cài đặt tại /usr/local/bin/goaccess.
Mã:
which goaccess
goaccess --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22697%22%20height=%22232%22%3E%3C/svg%3E
Tích hợp GoAccess với Cơ sở dữ liệu GeoIP
GoAccess Log Analyzer hỗ trợ tích hợp GeoIP. Với tính năng này, bạn có thể hiển thị quốc gia gốc của khách truy cập. Trong phần này, bạn sẽ cấu hình GoAccess và tích hợp nó với tệp cơ sở dữ liệu GeoIP.Đầu tiên, hãy truy cậphttps://db-ip.com/db/lite.php và lấy liên kết đến tệp cơ sở dữ liệu GeoIP và tải xuống bằng lệnh 'wget' bên dưới.
Mã:
wget https://download.db-ip.com/free/dbip-country-lite-2024-07.mmdb.gz
Mã:
gunzip dbip-country-lite-2024-07.mmdb.gz /opt/geoip/
Mã:
goaccess --dcf
Mã:
sudo nano /usr/local/etc/goaccess/goaccess.conf
Mã:
# The following time format works with any of the
# Apache/NGINX's log formats are below.
#
time-format %H:%M:%S
# The following date format works with any of the
# Apache/NGINX's log formats are below.
#
date-format %d/%b/%Y
Mã:
log-format COMBINED
or
log-format VCOMBINED
log-format %v:%^ %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
Mã:
geoip-database /home/geoip/dbip-country-lite-2021-10.mmdb
Phân tích Nhật ký Apache/Nginx với GoAccess
Bây giờ bạn đã cấu hình GoAccess và tích hợp nó với GeoIP. Ở bước tiếp theo, bạn sẽ học cách phân tích tệp nhật ký bằng GoAccess.Để phân tích nhật ký bằng GoAccess, hãy chạy lệnh 'goaccess' bên dưới.
Mã:
goaccess access.log
- Số lượt truy cập duy nhất mỗi ngày: danh sách số lượt truy cập duy nhất mỗi ngày.
- Tệp được yêu cầu (URL): các tệp được yêu cầu nhiều nhất - đối với các tệp không tĩnh.
- Yêu cầu tĩnh: liệt kê các yêu cầu đối với các tệp tĩnh như hình ảnh, CSS và JavaScript.
- URL không tìm thấy (404s): lỗi không tìm thấy trang 404.
- Tên máy chủ và IP của khách truy cập: danh sách tên máy chủ và địa chỉ IP của khách truy cập. Bạn có thể mở rộng để lấy thông tin như quốc gia, thành phố và rDNS.
- Hệ điều hành: hiển thị hệ điều hành của khách truy cập.
- Trình duyệt: hiển thị trình duyệt web của khách truy cập.
- Phân phối thời gian: hiển thị báo cáo hàng giờ cho khách truy cập duy nhất, số lượt truy cập và băng thông đã sử dụng.
- Máy chủ ảo: hiển thị nhật ký máy chủ ảo. Chỉ hoạt động khi bạn bật VCOMBINED hoặc '%s' trên tùy chọn 'log-format'.
- URL giới thiệu: hiển thị người giới thiệu của khách truy cập.
- TAB để di chuyển về phía trước giữa các phần hoặc SHIFT+TAB để di chuyển về phía sau.
- F5 để làm mới bảng điều khiển goaccess.
- j để cuộn xuống và k để cuộn lên.
- / để tìm kiếm một mẫu, sau đó nhập n để di chuyển.
- q để thoát khỏi bảng điều khiển.
- F1 hoặc h để hiển thị trợ giúp.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22586%22%3E%3C/svg%3E
Với tích hợp GeoIP, bạn sẽ thấy phần 'Vị trí địa lý' như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22269%22%3E%3C/svg%3E
Tạo báo cáo bằng GoAccess
Trong phần này, bạn sẽ tạo báo cáo nhật ký sang HTML, JSON và CSV bằng GoAccess Log Analyzer. Bạn cũng sẽ thiết lập trình phân tích nhật ký thời gian thực.Để tạo báo cáo HTML cho GoAccess, hãy bao gồm tùy chọn '-o' theo sau là 'filename.html' như sau:
Mã:
goaccess access.log -o access-log.html
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22390%22%3E%3C/svg%3E
Ngoài ra, bạn cũng có thể tạo báo cáo nhật ký ở định dạng JSON và CSV. Sử dụng lệnh 'goaccess' bên dưới.
Mã:
goaccess access.log -a -d -o access.json
goaccess access.log --no-csv-summary -o access.csv
Mã:
goaccess access.log -o /var/www/html/reports.html --real-time-html
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22363%22%3E%3C/svg%3E