Phân tích cú pháp Lighttpd Access.log

Tác giả Network Engineer, T.M.Hai 14, 2021, 12:25:18 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 4 Khách đang xem chủ đề.

Phân tích cú pháp Lighttpd Access.log


Người quản trị hệ thống yêu cầu thông tin chi tiết để chẩn đoán và khắc phục các sự cố có thể gặp phải trong hệ thống. Một nguồn thông tin như vậy là nhật ký. Nhật ký là một loạt các bản ghi mô tả cách một hệ thống hoặc các tài nguyên trong hệ thống được sử dụng.

Một máy chủ web như Lighttpd cho phép bạn cấu hình mức độ chi tiết của thông tin đầu ra bằng cách sử dụng các bản ghi. Nó sử dụng định dạng nhật ký chung theo mặc định. Tuy nhiên, phương pháp ghi nhật ký có thể cấu hình cao cho các nhu cầu và tình huống khác nhau.

Trong hướng dẫn này, bạn sẽ biết cách bật ghi nhật ký vào máy chủ Lighttpd và hiểu định dạng của nhật ký từ tập tin access.log.

1. Bật ghi nhật ký truy cập

Trước khi phân tích cú pháp tập tin và tìm hiểu cách tập tin được định dạng, chúng ta cần bật ghi nhật ký truy cập trên máy chủ web.

Nhật ký truy cập chứa thông tin nhật ký về yêu cầu tập tin và tài nguyên từ ứng dụng web do máy chủ web lưu trữ. Thông tin điển hình được lưu trữ trong nhật ký truy cập bao gồm địa chỉ IP, tác nhân người dùng, quyền truy cập tập tin, v.v.

Để bật ghi nhật ký truy cập trên máy chủ Lighttpd, hãy cho phép mô-đun nhật ký truy cập bằng lệnh:

Mã nguồn [Chọn]
$ sudo lighttpd-enable-mod accesslog
Lệnh trên sẽ tải mô-đun nhật ký truy cập cho phép máy chủ ghi nhật ký truy cập vào các tập tin và tài nguyên trên ứng dụng web được lưu trữ.

Nếu bạn muốn sửa đổi các tùy chọn của mô-đun accessLog, hãy chỉnh sửa tập tin nằm trong:

Mã nguồn [Chọn]
/etc/lighttpd/conf-enabled/10-accesslog.conf
2. Sửa đổi tên tập tin nhật ký truy cập

Theo mặc định, nhật ký truy cập được lưu trữ trong tập tin access.log như được định nghĩa trong tùy chọn accessLog.filename.

Để đặt tên tùy chỉnh, hãy chỉnh sửa giá trị sau đây. Ví dụ: để đặt nhật ký truy cập trong tập tin server.log:

Mã nguồn [Chọn]
accesslog.filename = "/var/log/lighttpd/server.log"
3. Tùy chọn trong nhật ký truy cập

Các tùy chọn khác mà bạn có thể sửa đổi để cấu hình nhật ký truy cập trong máy chủ Lighttpd bao gồm:

  • accesslog.use-syslog - Tùy chọn này sẽ gửi các truy cập đến nhật ký hệ thống. Tùy chọn này được tắt theo mặc định.

  • accesslog.syslog-level - Xác định mức độ ghi nhật ký (mức độ nghiêm trọng) cho nhật ký hệ thống. Theo mặc định, mức được đặt thành INFO.

Các tùy chọn khác bao gồm:

  • 0 - Khẩn cấp
  • 1 - Cảnh báo
  • 2 - Quan trọng
  • 3 - Lỗi
  • 4 - Cảnh báo
  • 5 - Thông báo
  • 6 - Thông tin
  • 7 - Gỡ lỗi

Bạn có thể tìm hiểu thêm về các cấp nhật ký hệ thống trong tài nguyên bên dưới:   Đăng nhập để xem liên kết

  • accesslog.format - Tùy chọn này mô tả cấu trúc của các bản ghi trong tập tin access.log.

4. Hiểu định dạng nhật ký

Hãy để chúng ta phân tích định dạng của nhật ký truy cập trong máy chủ Lighttpd. Điều tốt cần lưu ý là chúng ta sẽ sử dụng định dạng nhật ký mặc định để đơn giản hóa.

Để xem nội dung của tập tin nhật ký, bạn có thể sử dụng lệnh cat như sau:

Mã nguồn [Chọn]
$ sudo cat /var/log/lighttpd/access.log
Một đầu ra ví dụ như được hiển thị bên dưới:


Hãy lấy một mục duy nhất như được hiển thị trong ví dụ dưới đây:

Mã nguồn [Chọn]
127.0.0.1 localhost - [02/Nov/2021:01:05:28 -0400] "GET / HTTP/1.1" 200 15043 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:85.0) Gecko/20100101 Firefox/85.0"

  • Khối đầu tiên của mục nhập nhật ký chứa địa chỉ IP của máy chủ từ xa yêu cầu tài nguyên được chỉ định. Trong ví dụ này, địa chỉ IP nguồn là localhost.
  • Phần thứ hai chứa tên máy chủ của máy chủ từ xa.
  • Tiếp theo là dấu thời gian của thời gian kết thúc của yêu cầu HTTP.
  • Theo sau đó là phương thức yêu cầu HTTP như GET, POST,...
  • Phần tiếp theo chứa URL được yêu cầu. Trong ví dụ của chúng ta ở trên, URL được yêu cầu là chỉ mục /
  • Phần tiếp theo là giao thức yêu cầu HTTP, chẳng hạn như HTTP/1.1
  • Tiếp theo là mã trạng thái HTTP cho tài nguyên hoặc URL được yêu cầu, chẳng hạn như 200 OK, 404 không tìm thấy, v.v.
  • Tiếp theo là số byte được gửi trong phần thân yêu cầu.
  • Khối cuối cùng chứa tác nhân người dùng cho yêu cầu.

Định dạng sau mô tả tất cả các khối được nêu ở trên:

Mã nguồn [Chọn]
accesslog.format = "%h %V %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i""
Lưu ý: Đây là định dạng nhật ký mặc định cho Lighttpd phiên bản 1.4.13 trở lên.

5. Định dạng nhật ký tùy chỉnh

Bạn có thể tạo định dạng nhật ký tùy chỉnh bằng cách sử dụng các tùy chọn được cung cấp trong tài liệu định dạng nhật ký Lighttpd   Đăng nhập để xem liên kết

Hãy để chúng ta sử dụng các tùy chọn được cung cấp để tạo định dạng nhật ký tối giản cho máy chủ của chúng ta. Trong ví dụ của chúng ta, chúng ta sẽ bao gồm địa chỉ IP nguồn, tên máy chủ từ xa, phương thức yêu cầu, mã trạng thái, URL được yêu cầu và số byte trong nội dung yêu cầu.

  • % h - đại diện cho địa chỉ IP từ xa.
  • % l - đại diện cho tên máy chủ từ xa.
  • % m - cho phương thức yêu cầu.
  • % s - mã trạng thái.
  • % U - URL được yêu cầu.
  • % b - số byte trong phần thân yêu cầu.

Chỉnh sửa tập tin nhật ký truy cập:

Mã nguồn [Chọn]
$ sudo nano conf-enabled/10-accesslog.conf
Đặt định dạng nhật ký như dưới đây:

Mã nguồn [Chọn]
accesslog.format = "%h %l %m %s %U %b"
Lưu và đóng tập tin. Khởi động lại dịch vụ với lệnh sau:

Mã nguồn [Chọn]
$ sudo service lighttpd restart
Khi dịch vụ đã khởi động lại, hãy điều hướng trang web lập chỉ mục. Bây giờ bạn sẽ thấy định dạng nhật ký như được hiển thị:

Mã nguồn [Chọn]
192.168.9.220 localhost - GET 200 / 15043
Để tìm hiểu cách tạo định dạng nhật ký tùy chỉnh, hãy xem thêm tài liệu.

Trong hướng dẫn này, bạn đã học cách thiết lập nhật ký truy cập trong máy chủ Lighttpd và định dạng nhật ký. Bạn cũng đã học cách tạo định dạng nhật ký tùy chỉnh bằng các tùy chọn khác nhau.