Cách cấu hình Nginx để giám sát và ghi nhật ký (log) hoạt động của máy chủ

Cấu hình giám sát và ghi nhật ký (log) hoạt động của máy chủ là một yếu tố quan trọng trong việc theo dõi và phân tích hoạt động của ứng dụng web. Nginx cung cấp các tùy chọn cấu hình để ghi lại thông tin chi tiết về yêu cầu, lỗi và hoạt động của máy chủ. Trong bài viết này, chúng ta sẽ tìm hiểu cách cấu hình Nginx để giám sát và ghi nhật ký hoạt động của máy chủ.

Ghi nhật ký hoạt động của máy chủ

Để cấu hình Nginx để ghi nhật ký hoạt động của máy chủ, chúng ta cần chỉnh sửa tệp cấu hình Nginx. Thông thường, tệp cấu hình Nginx có đường dẫn /etc/nginx/nginx.conf hoặc /etc/nginx/conf.d/default.conf.

Trong tệp cấu hình, chúng ta có thể tìm thấy một khối http, và bên trong khối này, chúng ta thêm các chỉ thị sau:

http {
...
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
...
}

 

Trong ví dụ trên, chúng ta đã sử dụng các đường dẫn tệp nhật ký mặc định /var/log/nginx/access.log/var/log/nginx/error.log. Bạn có thể điều chỉnh đường dẫn tùy thuộc vào môi trường và yêu cầu cụ thể của bạn.

Sau khi thực hiện cấu hình này, Nginx sẽ ghi lại thông tin chi tiết về yêu cầu và lỗi vào tệp nhật ký tương ứng. Tệp access.log ghi lại thông tin về mọi yêu cầu đến máy chủ, trong khi tệp error.log ghi lại thông tin về lỗi xảy ra.

Tutorial - Install Nginx and PHP on Raspbian

Ghi nhật ký mở rộng

Ngoài việc ghi nhật ký hoạt động cơ bản, chúng ta cũng có thể cấu hình Nginx để ghi nhật ký mở rộng. Các tùy chọn ghi nhật ký mở rộng có thể bao gồm:

  • log_format: Định nghĩa định dạng ghi nhật ký tùy chỉnh. Chúng ta có thể định nghĩa các mẫu và biểu định dạng theo ý muốn.
  • access_log: Cho phép ghi nhật ký với định dạng tùy chỉnh.
  • error_log: Cho phép ghi nhật ký lỗi với định dạng tùy chỉnh.

Ví dụ sau đây minh họa cách sử dụng log_format để định nghĩa một định dạng ghi nhật ký tùy chỉnh:

http {
...
log_format custom_format '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
...
}

 

Sau khi định nghĩa định dạng tùy chỉnh, chúng ta có thể sử dụng nó trong các chỉ thị access_logerror_log:

http {
...
access_log /var/log/nginx/access.log custom_format;
error_log /var/log/nginx/error.log;
...
}

 

Trong ví dụ trên, chúng ta đã sử dụng định dạng ghi nhật ký tùy chỉnh custom_format cho ghi nhật ký yêu cầu.

Nginx 常用的基础配置(web前端相关方面) - 知乎

Tích hợp với các công cụ phân tích nhật ký

Sau khi cấu hình Nginx để ghi nhật ký hoạt động của máy chủ, chúng ta có thể sử dụng các công cụ phân tích nhật ký để xem và phân tích thông tin đã được ghi lại. Một số công cụ phân tích nhật ký phổ biến bao gồm:

  • AWStats: Công cụ phân tích nhật ký miễn phí và mã nguồn mở, cung cấp thông tin chi tiết về lưu lượng truy cập, nguồn gốc, trình duyệt và nhiều thông tin khác.
  • GoAccess: Công cụ phân tích nhật ký dòng lệnh mạnh mẽ, cung cấp giao diện dòng lệnh và giao diện web để xem các báo cáo thống kê về lưu lượng truy cập.
  • ELK Stack: Bộ công cụ ElasticSearch, Logstash và Kibana kết hợp nhau để xử lý, lưu trữ và hiển thị thông tin từ nhật ký máy chủ.

Bằng cách tích hợp các công cụ phân tích nhật ký, chúng ta có thể tìm hiểu thêm về hoạt động của máy chủ, phân tích lưu lượng truy cập, tìm kiếm lỗi và tối ưu hóa hiệu suất của ứng dụng web.

Monitor NGINX with Prometheus

Cấu hình Nginx để giám sát và ghi nhật ký hoạt động của máy chủ là một phần quan trọng trong việc quản lý ứng dụng web. Bằng cách cấu hình ghi nhật ký và sử dụng các công cụ phân tích nhật ký, chúng ta có thể theo dõi và phân tích thông tin về yêu cầu, lỗi và hoạt động của máy chủ. Điều này giúp chúng ta hiểu rõ hơn về hiệu suất và bảo mật của ứng dụng web và đưa ra các cải tiến cần thiết.