Thứ ba, 03/03/2015 | 00:00 GMT+7

Cách cài đặt và sử dụng GoAccess Web Log Analyzer với Apache trên Debian 7

GoAccess cho phép bạn theo dõi log web server trong thời gian thực, sử dụng console dòng lệnh đơn giản, để nhanh chóng xem và phân tích số liệu lưu lượng truy cập. Nó chạy hoàn toàn trong một terminal với số liệu thống kê được tổ chức thành các bảng riêng biệt trên một console có thể cuộn. Cũng có thể sử dụng GoAccess để tạo báo cáo lưu lượng truy cập web HTML, JSON và CSV.

Hướng dẫn này chỉ ra cách cài đặt phần mềm từ nguồn, sau đó trình bày cách sử dụng, xem và chuyển chương trình trên dòng lệnh.

Trang tổng quan GoAccess

GoAccess sẽ hoạt động với các file log từ hầu hết mọi web server khác. Tuy nhiên, định dạng cụ thể của file log phải được xác định trong GoAccess để nó hoạt động bình thường.

Hướng dẫn này sẽ tập trung vào việc sử dụng Apache làm web server đã chọn, có hoặc không có server ảo được cấu hình .

Yêu cầu

Vui lòng hoàn thành các yêu cầu này trước khi bắt đầu hướng dẫn này.

VPS càng xử lý nhiều lưu lượng truy cập web thì GoAccess càng phải làm việc với nhiều dữ liệu hơn - trong trường hợp này thì càng tốt.

Bước 1 - Cập nhật gói hệ thống

Để bắt đầu, ssh vào server của bạn là một user có sudo nâng quyền. Sau đó làm theo các bước bên dưới.

ssh sammy@your_server_ip 

Lệnh này cập nhật database của trình quản lý gói apt-get .

sudo apt-get update 

Bước 2 - Nâng cấp Gói hệ thống

Cài đặt mọi bản cập nhật mới cho gói hệ thống Debian.

sudo apt-get upgrade 

Xác nhận khi được yêu cầu cập nhật gói mới bằng lệnh y cho có.

Bước 3 - Cài đặt Gói thiết yếu

Các build essential gói cung cấp một số gói chi nhánh rất quan trọng như make được yêu cầu để biên dịch phần mềm trong Debian và Linux. Đây là những thứ cần thiết cho các giai đoạn cài đặt GoAccess sau này trong hướng dẫn.

Đây là cách cài đặt gói bằng apt-get :

sudo apt-get install build-essential 

Bước 4 - Cài đặt GoAccess Dependencies

Dưới đây là các phụ thuộc cần thiết để cài đặt và sử dụng GoAccess trên VPS của bạn. Mua chúng bằng trình quản lý gói apt-get .

sudo apt-get install libncursesw5-dev libglib2.0-dev libgeoip-dev libtokyocabinet-dev 

Bước 5 - Cài đặt Thư mục bản dựng

Bây giờ ta đã có sẵn các gói hệ thống cần thiết, ta có thể lấy và xây dựng GoAccess.

Thư mục /usr/local/src là nơi thích hợp để xây dựng phần mềm GoAccess. Cấp cho account user Debian hiện tại của bạn quyền sở hữu folder này bằng lệnh:

sudo chown $USER /usr/local/src 

Sau đó, cấp quyền đọc, ghi và thực thi folder cho chính user này thông qua lệnh:

sudo chmod u+rwx /usr/local/src 

Thay đổi folder này bằng lệnh cd :

cd /usr/local/src 

Bước 6 - Download và extract mã nguồn GoAccess

GoAccess đang được phát hành version 0.8.5 cho bản dựng ổn định tại thời điểm viết bài. Để download , hãy sử dụng lệnh wget bên dưới.

wget http://tar.goaccess.io/goaccess-0.8.5.tar.gz 

Bây giờ, lệnh tar được dùng để extract và extract file .tar.gz download và nội dung của nó.

tar -zxvf goaccess-0.8.5.tar.gz 

Bước 7 - Biên dịch và cài đặt mã nguồn

Thay đổi vào folder mới được extract như vậy.

cd goaccess-0.8.5/ 

Chạy tập lệnh cấu hình được tìm thấy bên trong folder này với hai tiền tố được hiển thị trong lệnh tiếp theo:

./configure —enable-geoip —enable-utf8 

Sử dụng make lệnh để xây dựng các makefile cần cho việc cài đặt GoAccess.

make 

Lệnh sau sẽ cài đặt GoAccess (sử dụng makefile đã tạo trước đó) vào các folder hệ thống, làm cho nó có thể thực thi được qua Debian.

sudo make install 

Bước 8 - Chỉnh sửa file cấu hình GoAccess

Có một số dòng được comment trong file cấu hình chính của GoAccess mà ta cần bỏ ghi chú để sử dụng một số tính năng nâng cao của chương trình sau này trong hướng dẫn.

Ta sẽ chỉnh sửa file bằng editor vi theo cách sau:

sudo vi /usr/local/etc/goaccess.conf 

Comment trong cấu hình này được ký hiệu bằng # và nghĩa là server sẽ bỏ qua thông tin tiếp theo trên cùng một dòng sau nó. Trong file này, ta cần xóa tổng cộng hai ký hiệu # để bỏ ghi chú hai dòng.

Đầu tiên là cài đặt date-format và nó xuất hiện ở đây như thế này.

# Apache log date format. The following date format works with any # of the Apache's log formats below. # #date-format %d/%b/%Y 

Để xóa biểu tượng chú thích ( # ), nhấn j nhiều lần để thả con trỏ xuống dòng ta muốn chỉnh sửa, đó là dòng date-format %d/%b/%Y Khi nó đến dòng và đang chọn dấu # nhấn x để xóa và loại bỏ nó.

Nếu được thực hiện đúng, sửa đổi của bạn bây giờ sẽ giống như sau:

# Apache log date format. The following date format works with any # of the Apache's log formats below. # date-format %d/%b/%Y 

Lưu ý: Bạn có thể nhấn ESC và nhập :q , sau đó ENTER để thoát khỏi file mà không lưu các thay đổi , nếu bạn nghĩ rằng bạn đã thực hiện bất kỳ lỗi hoặc thay đổi ngẫu nhiên nào.

Dòng thứ hai cần được bỏ ghi chú là một trong những dòng log-format và dòng chính xác phụ thuộc vào cài đặt Apache của bạn. Chọn tùy chọn đầu tiên nếu bạn chỉ đang chạy một server Apache và tùy chọn thứ hai nếu bạn đã cài đặt server ảo . Nếu bạn không chắc chắn, bạn có thể nên làm theo phần “ Cài đặt server không ảo”.

Cảnh báo: Chỉ bỏ ghi chú một trong những dòng này.

Đối với cài đặt server không ảo

Đối với cài đặt không có server ảo, hãy xóa biểu tượng băm ( # ) của dòng sau theo cách giống như trước đây.

# NCSA Combined Log Format # log-format %h %^[%d:%^] "%r" %s %b "%R" "%u" #  

Đối với cài đặt server ảo

Đối với cài đặt với server ảo, hãy xóa biểu tượng băm ( # ) của dòng sau theo cách giống như trước đây.

# NCSA Combined Log Format with Virtual Host # log-format %^:%^ %h %^[%d:%^] "%r" %s %b "%R" "%u" #  

Sau khi bỏ ghi chú một trong các dòng log-format , hãy nhấn ESC . Sau đó gõ :wq và nhấn ENTER . Thao tác này sẽ ghi những thay đổi ta đã thực hiện vào file và thoát khỏi editor vi .

Như vậy, ta có thể chạy GoAccess trên các file log Apache văn bản thuần nào đáp ứng các tiêu chí định dạng được hỗ trợ.

Bước 9 - Thêm user của bạn vào Group "adm"

Hãy thêm user hiện tại của ta vào group administrator ( adm ) trong Debian để ta có thể chạy các lệnh này mà không cần tiền tố sudo cho quyền của user root.

usermod có thể thay đổi thuộc tính của user của ta bằng cách bao gồm đối số -g và tên group mà ta muốn thêm vào ( adm ), theo sau là user được đề cập (trong trường hợp này là sammy ). Đảm bảo thay thế sammy trong lệnh tiếp theo bằng tên user Linux của bạn .

sudo usermod -g adm sammy 

Sau khi chạy lệnh trên, hãy ngắt kết nối khỏi VPS của bạn bằng lệnh exit và sau đó ENTER . Sau đó đăng nhập lại vào VPS bằng user sudo của bạn. Vì vậy, những thay đổi ta đã thực hiện trước đó cho user với usermod có hiệu lực.

exit ssh sammy@your_server_ip 

Đến đây bạn sẽ có quyền chính xác để chạy GoAccess với quyền là user này mà không cần sử dụng sudo và cũng có quyền truy cập vào folder log Apache.

Bây giờ ta sẽ tìm folder log .

Bước 10 - Định vị file log

Web server nói chung ghi lại tất cả các yêu cầu HTTP đến và được xử lý để ghi lại các file .

Ta cần tìm nơi Apache lưu trữ log của nó để ta có thể sử dụng chúng. Theo mặc định, trên hệ thống Debian, file log Apache được lưu trữ trong:

/var/log/apache2

Để xem nội dung của folder này, bạn có thể sử dụng lệnh list như sau:

ls /var/log/apache2 

Tại đây, bạn sẽ tìm thấy các file log được mô tả trước đó, một số file được nén thành file .gz nếu server của bạn đã hoạt động đủ lâu. Cái mới nhất hiện đang được ghi và xử lý bởi web server là cái không nén có tên là access.log .

Đối với một cài đặt với các server ảo được cấu hình , bạn có thể phải cd vào các folder con từ bên trong /apache2 để định vị từng file log của server riêng lẻ.

Nếu bạn đã tìm thấy các file log ở đây, thì hãy chuyển sang bước tiếp theo ( Bước 11 ).

Tìm kiếm thêm

Bạn chỉ cần đọc thêm thông tin này nếu bạn gặp sự cố khi định vị file log của bạn .

Vị trí của các bản ghi truy cập này được kiểm soát bởi chỉ thị CustomLog trong cấu hình của Apache. Nếu bạn đã thay đổi cài đặt này, bạn có thể tìm thấy log truy cập Apache của bạn trong một folder khác.

Để tìm chỉ thị CustomLog và nó được đặt thành gì, bạn có thể sử dụng grep trên một trong các file cấu hình Apache, như trong lệnh tiếp theo.

Điều này sẽ xuất ra bất kỳ folder tùy chỉnh nào được thêm vào trong file apache2.conf .

grep CustomLog /etc/apache2/apache2.conf 

Ngoài ra, bạn có thể chạy lệnh này, có thể mất một lúc nếu bạn có nhiều file trên server của bạn :

sudo find / -name access.log 

Thao tác này sẽ hiển thị tất cả các file trên hệ thống có tên là access.log .

Bước 11 - Chạy GoAccess

Khi folder chứa các file log server Apache của bạn được định vị, bạn có thể chạy GoAccess trên chúng bằng lệnh tiếp theo. Trong lệnh này, hãy đảm bảo thay thế /var/log/apache2/access.log bằng đường dẫn folder file log của bạn , nếu nó khác với đường dẫn Apache tiêu chuẩn.

goaccess -f /var/log/apache2/access.log -a 

Sau khi chạy lệnh này, bạn sẽ thấy console GoAccess.

Đối số -f yêu cầu chương trình sử dụng đường dẫn folder được cung cấp và đối số -a cho phép tất cả các thống kê được ghi lại cho từng tác nhân server được phân tích cú pháp.

Tùy chọn: Extract Nhật ký đã Lưu trữ

Nếu bạn muốn chạy GoAccess trên các log cũ hơn - các file loại .gz nén - chúng phải được extract và extract . Chương trình sẽ không chạy trên các file nén này bằng lệnh hiển thị ở trên.

Bạn có thể thực hiện việc extract này bằng chương trình gunzip trong Debian nếu muốn.

Ví dụ:

sudo gunzip /var/log/apache2/access.log.10.gz 

Tên file access.log.10.gz ở cuối lệnh ở đây cần phải trùng với tên file nén mà bạn muốn extract .

Bước 12 - Điều hướng GoAccess

Đây là trang tổng quan GoAccess.

Trang tổng quan GoAccess

Đây là cách tương tác với trang tổng quan:

  • Nhấn F1 hoặc h sẽ xuất hiện một cửa sổ trợ giúp nhỏ, liệt kê các phím và chức năng của chúng được tìm thấy ở đây trong phần này, cũng như cung cấp một số thông tin hữu ích khác.

  • 0-9 hoặc SHIFT + 0-9 chọn module được đánh số tương ứng và đặt nó thành hoạt động. Các con số tương ứng có thể được nhìn thấy trên console cho mỗi phần.

  • o hoặc ENTER được sử dụng để mở rộng module hiện được chọn trên trang tổng quan. Các module được giải thích trong phần tiếp theo.

  • j sẽ cuộn xuống trong một module hoạt động mở rộng và k sẽ cuộn lên trong một module hoạt động mở rộng.

  • s hiển thị các tùy chọn sắp xếp có sẵn cho module hoạt động.

  • Cuối cùng, nhấn q sẽ thoát khỏi chương trình hoặc cửa sổ hiện tại hoặc thu gọn một module đang hoạt động, tùy thuộc vào mức độ sâu hiện tại của bạn trong console .

Có thể đạt được nhiều tương tác hơn thông qua các phím sau:

  • Nhấn TAB trên bàn phím của bạn sẽ chuyển tiếp qua các module theo thứ tự.

  • Nhấn SHIFT + TAB cùng nhau sẽ thực hiện ngược lại với hành động cuối cùng và lặp lại qua các module .

  • Có thể nhấn F5 để làm mới và vẽ lại console .

  • c khi được nhấn sẽ đặt và thay đổi bảng màu hiện tại đang được sử dụng trên Trang tổng quan.

  • g di chuyển tiêu điểm vào mục đầu tiên và quay lại đầu màn hình console .

  • G cuộn đến mục cuối cùng hoặc cuối màn hình trang tổng quan.

Bước 13 - Hiểu module

Đến đây bạn có thể di chuyển xung quanh giao diện, hãy xem mỗi module thực sự chứa những gì. Các phần ở đây tương ứng với các module và tiêu đề được đánh số trong chương trình. Tất cả các giá trị "Lượt truy cập" được hiển thị dựa trên tổng số lượng yêu cầu được tìm thấy trong file log được cung cấp hoặc các file tương ứng (trừ khi có quy định khác).

Trang tổng quan - Yêu cầu được phân tích tổng thể

Trang tổng quan hiển thị số lượng: yêu cầu hợp lệ, yêu cầu không hợp lệ, thời gian thực hiện để phân tích dữ liệu được cung cấp, số lượng khách truy cập vào server , file được yêu cầu duy nhất, file tĩnh duy nhất (thường là loại file hình ảnh), liên kết giới thiệu HTTP duy nhất (URL), 404 duy nhất không tìm thấy lỗi, kích thước của file log được phân tích cú pháp và cuối cùng là bất kỳ băng thông nào bị tiêu tốn.

1 - Số lượng khách truy cập

Mô-đun này được liệt kê theo ngày với ngày bao gồm. Các yêu cầu HTTP sở hữu cùng một IP, cùng ngày tháng và cùng một tác nhân được coi là một lượt truy cập duy nhất. Điều này bao gồm trình thu thập thông tin / trình thu thập thông tin web.

2 - Tệp được yêu cầu

Tệp được Yêu cầu hiển thị các file được yêu cầu cao nhất trên web server của bạn và hiển thị số lần truy cập đã nói dưới dạng số và tỷ lệ phần trăm, cùng với thời gian server được phục vụ (băng thông), giao thức nào được sử dụng và loại yêu cầu đã được sử dụng.

3 - Tệp tĩnh được yêu cầu

Chỉ bao gồm các file tĩnh được yêu cầu thường xuyên nhất như: các loại file jpg , css , swf , js , gifpng , với các số liệu giống như module cuối cùng được cung cấp cho mỗi lần xuất hiện.

4 - URL HTTP 404

Được xếp hạng giống như các module trước với cùng thống kê, module này liệt kê các yêu cầu HTTP 404: Not Found Error lặp lại hàng đầu và URL đang được yêu cầu.

5 - Server

Server lưu trữ có thông tin chi tiết hơn về chính server kết nối với web server của bạn, chẳng hạn như số lượng kết nối, địa chỉ IP global của chúng và một số loại chỉ số lặp lại giống nhau.

Mô-đun được mở rộng ở đây có thể hiển thị nhiều thông tin hơn như kết quả tra cứu DNS ngược của server lưu trữ và quốc gia xuất xứ, nếu đối số -a từ trước đó được bật. Danh sách tác nhân user có thể được hiển thị thông qua việc chọn địa chỉ IP mong muốn, sau đó nhấn ENTER .

6 - Hệ điều hành

Tại đây, hệ điều hành của server được hiển thị và việc sử dụng hệ điều hành được xếp hạng. Điều này dựa trên lượt truy cập duy nhất, không giống như hầu hết các dữ liệu module khác.

7 - Các trình duyệt

Mô-đun Trình duyệt tuân theo khái niệm tương tự như module cuối cùng, ngoại trừ trong trường hợp này, loại trình duyệt của server được sử dụng để kết nối phiên được xếp hạng thay thế. , điều này dựa trên số lượng khách truy cập chứ không phải tổng số yêu cầu.

8 - URL liên kết giới thiệu

Nếu server được đề cập đã truy cập trang web qua một tài nguyên khác hoặc được liên kết / chuyển hướng đến bạn từ server khác, thì URL mà họ được giới thiệu sẽ được cung cấp tại đây trong module này.

9 - Trang web giới thiệu

Mô-đun này gần giống với module cuối cùng ( URL liên kết giới thiệu ); sự khác biệt duy nhất là địa chỉ trang web chung được hiển thị, và không phải là điểm xuất phát chính xác cho giới thiệu.

10 - Cụm từ khóa

Báo cáo các từ khóa được sử dụng trên Google tìm kiếm, bộ nhớ cache của Google và Google dịch dẫn đến việc web server của bạn xử lý một server lưu trữ. Hiện tại điều này chỉ hỗ trợ Google và không có công cụ tìm kiếm nào khác.

11 - Vị trí địa lý

Mô-đun này chứa một bản tóm tắt về các vị trí địa lý được xác định từ việc truy cập các địa chỉ IP của server . Nếu nó không thể xác định điều này, nó sẽ được đánh dấu là location unknown .

12 - Mã trạng thái HTTP

Mã trạng thái HTTP chứa thống kê về giá trị của mã trạng thái tổng thể trong các yêu cầu HTTP, được cung cấp dưới dạng số lượng và tỷ lệ phần trăm.

(Tùy chọn) Sử dụng GoAccess khác

Di chuyển đến folder chính của user của bạn với cd~ để tiếp tục thực hiện các lệnh bổ sung này. Lệnh pwd phụ in folder làm việc hiện tại của bạn, vì vậy bạn có thể xác nhận bạn đã thay đổi nó một cách chính xác.

cd ~ pwd 

Báo cáo HTML

Có thể tạo báo cáo HTML bằng cách chuyển hướng ( > ) kết quả tiêu chuẩn của GoAccess đến file HTML có tên bất kỳ mà bạn chọn.

Trong ví dụ này, file được đặt tên là report .html và bao gồm tất cả các thống kê ( -a ) có sẵn từ file log đã chọn.

goaccess -f /var/log/apache2/access.log -a > report.html 

Mới được tạo ra html file được tạo ra bên trong folder chính của user của ta .

Báo cáo JSON

Bạn có thể tạo báo cáo kiểu JSON bằng cách thêm các đối số -ojson vào lệnh. Ở đây file kết quả có phần mở rộng .json .

goaccess -f /var/log/apache2/access.log -a -o json > report.json 

Báo cáo CSV

Để tạo file CSV, hãy làm theo phương pháp tương tự như trước đây; chỉ cần thêm đối số csv vào lệnh và thay đổi phần mở rộng file thành .csv

goaccess -f /var/log/apache2/access.log -a -o csv > report.csv 

Chạy file nén

Để chạy các file nén thông qua GoAccess, bạn có thể chuyển kết quả của lệnh zcat sang lệnh goaccess . Lệnh tiếp theo hiển thị tất cả các file .gz nén đang được đọc mà không cần extract thủ công trước.

zcat /var/log/apache2/access.log.*.gz | goaccess -a 

Lọc theo ngày bắt đầu

Để lọc từ một ngày bắt đầu được chỉ định, bạn có thể sử dụng cấu trúc của lệnh tiếp theo. Điều này sẽ đảm bảo phân tích cú pháp các yêu cầu HTTP từ ngày 20 tháng 1 năm 2015 cho đến khi kết thúc nội dung file log .

sed '/20\/Jan\/2015/,$ p' /var/log/apache2/access.log | goaccess -a 

Lưu ý điều này sẽ chỉ hoạt động nếu ngày bạn đang nhập thực sự được chứa trong file log đã chuyển.

Lọc theo ngày

Bạn có thể chọn ra một ngày cụ thể và lọc để hiển thị lưu lượng truy cập chỉ vào ngày đó. Lần này ta sẽ sử dụng grep để thực hiện .

grep '20/Jan/2015' /var/log/apache2/access.log | goaccess -a 

Loại trừ Server

Loại trừ một địa chỉ IP cụ thể bằng lệnh này, thay thế 111.111.111.111 bằng địa chỉ IP mong muốn.

goaccess —exclude-ip=111.111.111.111 -f /var/log/apache2/access.log -a  

Sử dụng từ xa

Nếu GoAccess được cài đặt trên một máy từ xa, chẳng hạn như máy trạm local của bạn, thay vì VPS, có thể SSH vào VPS của bạn và sau đó đọc các file log Apache từ xa, thông qua đường ống .

ssh sammy@your_server_ip 'cat /var/log/apache2/access.log' | goaccess -a 

Kết luận

Sau khi hoàn thành hướng dẫn này, bạn nên biết cách cài đặt GoAccess, sử dụng chức năng cốt lõi của nó và có thể sử dụng một số tính năng khác giúp GoAccess hoạt động linh hoạt hơn.

Đây là một bản tóm tắt đầy đủ về những gì đã được đề cập:

  • Lấy và cập nhật các gói hệ thống Debian cần thiết.
  • Cài đặt và xây dựng GoAccess bằng mã nguồn của nó.
  • Chạy GoAccess với file log web server Apache.
  • Tương tác và chuyển thông qua GoAccess trên dòng lệnh.
  • Hiểu các module trong console GoAccess.
  • Tạo các loại báo cáo khác nhau từ log web server Apache có chuyển hướng .
  • Đường ống kết quả lệnh khác vào GoAccess.

Tags:

Các tin liên quan

5 cách cải thiện thiết lập server ứng dụng web sản xuất của bạn
2015-02-11
Cách triển khai ứng dụng web Ruby dựa trên Sinatra trên Ubuntu 13
2014-02-20
Cách cấu hình web server theo cụm với Varnish và Nginx trên Ubuntu 13.10
2014-01-24
Cách triển khai các ứng dụng web Flask bằng uWSGI Behind Nginx trên CentOS 6.4
2014-01-14
Cách triển khai ứng dụng web CherryPy đằng sau Nginx Reverse-Proxy
2014-01-14
Cách tạo ứng dụng web với HMVC PHP5 Framework Kohana
2013-12-30
Hướng dẫn đơn giản về cách cài đặt ứng dụng trực diện web trên VPS
2013-12-09
So sánh web server (Rack) cho Ứng dụng Web Ruby
2013-11-25
So sánh các web server cho các ứng dụng web dựa trên Python
2013-10-28
Cách sử dụng node.js, request và cheerio để thiết lập Web-Scraping đơn giản
2013-09-16