Search

Search by Query

Hướng dẫn tìm kiếm log bằng Lucene, SQL và bộ lọc Advanced Query.

Truy cập vào màn hình Search

  • Từ thanh menu trái, chọn Investigation → Search.
  • Hệ thống mở ra màn hình tính năng Search.

Cách 1: Sử dụng câu truy vấn

Bước 1: Nhập biểu thức tìm kiếm vào thanh search

Cấu trúc truy vấn: Tên trường + Toán tử + Giá trị

Trong đó:

a. Tên trường (Field name)

  • Gõ tên trường theo chuẩn CSM (Trong lúc người dùng type, hệ thống sẽ gợi ý các trường CSM tương ứng)
  • VD: host.name, event.kind, process.name, source.ip, user.name, rule.name, severity, …

b. Toán tử (Operator)

Hệ thống hỗ trợ các toán tử sau:

Toán tửCú phápVí dụ
Equalsfield:"value"status:"200"
Greater thanfield:{value TO *}bytes:{1000 TO *}
Greater than or equalsfield:[value TO *]bytes:[1000 TO *]
Less thanfield:{* TO value}bytes:{* TO 5000}
Less than or equalsfield:[* TO value]bytes:[* TO 5000]
Not equals-field:value
not field:value
-status:200
not status:200

c. Giá trị (Value)

Sử dụng cú pháp Lucene Query. Một số trường hợp phổ biến:

Loại tìm kiếmCú phápVí dụ
Tìm chính xác (Exact search)Các giá trị có kí tự đặc biệt và space dùng dấu ngoặc kép " "event.kind : "alert"
Tìm gần đúng (Partial match)Dùng dấu * để tìm chuỗi có ký tự bất kỳhost.name : web*
→ khớp với web01, webserver, webapp...
Tìm theo khoảng giá trị (Range query)Dùng [] hoặc {} để tìm trong/ngoài khoảng[a TO b] bao gồm a,b → severity: [2 TO 5]

{a TO b} loại trừ a,b → event.id: {100 TO 200}

Kết hợp nhiều điều kiện:

  • AND: tất cả điều kiện đều đúng.
  • OR: ít nhất một điều kiện đúng.
Ví dụ:event.kind = "alert" AND severity >= 3 process.name = "powershell.exe" OR user.name = "admin"

Bước 1: Mở cửa sổ Advanced Query

Nhấn vào icon bộ lọc (Advanced Query) để mở giao diện tạo bộ lọc nâng cao

Bước 2: Nhập biểu thức tìm kiếm

a. Chọn trường (Field)

Chọn tên trường trong danh sách dropdown. Hệ thống hiển thị toàn bộ các trường CSM khả dụng.

b. Chọn toán tử (Operator)

Phụ thuộc vào kiểu dữ liệu của trường:

Kiểu dữ liệuToán tử hỗ trợ
String, IPEquals, Not Equals, Contains
NumberEquals
Not equals
Greater than
Less than
Greater than or equals
Less than or equals
Between (Inclusive)
Between (Exclusive)

c. Nhập giá trị (Value)

Nhập giá trị bạn muốn tìm vào ô Value

Bước 3: Chuyển sang dạng Search Query

Nhấn button "Apply Filters" để hệ thống tự động chuyển bộ điều kiện thành Search Query và hiển thị trong ô tìm kiếm chính.

Bước 4: Tìm kiếm

Nhấn button "Run Search" để thực thi truy vấn. Kết quả hiển thị ở sơ đồ Event Over Time và bảng Event.

💡 Có thể kết hợp Search Query và Advanced Search. Hệ thống sẽ tự động ghép 2 điều kiện bằng toán tử AND.Ví dụ:
  • Search query: event.kind = "error"
  • Advanced query: host.name = "HN110SRV01" → Kết quả cuối cùng: event.kind = "error" AND host.name = "HN110SRV01"

Query search bằng SQL

SQL Search phù hợp khi cần chọn cột hiển thị hoặc viết điều kiện theo cú pháp SQL.

Bước 1: Chọn ngôn ngữ SQL

Tại danh sách Language, chọn SQL. Chọn Data Source và time range trên giao diện; không đưa các thông tin này vào câu truy vấn.

Bước 2: Nhập câu truy vấn

Có thể nhập điều kiện lọc hoặc câu SELECT đầy đủ. Bảng truy vấn là events; đặt tên field có dấu chấm trong nháy kép.

Để trống query để lấy toàn bộ events trong time range và Data Source đã chọn, với phân trang và giới hạn số dòng trên giao diện.

"event.module" = 'windows' AND "event.code" = '4625'

Điều kiện trên tương đương với câu truy vấn sau. SELECT * trả về danh sách field mặc định:

SELECT * FROM events
WHERE "event.module" = 'windows' AND "event.code" = '4625'

Hoặc chọn các cột cần xem:

SELECT "timestamp", "host.name", "user.name", "source.ip"
FROM events
WHERE "event.module" = 'windows'
  AND "event.code" = '4625'
ORDER BY "timestamp" DESC

Mặc định, kết quả được sắp xếp mới nhất trước. Dùng ORDER BY để chỉ định thứ tự sắp xếp.

Cú pháp SQL được hỗ trợ

NhómCú pháp
So sánh=, !=, <>, >, >=, <, <=
Tìm văn bảnLIKE, NOT LIKE, ILIKE (% là ký tự đại diện)
Danh sách và khoảngIN (...), NOT IN (...), BETWEEN ... AND ...
Giá trị rỗngIS NULL, IS NOT NULL
LogicAND, OR, NOT, dấu ngoặc đơn

Nên đặt tên field trong nháy kép, đặc biệt khi tên có dấu chấm; backtick cũng được hỗ trợ. Giá trị văn bản đặt trong nháy đơn, giá trị số không cần nháy. Custom field viết không có nháy, ví dụ customs.score > 5.

Khi kết hợp với Advanced Query, bộ lọc bổ sung là một biểu thức điều kiện và được ghép với SQL query bằng AND.

Bước 3: Chạy truy vấn

Nhấn Run Search. Dùng bộ chọn số dòng trên giao diện để phân trang; không thêm LIMIT vào SQL.

SQL Search chưa hỗ trợ LIMIT, hàm SQL, aggregate, GROUP BY, HAVING, JOIN, subquery hoặc UNION. Mỗi lần chỉ chạy một statement; không dùng comment hoặc dấu ;. Để tổng hợp, liên kết dữ liệu hoặc dùng hàm SQL, hãy dùng Threat Hunting.

Lỗi thường gặp khi dùng SQL

Truy vấn hoặc lỗiCách xử lý
host.name = web-1 gây lỗi unknown fieldĐặt giá trị văn bản trong nháy đơn: "host.name" = 'web-1'.
SELECT * FROM logs bị từ chốiChỉ dùng bảng events.
LIMIT is not supportedBỏ LIMIT và chọn số dòng trên giao diện.
GROUP BY is not supported hoặc aggregate function ... is not supported yetDùng Threat Hunting nếu cần tổng hợp dữ liệu.
function "lower" is not supportedKhông gọi hàm trong SQL Search; dùng Threat Hunting nếu cần hàm SQL.
JOIN is not supported hoặc subqueries are not supportedDùng Threat Hunting nếu cần liên kết dữ liệu hoặc subquery.
SQL line comments are not allowedBỏ comment -- hoặc /* */; chỉ nhập một statement, không có dấu ;.
":" is not a SQL operatorThay cú pháp Lucene như event.kind:alert bằng "event.kind" = 'alert', hoặc chuyển Language về Lucene.
Giới hạn: Search theo query chỉ giới hạn trong phạm vi tối đa 30 ngày gần nhất.

logo
CMC Telecom
Aspire to Inspire the Digital World