SIEM/Log Management Tìm hiểu kiến trúc OpenSearch & OpenSearch Dashboards

1.OpenSearch là gì?​

  • OpenSearch là một bộ công cụ tìm kiếm và phân tích mã nguồn mở, có khả năng mở rộng cao, được sử dụng cho tìm kiếm toàn văn, phân tích nhật ký, khả năng quan sát, phân tích bảo mật, tìm kiếm vector và các ứng dụng xử lý dữ liệu chuyên sâu khác. Nó được xây dựng trên Apache Lucene, thư viện tìm kiếm Java hiệu năng cao hỗ trợ nhiều nền tảng tìm kiếm hiện đại. OpenSearch mở rộng Lucene với kiến trúc cụm phân tán, API REST, lập chỉ mục gần như thời gian thực, tính khả dụng cao, các tính năng bảo mật, khả năng phân tích, bảng điều khiển và một hệ sinh thái plugin và tích hợp đang phát triển.​
  • OpenSearch ban đầu là một nhánh phát triển từ Elasticsearch 7.10.2 và Kibana 7.10.2, nhưng kể từ đó đã phát triển thành một dự án riêng được cấp phép theo Apache 2.0 và do cộng đồng điều hành. Ngày nay, OpenSearch không chỉ là một công cụ tìm kiếm truyền thống. Đây cũng là một nền tảng cho khả năng quan sát, tìm kiếm vectơ, tìm kiếm ngữ nghĩa, các ứng dụng tìm kiếm hỗ trợ bởi trí tuệ nhân tạo và phân tích hoạt động.​
  • Tính đến ngày 7 tháng 4 năm 2026, phiên bản mới nhất là OpenSearch 3.6. Phiên bản này bổ sung các tính năng tìm kiếm và quan sát dựa trên tác nhân, OpenSearch Launchpad, tự động điều chỉnh mức độ liên quan, cải thiện hiệu suất tìm kiếm vector và hiệu quả lưu trữ, khả năng APM và hỗ trợ truy vấn PPL nâng cao.​

2.OpenSearch và Apache Lucene​

Cốt lõi của OpenSearch là Apache Lucene, một thư viện tìm kiếm mã nguồn mở được viết bằng Java. Lucene chịu trách nhiệm về các hoạt động lập chỉ mục và tìm kiếm cấp thấp, bao gồm lập chỉ mục đảo ngược, mã hóa token, chấm điểm và lưu trữ dựa trên phân đoạn.​
Lucene cực kỳ mạnh mẽ, nhưng nó là một thư viện chứ không phải là một nền tảng tìm kiếm phân tán hoàn chỉnh. OpenSearch được xây dựng dựa trên Lucene bằng cách thêm:​
  • Phân cụm phân tán​
  • Tỷ lệ ngang​
  • Khả năng sao chép và tính sẵn có cao​
  • API REST​
  • Quản lý chỉ mục và phân vùng​
  • Bảo mật và kiểm soát truy cập​
  • Truy vấn các giao diện DSL, SQL và PPL​
  • Bảng điều khiển OpenSearch​
  • Các tính năng quan sát, cảnh báo, phát hiện bất thường, học máy và tìm kiếm vector.​
Khái niệm Lucene quan trọng nhất đằng sau OpenSearch là chỉ số đảo ngược. Thay vì quét từng tài liệu để tìm kiếm từ khóa, Lucene lưu trữ một bản đồ ánh xạ từ các từ khóa đến các tài liệu chứa chúng. Điều này giúp tìm kiếm văn bản cực kỳ nhanh chóng vì OpenSearch có thể tra cứu một thuật ngữ và ngay lập tức xác định các tài liệu phù hợp. Lucene cũng hỗ trợ nhiều mẫu tìm kiếm khác nhau, bao gồm truy vấn toàn văn, truy vấn cụm từ, truy vấn ký tự đại diện, khớp mờ, tìm kiếm theo khoảng cách và chấm điểm mức độ liên quan. OpenSearch cung cấp các khả năng này thông qua Query DSL và các API cấp cao hơn của nó.​

3.Kiến trúc cụm OpenSearch​

Cụm OpenSearch là một tập hợp gồm một hoặc nhiều nút hoạt động cùng nhau để lưu trữ, lập chỉ mục, tìm kiếm và phân tích dữ liệu. Mỗi nút chạy OpenSearch và có thể thực hiện một hoặc nhiều vai trò.​
Một cụm máy chủ có khả năng mở rộng theo chiều ngang. Khi khối lượng dữ liệu hoặc lưu lượng truy vấn tăng lên, có thể thêm nhiều nút hơn để tăng dung lượng. Trong môi trường sản xuất, việc phân tách trách nhiệm của các nút là điều phổ biến để các khối lượng công việc quản lý cụm quan trọng, lập chỉ mục, tìm kiếm, tiếp nhận và học máy không cạnh tranh nhau về cùng một tài nguyên.​

Các nút quản lý cụm​

Thuật ngữ cũ dựa trên Elasticsearch thường được sử dụng “master node.” Trong OpenSearch, thuật ngữ được ưu tiên sử dụng là nút quản lý cụm.​
Một nút quản lý cụm chịu trách nhiệm quản lý các hoạt động ở cấp cụm, bao gồm:​
Theo dõi trạng thái cụm
  • Tạo và xóa chỉ mục​
  • Phân bổ phân mảnh​
  • Quản lý tư cách thành viên nút​
  • Điều phối việc cập nhật siêu dữ liệu cụm​
  • Giám sát tình trạng cụm máy chủ​
Chỉ có một nút quản lý cụm hoạt động tại một thời điểm, nhưng các cụm sản xuất nên có nhiều nút đủ điều kiện quản lý cụm để có thể bầu ra một nút quản lý cụm mới nếu nút hiện tại bị lỗi. Một phương pháp thực hành tốt nhất phổ biến là sử dụng số lượng lẻ các nút đủ điều kiện làm quản lý cụm, thường là ba, để hỗ trợ các cuộc bầu cử dựa trên số lượng thành viên tối thiểu và giảm nguy cơ phân tách bộ não.​

Các nút dữ liệu​

Các nút dữ liệu lưu trữ dữ liệu chỉ mục và xử lý hầu hết các công việc lập chỉ mục, tìm kiếm và tổng hợp. Các nút này thường là phần tiêu tốn nhiều tài nguyên nhất của cụm OpenSearch vì chúng thực hiện I/O ổ đĩa, các thao tác tìm kiếm tốn nhiều CPU, tổng hợp tốn nhiều bộ nhớ và hợp nhất phân đoạn.​
Kích thước các nút dữ liệu nên được xác định dựa trên:​
Khối lượng dữ liệu
  • Tỷ lệ truy vấn​
  • Tỷ lệ lập chỉ mục​
  • Số lượng phân mảnh​
  • Độ phức tạp tổng hợp​
  • Loại lưu trữ​
  • Yêu cầu về tính khả dụng​
Các tác vụ OpenSearch thường được hưởng lợi từ việc mở rộng theo chiều ngang hơn là chỉ đơn thuần tăng kích thước của một nút duy nhất.​

Các nút phối hợp​

Bất kỳ nút OpenSearch nào cũng có thể đóng vai trò là nút điều phối. Một nút điều phối nhận các yêu cầu từ phía máy khách, định tuyến chúng đến các phân vùng liên quan, thu thập phản hồi, giảm thiểu kết quả và trả về phản hồi cuối cùng cho máy khách.​
Trong các cụm lớn hơn, các nút điều phối chuyên dụng có thể giúp cách ly lưu lượng truy cập của máy khách khỏi các nút dữ liệu. Điều này đặc biệt hữu ích cho các khối lượng công việc tìm kiếm nặng, nơi giai đoạn giảm có thể trở nên tốn kém.​
Trong quá trình tìm kiếm phân tán, nút điều phối:​
Nhận được truy vấn.
  1. Gửi truy vấn đến các phân vùng chính hoặc phân vùng sao chép có liên quan.​
  2. Thu thập các kết quả hàng đầu từ mỗi phân vùng.​
  3. Sắp xếp và hợp nhất các kết quả đó.​
  4. Lấy các tài liệu cuối cùng.​
  5. Trả về phản hồi cho máy khách.​

Nhập các nút​

Các nút nhập liệu xử lý trước tài liệu trước khi chúng được lập chỉ mục. Họ vận hành các quy trình tiếp nhận dữ liệu có thể chuyển đổi, làm phong phú, phân tích cú pháp hoặc chuẩn hóa dữ liệu đầu vào.​
Các bộ xử lý nhập liệu phổ biến bao gồm:​
  • Phân tích cú pháp Grok​
  • Phân tích cú pháp ngày tháng​
  • Đổi tên trường​
  • Làm giàu GeoIP​
  • Bộ xử lý tập lệnh​
  • Xử lý tệp đính kèm​
  • Thiết lập, xóa, chuyển đổi và bộ xử lý chữ thường​
Do một số bộ xử lý nhập dữ liệu tiêu tốn nhiều CPU, các cụm máy chủ sản xuất thường sử dụng các nút nhập dữ liệu chuyên dụng để tránh làm chậm khối lượng công việc tìm kiếm và tổng hợp.​

Các nút chuyên dụng​

Tùy thuộc vào các plugin đã cài đặt và yêu cầu về khối lượng công việc, các cụm OpenSearch cũng có thể bao gồm các vai trò nút chuyên biệt, chẳng hạn như:​
Các nút học máy
  • Các nút máy khách cụm từ xa​
  • Các nút chỉ tìm kiếm hoặc nút cấp ấm​
  • Các nút điều phối chuyên dụng​
  • Các nút thu thập dữ liệu chuyên dụng​
Sự phân tách này giúp cải thiện tính ổn định của cụm và giúp dễ dàng mở rộng quy mô các phần riêng lẻ của kiến trúc.​
 
Back
Top