Splunk [Lab 1] How to onboard data in Splunk Cluster

vantna

Internship/Fresher
Sep 8, 2020
5
2
3
Cấu hình onboard data trong Splunk Cluster
Phần 1: Giới thiệu Splunk Cluster.
Quá trình onboard data là quá trình đưa dữ liệu vào Splunk Cluster, trong bài viết này, dữ liệu cần đưa vào Log của các thiết bị trong hệ thống. Quá trình onboard data vào Splunk Cluster khác với quá trình onboard data trong Splunk Core vì nguyên nhân Splunk Cluster gồm nhiều các server đóng vài trò khác nhau, thay vì all-in-one như Splunk Core. Trước tiên, cùng tìm hiểu tổng qua kiến trúc Splunk Cluster trước khi tiến hành quá trình cấu hình onboard data cho Splunk Cluster.
1. Giới thiệu Splunk Cluster và các thành phần.

1.jpg

MÔ HÌNH SPLUNK CLUSTER.
Một Cluster bao gồm 3 kiểu node:
  • Một Master node: đóng vai trò quản lí các cluster.
  • Các Peer Nodes, hay còn gọi là Indexer: có nhiệm vụ index data(đánh chỉ mục dữ liệu), replicate data(tạo thêm 1 bản sao của data), sẵn sàng cho việc tìm kiếm dữ liệu.
  • Một hoặc nhiều Search Head: có nhiệm vụ điều phối tìm kiếm (search) trên tất cả các Peer Node.
Ngoài ra, Cluster khi triển khai thường sử dụng fowarders(universal forwarder, heavy forwarder, light forwarder) để nhập (ingest) và chuyển tiếp (forward) dữ liệu đến các peer node. Master nodes, peer nodes, và search heads là các đối tượng(instance) Splunk Core với chức năng đặc biệt. Tất cả các node phải được triển khai là một đối tượng(instance) riêng biệt và trên máy riêng biệt, độc lập và tách rời nhau. Ví dụ: Master Node không thể cùng là một đối tượng hoặc nằm chung với Peer Node và Search Head.
Chú ý: Master Node và tất cả Peer Nodes phải được dùng riêng cho một cluster. Một Master Node không thể quản lý được nhiều Cluster. Một Peer Node không thể kết nối với nhiều Master Node. Tuy nhiên, Search Head có thể thực hiện tìm kiếm trên nhiều Cluster khác nhau.

1.1 Master Node

Master Node có nhiệm vụ quản lý Cluster:
  • Điều phối hoạt động sao chép (replicate) dữ liệu của các Peer Node và chỉ đường cho Search Head chỗ chứa dữ liệu.
  • Quản lý cấu hình của các Peer Node và điểu phối các hoạt động khắc phục nếu một Peer Node bị down.
Không giống như các Peer Node, Master Node không thực hiện việc đánh chỉ mục dữ liệu. Một Cluster chỉ có duy nhất một Master Node.



5.jpg


1.2 Peer Node

4.jpg

Peer Node thực hiện chức năng lập chỉ mục(index) cho cluster. Chúng nhận dữ liệu và lập chỉ mục (index)dữ liệu được gửi đến. Peer Node cũng gửi replicated data(bản sao của dữ liệu) đến các Peer Node khác trong Cluster và nhận dữ liệu đã được sao chép từ các Peer Node khác. Một Peer Node có thể lập vừa lập chỉ mục dữ liệu bên ngoài mà nó nhận được, đồng thời peer node cũng nhận và gửi bản sao của dữ liệu(replicated data). Giống như tất cả các indexer, các peer node cũng có thể tìm kiếm dữ liệu đã được lập chỉ mục của họ để đáp ứng các yêu cầu tìm kiếm từ Search Head.
Số lượng peer node trong cluster phụ thuộc vào hai yếu tố: replication factor của cluster và load. Ví dụ: nếu có replication factor là 3 (nghĩa là lưu trữ ba bản sao dữ liệu),thì cần ít nhất 3 peer node. Nếu có nhiều indexing load, cần nhiều hơn 3 indexer có thể xử lý, có thể thêm nhiều peer node để tăng khả năng.

1.3 Search Head


3.jpg

Search Head quản lý tìm kiếm trên tập hợp Peer Node. Nó phân phối các truy vấn tìm kiếm cho các peer node và tổng kết kết quả. Người dùng bắt đầu tất cả các tìm kiếm trên Search Head. Một cluster phải có ít nhất một Search Head.

1.4 Forwarder

2.jpg

Forwarder trong Splunk có tên đầy đủ là Splunk Universal Forwarder, hay được gọi tắt là Agent. Forwarder trong Cluster hoạt động giống như trong Splunk Core thông thường. Chúng thu thập dữ liệu từ các nguồn bên ngoài hệ thống, sau đó chuyển tiếp dữ liệu đó đến các indexer, trong cluster chính là các peer node. Không bắt buộc phải sử dụng Forwarder để thu thập dữ liệu cho cluster, nhưng đây là cách tốt nhất để thu nhập dữ liệu. Bởi vì chỉ với Forwarder mới có thể bật tính năng indexer acknowledgment, điều này đảm bảo rằng dữ liệu đến sẽ được lập chỉ mục một cách đáng tin cậy. Ngoài ra, để giải quyết các lỗi tiềm tàng của peer node, nên sử dụng load-balancing forwarders. Theo cách đó, nếu một peer node down, forwarde có thể chuyển hướng dữ liệu sang các peer node khác trong nhóm cân bằng tải.

2. Một số khái niệm quan trọng trong Splunk Cluster

Để hiểu cách thức hoạt động của cluster, cần hiểu các khái niệm sau:
  • Replication Factor: Xác định số lượng bản sao của dữ liệu mà cluster lưu trữ, do đó, đây là mức độ chịu lỗi của cluster.
  • Search Factor: Xác định số lượng của các bản dữ liệu có thể sẵn sàng tìm kiếm, do đó, đây là mức độ cluster phục hồi khả năng tìm kiếm nhanh hay chậm sau khi peer node down.
  • Buckets: Là đơn vị cơ bản của index storage. A cluster maintains replication factor number of copies of each bucket.
2.1 Hệ số Replication Factor.

Nằm trong phần việc cấu hình master node, nhập số lượng bản sao dữ liệu mà cluster chứa. Số lượng bản sao được gọi là cluster's replication factor. Replication factor là một khái niệm quan trọng trong index replication, bởi vì nó xác định khả năng chịu lỗi của cluster: một cluster có thể chịu được số lỗi bằng (Replication factor - 1) peer node down. Ví dụ: Cluster có chỉ số Replication factor=5, thì cluster đó chịu được lỗi tối đa khi 4 peer node down. Giá trị của chỉ số Replication factor mặc định là 3.

Cùng xem ví dụ sau, với 3 peer nodes, và hệ số replication factor= 3 :

6.jpg

Trong sơ đồ trên, một peer đang nhận dữ liệu từ forwarder , sau đó xử lý rồi truyền đến hai peer khác. Cluster sẽ chứa ba bản sao hoàn chỉnh của dữ liệu. Sơ đồ này đại diện cho một phiên của peer replication rất đơn giản, trong đó tất cả dữ liệu được đưa vào hệ thống thông qua một peer. Trong mô hinhthree-peer cluster, cả ba peer sẽ nhận được external data từ một forwarder, cũng như replicated data từ các peer khác.

2.2 Hệ số Search factor

Trong quá trình cấu hình master, phải chỉ ra một search factor. Search factor xác định số lượng bản sao dữ liệu có thể tìm kiếm ngay lập tức mà cluster có.
Các bản sao dữ liệu có thể tìm kiếm đòi hỏi nhiều không gian lưu trữ hơn các bản sao không thể tìm kiếm, vì vậy tốt nhất là giới hạn số lượng của search factor để phù hợp với nhu cầu chính xác. Thông thường, sử dụng giá trị mặc định là 2. Điều này cho phép cluster tiếp tục tìm kiếm với ít gián đoạn nếu một peer node bị hỏng.

Sự khác biệt giữa một bản sao có thể tìm kiếm(searchable) và không thể tìm kiếm(non-searchable) của dữ liệu là:
  • Bản sao có thể tìm kiếm chứa cả data và file chỉ mục mở rộng(extensive index files) mà cluster sử dụng để tìm kiếm data.
  • Bản sao không thể tìm kiếm chỉ chứa data.
Tuy nhiên, data được lưu trữ trong bản sao không thể tìm kiếm, đã trải qua quá trình xử lý ban đầu và được lưu trữ ở dạng cho phép tạo lại các file chỉ mục mở rộng (extensive index files) trong trường hợp nếu cần sử dụng sau này.

2.3 Buckets

Splunk Core lưu trữ indexed data(dữ liệu đã được index) trong các bucket, là các thư mục chứa các tệp dữ liệu(directories containing files of data). Một index thường gồm có nhiều bucket.

Một cluster hoàn chỉnh chứa số lượng replication factor của mỗi bucket, với mỗi bản sao nằm trên một peer node riêng biệt. Các bản sao bucket có thể tìm kiếm hoặc không thể tìm kiếm. Một cluster hoàn chỉnh cũng có số search factor của các bản sao có thể tìm kiếm của mỗi bucket(A complete cluster also has search factor number of searchable copies of each bucket).

Các thùng chứa hai loại file:
  • Tệp rawdata, chứa data cùng với một số metadata.
  • Các bản sao có thể tìm kiếm của các bucket – index files bên trong data.
Cluster replicate data trên nền tảng/cơ sở bucket-by-bucket. Bucket ban đầu và các bản sao của nó trên các peer node khác có các bộ rawdata đồng nhất với nhau. Bản sao có thể tìm kiếm cũng chứa các index file.

Mỗi khi một peer tạo ra một bucket mới, nó sẽ liên lạc với master để lấy danh sách các peer để truyền bucket’data đến đó. Nếu một cluster có số lượng peer node vượt quá hệ số sao chép(replication factor), một peer có thể truyền dữ liệu đến một tập hợp các peer khác nhau mỗi khi nó tạo một bucket mới. Cuối cùng, các bản sao của các bucket ban đầu của peer có khả năng được trải rộng trên một số lượng lớn các peer, ngay cả khi hệ số sao chép(replication factor) chỉ là 3.

3. Quản lý Agent(Splunk Universal Forwarder) trong Splunk Cluster.

Sau khi cài Agent trên các server cần đẩy log về Splunk, ta có thể quản lý chúng trên Master server(Master Node) trên Splunk.
Chi tiết cách cài Agent, các bạn có thể tham khảo bài viết sau:

Để quản lý các Agent, chọn Setting -> Forwarder management.


7.jpg



Giao diện Forwarder management như sau:

8.jpg

Tab Clients.

Trên đây là giao diện của Forwarder Management, hiển thị các thông tin để quản lý các Agent đã được cài đặt trên datasource. Agent sau khi được cài đặt trên datasource, sẽ hiển thị các thông tin của datasource như: địa chỉ IP, hệ điều hành(windows-x64, linux-x86_64), hostname. Và lúc này, Deploymenet server định danh các Agent đã được cài trên các datasource là Client, và các thông tin định danh được sử dụng để định danh là các thông tin của chính datasource( địa chỉ IP, host name).
  • Tab Clients: hiển thị toàn bộ các datasource đã được cài Agent và thông tin định danh của Client.
  • Tab Apps: hiển thị các Apps có trong đường dẫn /splunk/splunk/etc/deployment-apps của Deployment server, đây chính là các cấu hình sẽ được push xuống các Agent đã được cài trên Client, nhằm mục đích chỉ định các loại log, đường dẫn log, cách thu thập log,…mà người quản trị muốn thu thập. Từ các thông tin này, Agent sẽ thu thập log và dữ liệu liên quan trên các máy Client, sau đó gửi về Indexer.

9.jpg


Tab Apps
  • Tab Server Classes: hiển thị nhóm các Clients cần được push các Apps xuống Agent để thực hiện thu thập log theo cấu hình. Chú ý, mỗi Server Classes nên cùng điểm chung như: cùng os, cùng chứa loại log cần thu thập(IIS, cùng loại ứng dụng cần thu thập log…), giống đường dẫn log. Mục đích để tối ưu việc push các cấu hình

10.jpg


4. Quản lý Indexer trong Splunk Cluster.
Các Indexer sau khi nhận log từ Agent gửi về, sẽ thực hiện Index log, và việc index các dữ liệu này được thực hiện như thế nào(lưu tại đâu, theo sourcetype, index…) sẽ được Deployment server cấu hình và quản lý.

Để cấu hình, quản lý các Indexer, vào Settings, chọn Indexer Clustering.

11.jpg


Dưới đây là giao diện của Indexer Clustering, được sử dụng để quản lý, push các cấu hình xuống cho các Indexer nhằm mục đích cấu hình Indexer lưu trữ, index… theo mong muốn của người quản trị:


12.jpg


Trên đây, tôi đã giới thiệu Cluser Splunk, nơi quản lý và cấu hình Agent và Indexer. Việc quản lý, cấu hình các Agent và Indexer như thế nào, sẽ được trình bày tiếp theo.

5. Tài liệu tham khảo:

https://www.aplura.com/splunk-best-practices/
Splunk Documents.
 

Attachments

  • 4.jpg
    4.jpg
    11.3 KB · Views: 0
  • 4.jpg
    4.jpg
    11.3 KB · Views: 0
Last edited:
  • Wow
  • Love
Reactions: gani and diephan
Hi @vantna,

Vậy recommend mô hình như thế nào thì mình sẽ dùng Replication Factor và Search Factor ra sao để đạt hiệu quả search nhanh nhất hoặc cân bằng việc search nhanh và dự phòng ở mức an toàn mà không tốn quá nhiều tài nguyên lưu trữ?
 

About us

  • Securityzone.vn là một trang web chuyên về an ninh mạng và công nghệ thông tin. Trang web này cung cấp các bài viết, tin tức, video, diễn đàn và các dịch vụ liên quan đến lĩnh vực này. Securityzone.vn là một trong những cộng đồng IT lớn và uy tín tại Việt Nam, thu hút nhiều người quan tâm và tham gia. Securityzone.vn cũng là nơi để các chuyên gia, nhà nghiên cứu, sinh viên và người yêu thích an ninh mạng có thể trao đổi, học hỏi và chia sẻ kiến thức, kinh nghiệm và giải pháp về các vấn đề bảo mật trong thời đại số.

Quick Navigation

User Menu