Hướng dẫn cấu hình Stream và Index Set trong Graylog
Bài viết này nhằm giúp bạn hiểu rõ hơn về hai
khái niệm quan trọng trong Graylog: Stream và Index Set. Chúng ta sẽ đi sâu vào
cách tạo, quản lý và ứng dụng của chúng trong việc quản lý log. Hiểu rõ về
Stream và Index Set sẽ giúp bạn tối ưu hóa việc sử dụng Graylog và nâng cao
hiệu quả quản lý dữ liệu log.
1. Tổng quan Stream và Index
Set trong Graylog
Stream và Index Set trong Graylog
Stream và Index Set trong Graylog đóng vai trò
quan trọng trong việc quản lý log hiệu quả. Stream giúp phân loại và phân phối
log theo các quy tắc cụ thể, giúp dễ dàng giám sát và phát hiện sự cố. Index
Set quản lý việc lưu trữ log, tối ưu hóa hiệu suất truy vấn và đảm bảo log
không vượt quá dung lượng cho phép. Sự tích hợp giữa Stream và Index Set giúp
tối ưu hóa việc quản lý và truy xuất dữ liệu log, từ đó nâng cao hiệu quả và
tuân thủ quy định bảo mật.
2. Stream trong Graylog
Streams trong Graylog
Streams trong Graylog là cách bạn tổ chức và
phân loại log dựa trên các tiêu chí cụ thể.
Mặc định các Input đi vào Default Stream và
được lưu trữ ở Default index set. Nhưng khi ta muốn lọc log xác thực (authority
and security) ra một luồng, log của http (nginx) ra một luồng thì ta cần đến
stream.
Lý do tại sao ta cần phải dùng đến Stream là
để lọc và phân chia ra các loại log thiết yếu. Ví dụ log xác thực thì cần có
thời gian lưu trữ lâu và cần phải có cảnh báo nên ta cần tạo ra các luồng dữ
liệu như thế để quản lý dễ dàng.
2.1 Cấu trúc hoạt động của
Stream
- Đầu tiên từ các Input (hay
Source) sẽ gửi các message (log). Lúc này gray log nhận được log thì nó sẽ
đến việc lọc log.
- Extractor Filter: sẽ là
trường lọc log đầu tiên, lúc này cấu trúc các biến trong log sẽ thay đổi.
- Tiếp đó đến Static Field
Filter sẽ bắt đầu lọc tiếp trường này để phân loại log.
- Tiếp đến Stream Matcher
Filter sẽ bắt đầu lọc ra các luồng mà chúng ta mong muốn. (Mỗi luồng sẽ có
các tiêu chí phù hợp để lọc)
- Từ Stream lọc ra lúc này
sẽ được duyệt qua các Stream rules từ đó sẽ cho ta biết các thức mà log đó
được lưu trữ trong MongoDB (lưu bao nhiêu bản, dung lượng bao nhiêu, bao
lâu thì xóa).
- Ngoài ra Stream cũng cung
cấp các chức năng đến output trực tiếp và dựa vào Elastic Search để lập
chỉ mục.
Cách thức hoạt động của Stream
2.2 Các thành phần có trong
Stream
Stream Rules (Quy tắc của Stream):
- Field Content Alert: Kiểm
tra xem một trường cụ thể có chứa một giá trị nhất định hay không.
- Field Presence: Kiểm tra
xem một trường cụ thể có tồn tại trong thông điệp hay không.
- Field Value: Kiểm tra xem
một trường cụ thể có giá trị lớn hơn, nhỏ hơn, bằng, hoặc không bằng một
giá trị nhất định.
- Regex Match: Kiểm tra xem
một trường cụ thể có khớp với một biểu thức chính quy hay không.
Stream Alerts (Cảnh báo của
Stream): Thiết lập cảnh báo dựa trên các điều kiện của stream. Ví dụ, cảnh
báo khi có một số lượng nhất định các thông điệp khớp với quy tắc của stream
trong một khoảng thời gian nhất định.
Stream Outputs (Đầu ra của Stream): Định
tuyến các thông điệp log khớp với quy tắc của stream đến các đầu ra cụ thể như
một index khác, một hệ thống bên ngoài (qua HTTP, email, hoặc các plugin khác).
Permissions (Quyền hạn): Quản lý quyền
truy cập vào stream cho các người dùng hoặc nhóm người dùng khác nhau. Bạn có
thể thiết lập ai có quyền đọc, ghi, hoặc quản lý stream.
Associated Pipelines (Các Pipeline Liên
quan): Áp dụng các pipeline rule cụ thể cho các thông điệp log khớp với
stream để thực hiện các xử lý bổ sung như làm sạch dữ liệu, thêm hoặc sửa đổi
các trường, hoặc định tuyến thêm.
3. Index Set trong Graylog
3.1 Indices là gì?
Indices là cách Graylog lưu trữ dữ liệu log
trên backend. Mỗi index chứa một tập hợp các log và có các cài đặt cụ thể như
kích thước tối đa, số lượng phân đoạn, và thời gian giữ lại dữ liệu.
Mục đích chính để sử dụng Indices:
- Quản lý lưu trữ: Khi bạn
cần quản lý lưu trữ dữ liệu log và kiểm soát cách dữ liệu được lưu trữ,
phân đoạn và giữ lại.
- Quản lý vòng đời dữ liệu:
Khi bạn cần thiết lập chính sách vòng đời dữ liệu để tự động xóa hoặc lưu
trữ dữ liệu cũ sau một khoảng thời gian nhất định.
3.2 Các thành phần chính
của Indices
Index Set: Một tập hợp các chỉ mục được
quản lý như một đơn vị logic duy nhất. Mỗi index set có các cấu hình cụ thể như
pattern, retention, và rotation.
Index Rotation:
- Size-based rotation: Xoay
vòng khi kích thước của index đạt đến một ngưỡng cụ thể.
- Time-based rotation: Xoay
vòng theo chu kỳ thời gian (hàng giờ, hàng ngày, hàng tuần, hoặc hàng
tháng).
- Message Count-based
rotation: Xoay vòng khi số lượng thông điệp trong index đạt đến một ngưỡng
cụ thể.
Index Retention:
- Delete: Xóa các index cũ
sau một khoảng thời gian hoặc khi số lượng index đạt đến một ngưỡng cụ
thể.
- Close: Đóng các index cũ
nhưng giữ lại chúng trên hệ thống.
- Archive: Lưu trữ các index
cũ để lưu trữ lâu dài nhưng không còn được truy cập thường xuyên.
Index Configuration:
- Shards: Số lượng phân đoạn
mà index sẽ được chia nhỏ để tối ưu hóa hiệu suất truy vấn và lưu trữ.
- Replicas: Số lượng bản sao
của mỗi phân đoạn để đảm bảo khả năng chịu lỗi và hiệu suất.
Index Mappings: Xác định cấu trúc của dữ liệu được lưu trữ trong index, bao gồm
các loại dữ liệu và các trường cụ thể. Mappings giúp Elasticsearch hiểu cách
lưu trữ và truy vấn dữ liệu.
Retention Strategy: Chiến lược để xác định khi nào các dữ liệu log cũ nên được xóa hoặc
lưu trữ để quản lý không gian lưu trữ hiệu quả.
4. Thực hành cấu hình Stream và
Index Set trong Graylog
Tiếp theo chúng tôi sẽ hướng dẫn bạn cấu hình
stream và index set cho những log đăng nhập thành công hay thất bại vào
vcenter.
Đầu
tiên ta cần tạo index set để lưu trữ các log về việc đăng nhập vào vcenterTạo
index set để lưu trữ các log về việc đăng nhập vào vcenterManage
extratorsTiếp theo ta cần tạo grok
partern để phân loại ra những log đăng nhập của vcenter
|
Event \[%{NUMBER}\] \[1-1]
\[%{TIMESTAMP_ISO8601:time}\] \[vim.event.EventEx] \[%{LOGLEVEL:lever}]
\[%{DATA:user_login}] \[] \[%{NUMBER}] \[%{GREEDYDATA:action} %{DATA} from
%{IPV4:ip} at %{MONTHNUM}/%{MONTHDAY}/%{YEAR} %{HOUR}:%{MINUTE}:%{SECOND}
%{WORD} in SSO |
Tiếp theo ta cần tạo stream Update streamCuối cùng ta sẽ tạo stream rule Edit
stream RuleNhớ tích chọn cho phép thỏa mãn điều kiện của 1 trong các rules
nhéBây giờ ta sẽ tiến hành kiểm tra kết quả
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu về
hai khái niệm quan trọng trong Graylog: Stream và Index Set, cũng như khám phá
cách tạo, quản lý và ứng dụng của chúng trong việc quản lý log. Hiểu rõ về
Stream và Index Set sẽ giúp bạn tối ưu hóa việc sử dụng Graylog và nâng cao
hiệu quả quản lý dữ liệu log. Nếu gặp phải vướng mắc cần giải đáp, hãy liên hệ
với chúng tôi để được hỗ trợ sớm nhất nhé.
Nguồn: https://suncloud.vn/stream-va-index-set-trong-graylog
Nhận xét
Đăng nhận xét