Cẩm nang NQDEV
HomeCheat SheetsContact
Cheat Sheets
Cheat Sheets
  • Overview
  • IPTables Commands
  • Bash
    • Bash Cheat Sheet: Tập hợp lệnh Bash cơ bản và nâng cao
  • HAProxy
    • HAProxy Cheat Sheet: Hướng dẫn nhanh và đầy đủ cho quản trị viên
    • Cấu Hình và Tính Năng Nổi Bật
    • Hướng Dẫn Cấu Hình Log Format Trong HAProxy
    • Hướng dẫn chi tiết về cấu hình HAProxy cho Load Balancing và giới hạn tốc độ
    • HAProxy Stats
    • HAProxy Rate Limiting
      • Hướng dẫn cấu hình Rate Limiting trong HAProxy để chống DDoS
      • Rate Limiting: http-request track
    • HAProxy WI
    • HAProxy Lua API
      • Bắt đầu với HAProxy Lua API
  • GIT
    • Git Cheat Sheet: Tổng hợp lệnh Git hữu ích cho người mới bắt đầu và chuyên gia
    • Hướng Dẫn Toàn Diện về Git
    • Hướng Dẫn Nhanh về Các Lệnh Git Cơ Bản
    • 20 lệnh Git hữu ích mọi lập trình viên nên biết
    • Cách tối ưu hóa kích thước thư mục .git để cải thiện hiệu suất
  • Redis
    • Redis Cheat Sheat: Hướng dẫn nhanh cho người mới bắt đầu
  • Wireshark
    • Wireshark Cheat Sheat: Hướng dẫn sử dụng Wireshark cho người mới bắt đầu và chuyên gia
  • Windows
    • CMD
      • Command Cheat Sheat: Tổng hợp các lệnh CMD hữu ích trên Windows
    • Hướng dẫn sử dụng Registry Editor
    • Chi tiết giao diện trong Registry Editor
  • Ubuntu
    • Ubuntu CLI cheat sheet
Powered by GitBook
On this page
  • Tại Sao Ghi Log Quan Trọng?
  • Cấu Hình Log Format
  • Lợi Ích Của Log JSON
  • Kết Luận

Was this helpful?

  1. HAProxy

Hướng Dẫn Cấu Hình Log Format Trong HAProxy

HAProxy, một trong những công cụ cân bằng tải và proxy phổ biến nhất, không chỉ nổi bật về khả năng phân phối tải mà còn cung cấp các tính năng ghi log mạnh mẽ. Việc ghi log là rất quan trọng để theo dõi hoạt động, phân tích hiệu suất và phát hiện sự cố trong các ứng dụng. Trong bài viết này, chúng ta sẽ đi sâu vào cấu hình log format, cách thức hoạt động của log chuẩn và lợi ích của việc sử dụng log JSON trong HAProxy.

Tại Sao Ghi Log Quan Trọng?

Ghi log là một phần không thể thiếu trong quản lý và bảo trì hệ thống. Nó giúp bạn:

  • Theo Dõi Trạng Thái: Giám sát tình trạng hoạt động của các máy chủ và ứng dụng.

  • Phân Tích Lưu Lượng: Hiểu rõ hơn về lưu lượng truy cập và cách người dùng tương tác với ứng dụng.

  • Phát Hiện Sự Cố: Phát hiện và khắc phục sự cố một cách nhanh chóng trước khi chúng ảnh hưởng đến người dùng cuối.

Cấu Hình Log Format

Cấu Hình Cơ Bản

Để bật chức năng ghi log trong HAProxy, bạn cần cấu hình phần global trong tệp haproxy.cfg. Dưới đây là ví dụ cấu hình cơ bản:

global
    log /dev/log local0
    log /dev/log local1 notice
    maxconn 2000

Trong đó:

  • log /dev/log local0: Ghi log vào syslog với facility là local0.

  • log /dev/log local1 notice: Ghi nhận log ở mức độ notice cho facility local1.

Định Dạng Log Chuẩn

Khi bạn sử dụng option httplog, HAProxy sẽ ghi lại các thông tin chi tiết cho mỗi yêu cầu HTTP. Định dạng log chuẩn sẽ bao gồm các thông tin như:

<timestamp> <client_ip>:<client_port> <backend_name>/<server_name> <http_method> <request_path> <http_version> <response_status> <bytes_sent> <time_taken>

Ví dụ log chuẩn:

Nov 02 10:00:00 localhost haproxy[1234]: 192.168.1.100:12345 [02/Nov/2024:10:00:00.123] frontend_name backend_name/server_name 200 12345 30 0.123

Trong đó:

  • timestamp: Thời gian ghi log.

  • client_ip: Địa chỉ IP của client.

  • http_method: Phương thức HTTP (GET, POST, v.v.).

  • response_status: Mã trạng thái HTTP trả về.

Tùy Chỉnh Log Format

HAProxy cho phép bạn tùy chỉnh định dạng log bằng cách sử dụng các macro. Dưới đây là ví dụ về cách cấu hình log format tùy chỉnh:

defaults
    log     global
    option  httplog
    log-format "%ci:%cp [%t] %f %b/%s %Tq/%Tw/%Tc/%Tr/%Tt %ST %B %s"

Trong đó:

  • %ci: Địa chỉ IP của client.

  • %cp: Cổng của client.

  • %t: Thời gian yêu cầu.

  • %f: Tên frontend.

  • %b: Tên backend.

  • %s: Tên máy chủ.

  • %ST: Mã trạng thái HTTP.

  • %B: Số byte đã gửi.

Lợi Ích Của Log JSON

Một trong những xu hướng gần đây trong việc ghi log là sử dụng định dạng JSON. Việc ghi log dưới dạng JSON mang lại nhiều lợi ích:

  1. Dễ Dàng Phân Tích: Định dạng JSON rất dễ dàng để phân tích và xử lý bởi các công cụ phân tích log hiện đại như ELK Stack (Elasticsearch, Logstash, Kibana).

  2. Cấu Trúc Rõ Ràng: JSON cung cấp cấu trúc rõ ràng cho dữ liệu, giúp người đọc dễ dàng hiểu và truy xuất thông tin cần thiết.

  3. Tương Thích Với Nhiều Công Cụ: Nhiều công cụ và ngôn ngữ lập trình hỗ trợ JSON, giúp tích hợp dễ dàng hơn.

Cấu Hình Log JSON Trong HAProxy

Để cấu hình HAProxy ghi log dưới dạng JSON, bạn có thể sử dụng tùy chọn log-format và định nghĩa một định dạng JSON tùy chỉnh. Dưới đây là một ví dụ:

frontend http_front
    log-format '{"time": "%t", "client_ip": "%ci", "client_port": "%cp", "backend": "%b", "server": "%s", "status": "%ST", "bytes": "%B", "time_taken": "%Tt"}'
    option httplog

Ví dụ log JSON:

{"time": "02/Nov/2024:10:00:00.123", "client_ip": "192.168.1.100", "client_port": "12345", "backend": "backend_name", "server": "server_name", "status": "200", "bytes": "12345", "time_taken": "0.123"}

Kết Luận

Cấu hình log format trong HAProxy là một phần quan trọng giúp bạn theo dõi và quản lý ứng dụng của mình. Bằng cách sử dụng định dạng log chuẩn hoặc log JSON, bạn có thể dễ dàng theo dõi hiệu suất, phân tích lưu lượng và phát hiện sự cố.

PreviousCấu Hình và Tính Năng Nổi BậtNextHướng dẫn chi tiết về cấu hình HAProxy cho Load Balancing và giới hạn tốc độ

Last updated 6 months ago

Was this helpful?

Hãy thử nghiệm với các định dạng log khác nhau và xem cách chúng ảnh hưởng đến quá trình phân tích và giám sát của bạn. Đừng quên tham khảo để tìm hiểu thêm về các tùy chọn cấu hình log.

tài liệu HAProxy chính thức