SIEM/Log Management CẤU HÌNH INGEST PIPELINE NÂNG CAO VÀ CHUẨN HÓA DỮ LIỆU

Trong môi trường thực tế, dữ liệu log không chỉ đơn thuần là một định dạng duy nhất. Đôi khi, một dòng log ứng dụng có thể là sự kết hợp của Syslog header, các chuỗi tĩnh, cặp Key-Value và cả một khối JSON lồng bên trong.

Để giải quyết bài toán xử lý log phức tạp này trên OpenSearch, tôi đã thiết lập một Ingest Pipeline nâng cao kết hợp 5 loại processor khác nhau.

1. Thử nghiệm với Simulate API​

Nguyên tắc quan trọng trước khi đưa bất kỳ cấu hình nào lên Production là phải kiểm thử (test) cẩn thận. Tôi sử dụng công cụ Dev Tools và gọi API _simulate để kiểm tra một dòng log mô phỏng có độ phức tạp cao:

Log thô: May 11 18:03:49 ubuntu myapp[1234]: [auth_module] user=admin status=success payload={"ip":"192.168.1.1","os":"Linux"}

Để mổ xẻ dòng log này, tôi đã xây dựng chuỗi processor hoạt động tuần tự như sau:

  1. Grok Processor: Sử dụng Regex để tách phần đầu chuẩn Syslog (lấy ra thời gian, tên máy chủ, tên ứng dụng và PID). Phần nội dung còn lại được đưa vào biến rest_msg.
  2. Dissect Processor: Tốc độ xử lý của Dissect cực nhanh do không dùng Regex. Nó làm nhiệm vụ tách biến rest_msg thành tên module (auth_module), cụm Key-Value và khối JSON.
  3. KV Processor: Tự động nhận diện cụm user=admin status=success và bóc tách thành 2 trường độc lập là user và status.
  4. JSON Processor: Lấy chuỗi Payload và ép kiểu nó thành một Object JSON hoàn chỉnh (trích xuất được IP và Hệ điều hành).
  5. Date Processor (Cực kỳ quan trọng): Đọc chuỗi thời gian văn bản May 11 18:03:49, nhận diện múi giờ hiện tại (Asia/Ho_Chi_Minh) và chuẩn hóa về định dạng quốc tế ISO 8601. Điều này giải quyết triệt để lỗi lệch múi giờ khiến biểu đồ không hiện dữ liệu trên Dashboard.

    1778497894322.png

2. Triển khai Pipeline lên Production​

Sau khi xác nhận dữ liệu ở môi trường Simulate đã trả về chính xác tuyệt đối, tôi tiến hành áp dụng Pipeline này vào hệ thống thật.

Thay vì gọi API _simulate, tôi chuyển sang sử dụng phương thức PUT để khởi tạo pipeline chính thức với tên gọi advanced-log-pipeline.

JSON

PUT _ingest/pipeline/advanced-log-pipeline<br>{<br> <span>"description"</span>: <span>"Pipeline toàn diện xử lý log phức tạp"</span>,<br> <span>"processors"</span>: [<br> { <span>"grok"</span>: { ... } },<br> { <span>"dissect"</span>: { ... } },<br> { <span>"kv"</span>: { ... } },<br> { <span>"json"</span>: { ... } },<br> { <span>"date"</span>: { ... } }<br> ]<br>}<br>

1778497925592.png

3. Tổng kết​

Việc kết hợp linh hoạt các công cụ Grok, Dissect, JSON, KV và Date trong cùng một Ingest Pipeline giúp OpenSearch xử lý gọn gàng mọi định dạng log hỗn hợp. Đặc biệt, thao tác chuẩn hóa thời gian ISO 8601 đảm bảo tính toàn vẹn cho hệ thống SIEM/SOC khi đối chiếu log từ nhiều máy chủ ở các khu vực địa lý khác nhau. Dữ liệu giờ đây đã ở trạng thái hoàn hảo nhất để đưa lên Dashboard phân tích!
 
Back
Top