SPL Search Syntax

Ngôn ngữ tìm kiếm được xây dựng từ năm thành phần:

  • Search Terms: các từ khóa để tìm kiếm kết quả mong muốn như: keywords, phrases, các toán tử kết hợp.
  • Commands: các lệnh thao tác với kết quả tìm kiếm như thống kê, tính toán, tạo biểu đồ.
  • Functions: các hàm để thực hiện các chức năng như tính toán và đánh giá kết quả.
  • Arguments: các giá trị muốn truyền vào cho hàm.
  • Clauses: dùng để xác định hoặc nhóm các kết quả dưới dạng dữ liệu mong muốn.

Syntax highlight

Từ Splunk phiên bản 6.5 trở đi có hỗ trợ syntax highlight khi nhập các câu lệnh tìm kiếm. Splunk cung cấp các tính năng tự động hoàn thành, và các phần trong câu lệnh tìm kiếm sẽ có màu tự động. Khi con trỏ được đặt trên dấu ngoặc đơn, 2 dấu ngoặc đơn sẽ được tô sáng.

  • Toán tử và công cụ sửa đổi lệnh sẽ hiển thị màu cam.
  • Các câu lệnh sẽ hiển thị màu xanh nước biển.
  • Các tùy chọn lệnh sẽ hiển thị màu xanh lá cây.
  • Hàm sẽ hiển thị màu tím.

Search Pipeline

Khi thực hiện câu lệnh tìm kiếm, Splunk sẽ đọc kết quả từ đĩa và tạo một bản sao trong bộ nhớ, xóa những sự kiện trong kết quả tìm kiếm mà không khớp với câu lệnh tìm kiếm. Kết quả cuối cùng giống như một bảng tính, chỉ chứa các trường và giá trị bạn đã tìm kiếm. Cùng với việc sử dụng bộ lọc thời gian thời gian cho các sự kiện, với các cụm từ tìm kiếm tối ưu, sẽ làm cho bảng tính nhỏ hơn và câu lệnh tìm kiếm nhanh hơn.

Pipes dùng để phân tách giữa các thành phần tìm kiếm. Sử dụng một pipes để yêu cầu Splunk chuyển tiếp kết quả tìm kiếm trước đó làm đầu vào của thành phần tìm kiếm tiếp theo.

SPL vs SQL

Chắc hẳn đến đây sẽ có bạn thấy phần nào SPL khá giống SQL khi query, nào là từ raw data rồi lọc thành spreadsheet, rồi table, cuối cùng là result. Thực tế thì cách vận hành SQL cũng tương tự như SQL, nhưng đơn giản hơn. Theo dõi 1 số khái niệm sau đây:

Database ConceptSplunk Concept
SQL querySplunk search
table/viewsearch results
indexindex
rowresult/event
columnfield
database/schemaindex/app

Một số lưu ý khi sử dụng SPL:

  • Tất cả các search term dùng thẳng trực tiếp keyword và toán tử.
  • Mặc định các lệnh đều mang nghĩa tích cực (positive) như increase, include, bonus, true,…
  • Nếu muốn đảo ngược ý nghĩa của lệnh (negative) thì thêm dấu trừ trước tham số 1 khoảng trắng.
  • Nếu muốn chỉ định cụ thể ý nghĩa của từng tham số, thêm dấu cộng/trừ trước tham số.

Một số SPL commands phổ biến

Fields Command

Lệnh fields cho phép chọn hoặc loại trừ các trường cụ thể khỏi field sidebar. Điều này giúp ích khi cần giới hạn các trường được hiển thị và làm cho tìm kiếm chạy nhanh hơn.

Ví dụ: chỉ hiển thị 2 trường status và clientip

Table command

Lệnh table cho phép chọn hoặc loại trừ các trường cụ thể khỏi bảng kết quả. Để sắp xếp lại thứ tự hiển thị các cột trong bảng, thay đổi thứ tự của các đối số theo thứ tự các cột trong bảng muốn hiển thị.

Ví dụ: chỉ hiển thị 3 trường JSESSIONID, product_name và price

Rename Command

Lệnh rename được sử dụng để đổi tên các trường. Có thể sử dụng lệnh rename để đổi tên nhiều trường.

Sort Command

Lệnh sort cho phép bạn sắp xếp kết quả theo thứ tự tăng dần hoặc giảm dần.

Ví dụ: sắp xếp theo sale_price giảm dần, Vendor tăng dần

Các lệnh khác

Ngoài ra, còn nhiều lệnh khác với cách sử dụng tương tự, bạn có thể tìm hiểu thêm:

  • deup: dùng để lọc dữ liệu trùng trên các trường
  • chart: dùng tương tự để tạo biểu đồ, dùng với phép toán
  • timechart: dùng để hiển thị biểu đồ thời gian, dùng với phép toán
  • timewrap: dùng với timechart để tạo thêm visualize so sánh với mốc thời gian đó
  • earliest/lastest: dùng để giới hạn thời gian tìm kiếm
  • span/limit: dùng để kiểm soát visualize, chia nhỏ hoặc giới hạn nhóm dữ liệu
  • top: dùng để đếm và liệt kê các cột nhiều nhất và tỉ lệ
  • rare: dùng để đếm và liệt kê các cột thấp nhất và tỉ lệ
  • stats: dùng để thống kê, thực hiện các phép toán
  • eval: dùng để tạo 1 cột mới dựa trên giá trị tính toán (thường dùng cuối cùng)

Lưu ý: các lệnh trên đều là SPL commands (có màu xanh nước biển)

Một số hàm phổ biến trong SPL

SPL có 1 số hàm built-in dùng để thực hiện tính toán khá tương tự với các cú pháp của Excel hoặc các hàm trong thư viện của các ngôn ngữ lập trình.

  • count: đếm số lượng
  • sum: tính tổng
  • dc: đếm số lượng unique
  • list: liệt kê các giá trị
  • values: liệt kê giá trị unique
  • min: giá trị thấp nhất
  • max: giá trị cao nhất
  • avg: giá trị trung bình
  • in: giá thị thuộc list
  • range: giá trị max-min
  • round: làm tròn giá trị
  • pow: lũy thừa
  • random: ngẫu nhiên
  • if: điều kiện và kết quả
  • case: nhiều điều kiện và kết quả
  • searchmatch: tìm kiếm chứa chuỗi
  • cidrmatch: tìm kiếm chứa subnet
  • upper: viết hoa
  • lower: viết thường
  • replace: thay thế
  • substr: chuỗi con
  • tostring: chuyển thành chuỗi
  • tonumber: chuyển thành số

Lưu ý: các hàm trên đều là SPL functions (có màu tím)

Leave a Reply

This site uses cookies to offer you a better browsing experience. By browsing this website, you agree to our use of cookies.