Fields

Ứng dụng Custom fields

Hướng dẫn sử dụng Custom field trong các tính năng hệ thống Parser, Search, Rule và Dashboard với các ví dụ cụ thể.

Sau khi tạo xong Custom field, người dùng có thể sử dụng custom field ở các tính năng sau để xử lý, phân tích và trực quan hóa dữ liệu đặc thù.

1. Parser

Ý nghĩa:

Parser dùng Custom field để normalize và mapping dữ liệu từ log thô. Khi dữ liệu đầu vào có thông tin không nằm trong Common Schema mặc định, Custom field cho phép hệ thống tự động trích xuất và lưu trữ dữ liệu đó vào một trường được định nghĩa trước.

Ví dụ:

Sử dụng Custom Field để bóc tách dữ liệu trong Parser

{
  "upstream": "172.16.1.20:443"
}

Trường upstream chứa đồng thời địa chỉ IP và cổng (Port) của máy chủ upstream. Tuy nhiên, hệ thống cần lưu trữ riêng từng thông tin để phục vụ tìm kiếm, phân tích và xây dựng Detection Rule.

Trong Common Schema mặc định không có các trường upstream, nên admin tạo 2 Custom field:

  • customs.waf.upstream_ip (String) - Địa chỉ IP của upstream server
  • customs.waf.upstream_port (Integer) - Cổng kết nối của upstream server

Parser sử dụng hàm split() để tách giá trị của trường upstream theo ký tự : và lưu kết quả vào các Custom Field.

customs.waf.upstream_ip: split(.upstream, ":")[0]
customs.waf.upstream_port: to_int(split(.upstream, ":")[1])

Kết quả:

{
  "upstream": "172.16.1.20:443",
  "customs": {
    "waf": {
      "upstream_ip": "172.16.1.20",
      "upstream_port": 443
    }
  }
}

Ý nghĩa:

Sau khi Custom field được mapping trong Parser, người dùng có thể tìm kiếm và lọc log dựa trên giá trị của Custom field. Tính năng này cho phép thực hiện các truy vấn tinh chỉnh trên dữ liệu đặc thù mà hệ thống không hỗ trợ sẵn.

Ví dụ:

Tiếp tục với ví dụ WAF ở trên, người dùng cần tìm tất cả các request mà upstream server có mã lỗi (status >= 500):

customs.waf.upstream_status >= 500

Ngoài ra, có thể tìm kiếm log từ một upstream server cụ thể:

customs.waf.upstream_addr = "192.168.1.100"

Hoặc kết hợp điều kiện để tìm các request bị cache miss từ một IP cụ thể:

customs.waf.upstream_cache_status = "MISS" AND customs.waf.upstream_addr = "192.168.1.100"

3. Rule

Ý nghĩa:

Custom field có thể được sử dụng như một điều kiện trong quy tắc cảnh báo (Rule). Điều này cho phép admin thiết lập các quy tắc phát hiện mối đe dọa dựa trên các thông tin đặc thù từ dữ liệu đầu vào.

Ví dụ:

Admin muốn tạo cảnh báo khi upstream server trả về quá nhiều lỗi 5xx trong khoảng thời gian ngắn. Quy tắc có thể được viết như:

Rule: "Upstream Server Error Spike"

Condition:
  - customs.waf.upstream_status >= 500
  - count() > 10
  - timeframe = 5 minutes

Action: Trigger Alert

Ví dụ khác: Phát hiện upstream cache không hoạt động:

Rule: "Cache Effectiveness Issue"

Condition:
  - customs.waf.upstream_cache_status = "MISS"
  - count() > 100
  - timeframe = 1 hour

Action: Send Notification to Admin

4. Dashboard

Ý nghĩa:

Custom field có thể được trực quan hóa trên Dashboard để giám sát thống kê, xu hướng và KPI liên quan đến dữ liệu đặc thù. Điều này giúp người dùng có cái nhìn toàn cảnh về hoạt động hệ thống.

Ví dụ:

Admin tạo Dashboard WAF Performance với các widget sử dụng Custom field:

  1. Widget 1: Upstream Status Code Distribution (Biểu đồ tròn)
    • Hiển thị phân bố mã HTTP từ upstream (thông qua customs.waf.upstream_status)
  2. Widget 2: Cache Hit Ratio (Biểu đồ cột theo thời gian)
    • Hiển thị tỷ lệ cache HIT vs MISS qua giờ (từ customs.waf.upstream_cache_status)
Custom field có thể được áp dụng trong tất cả các tính năng (Parser, Search, Rule, Dashboard,..) như một trường dữ liệu bình thường. Tuy nhiên, hiệu suất khi truy vấn hoặc phân tích dữ liệu trên Custom field sẽ chậm hơn so với các Managed fields (trường tiêu chuẩn của hệ thống).