- vừa được xem lúc

Tìm kiếm bằng KQL Elasticsearch

0 0 2

Người đăng: Đồng Dương

Theo Viblo Asia

Để lấy trường clientMessageId từ log JSON mà bạn đã cung cấp, bạn có thể sử dụng grok hoặc json filter trong Logstash hoặc thực hiện truy vấn trực tiếp trên Kibana nếu dữ liệu đã được đẩy vào Elasticsearch. Dưới đây là hai cách phổ biến để trích xuất giá trị của trường clientMessageId.

  1. Sử dụng Grok Filter trong Logstash Bạn có thể sử dụng grok để trích xuất clientMessageId từ trường message. Đầu tiên, bạn cần định nghĩa pattern sao cho phù hợp với log của bạn.

Cấu hình Grok: Trong file logstash.conf, bạn có thể cấu hình bộ lọc như sau:

filter { grok { match => { "message" => 'clientMessageId":"%{NUMBER:clientMessageId}"' } }
}

Trong đó:

clientMessageId: Sẽ lấy ra chuỗi số sau "clientMessageId":. %{NUMBER:clientMessageId}: Đây là phần để lấy ra giá trị số nguyên của clientMessageId. 2. Sử dụng JSON Filter trong Logstash Vì log của bạn có cấu trúc JSON, bạn cũng có thể sử dụng json filter để tự động phân tích cú pháp và trích xuất các trường từ JSON.

Cấu hình JSON Filter: Trong file logstash.conf, sử dụng bộ lọc json như sau:

filter { json { source => "message" }
}

Bộ lọc này sẽ tự động trích xuất tất cả các trường từ log JSON, bao gồm cả trường clientMessageId. Sau khi phân tích cú pháp, bạn có thể trực tiếp truy cập vào clientMessageId trong các phần sau của pipeline hoặc gửi thẳng đến Elasticsearch.

  1. Tìm kiếm trên Kibana (KQL) Nếu log đã được đẩy vào Elasticsearch và bạn muốn tìm kiếm clientMessageId trực tiếp trên Kibana, bạn có thể sử dụng KQL (Kibana Query Language).

Ví dụ, để tìm tất cả các log có clientMessageId cụ thể, bạn có thể sử dụng truy vấn KQL như sau:

kql contextMap.clientMessageId: "12321424124" Nếu bạn chỉ muốn tìm các log mà trường clientMessageId tồn tại:

kql Copy code contextMap.clientMessageId: * 4. Sử dụng Dev Tools để kiểm tra trên Kibana Bạn cũng có thể chạy một truy vấn đơn giản bằng Elasticsearch Query DSL thông qua Dev Tools của Kibana để tìm kiếm log với clientMessageId. Ví dụ:

GET /your_index/_search
{ "query": { "match": { "contextMap.clientMessageId": "12321424124" } }
}

Tóm tắt: Grok Filter: Sử dụng nếu log của bạn chưa có cấu trúc JSON rõ ràng. JSON Filter: Sử dụng để tự động phân tích cú pháp log JSON. KQL trên Kibana: Tìm kiếm trực tiếp trên Kibana nếu dữ liệu đã được đẩy vào Elasticsearch.

Bình luận

Bài viết tương tự

- vừa được xem lúc

[Elastic Stack] - Xây dựng, triển khai giám sát và quản lý tập trung request logs theo kiến trúc microservices

Elastic Stack - ELK là một nhóm các dự án mã nguồn mở (open source) được triển khai nhằm mục đích thu thập, phân tích, thống kê, tìm kiếm và trực quan hóa dòng dữ liệu (Data Stream) theo thời gian thự

0 0 51

- vừa được xem lúc

Elastic Stack: Tìm hiểu về công cụ phân tích và trực quan hóa dữ liệu

Giới thiệu. Trong thế giới công nghệ hiện đại, việc xử lý và phân tích dữ liệu trở nên ngày càng quan trọng.

0 0 7

- vừa được xem lúc

Làm thế nào để tạo Index templates trong Elasticsearch.

I. Giới thiệu về Elasticsearch và Index Templates. A. Elasticsearch là gì.

0 0 11

- vừa được xem lúc

Truy vấn phức hợp (Compound Query) trong Elasticsearch là gì?

I. Truy vấn phức hợp (Compound Query) trong Elasticsearch. A. Định nghĩa và mục đích của truy vấn phức hợp:.

0 0 15

- vừa được xem lúc

Làm thế nào sử dụng truy vấn Dis_max trong Elasticsearch

I. Giới thiệu về Elasticsearch. A. Khái niệm về Elasticsearch.

0 0 8

- vừa được xem lúc

Kiến Trúc Của Elasticsearch Có Gì Hấp Dẫn?

1. Giới Thiệu Chung Kiến trúc Elasticsearch.

0 0 15