SIEM/Log Management Tìm hiểu Prometheus sử dụng cơ chế Pull

I. Mô hình push và mô hình pull
1. Mô hình push
1.1. Định nghĩa

Dịch vụ hoặc các agent thu thập dữ liệu như log sẽ chuyển dữ liệu đó đến thành phần trung tâm theo một lịch trình cụ thể. [1] [2] [3]

1.2. Ưu điểm
- Thiết bị cài đặt agent không cần lưu trữ lượng log lớn.
- Độ trễ thấp do log sẽ được gửi ngay lập tức khi thỏa điều kiện
- Dễ thu thập log, chỉ số của những thiết bị nằm sau tường lửa, NAT.

1.3. Nhược điểm
- Quá tải trung tâm thu thập log nếu không giới hạn đường truyền.
- Do trung tâm phụ thuộc vào log được đẩy về, trong trường hợp thiết bị hoặc thành phần thu thập log bị hỏng sẽ khó bị phát hiện, nói cách khác là không phân biệt được thiết bị bị hỏng, ngừng hoặc chỉ không có thông tin.

1.4. Trường hợp sử dụng
- Hệ thống hướng sự kiện: Chỉ đẩy dữ liệu khi một sự kiện cụ thể xảy ra
- Dịch vụ có vòng đời ngắn: Dành cho các container
- Thiết bị biên hoặc IoT: Khi thu thập từ các thiết bị có tài nguyên hạn chế.

2. Mô hình pull
2.1. Định nghĩa

Trung tâm thu thập log sẽ kéo thông tin log, chỉ số về từ thiết bị mục tiêu, các thiết bị này chỉ đảm nhiệm nhiệm vụ lưu trữ thông tin.

2.2. Ưu điểm
- Phù hợp hơn với kết nối không ổn định: Nếu một thiết bị mất kết nối đến trung tâm, trung tâm có thể tiếp tục quá trình thu thập dữ liệu ngay khi kết nối được khôi phục.
- Kiểm soát hệ thống: Trung tâm quy định tần suất thu thập dữ liệu, tải xử lý và lịch trình thực hiện, giúp ngăn ngừa tình trạng cạn kiệt tài nguyên.
- Mở rộng quy mô thu thập: Khi một bộ phận thu thập không đáp ứng yêu cầu, người quản trị có thể cấp thêm một bộ thu thập cho cùng mục tiêu đó.

2.3. Nhược điểm
- Sự chênh lệch thời gian: đối với tiến trình ngắn chỉ chạy 30 giây và trung tâm thu thập với chu kì mỗi 60 giây sẽ không bao giờ thu thập thành công dữ liệu.
- Độ trễ cao: Dữ liệu được truy xuất định kỳ thay vì truyền tải tức thời, dẫn đến độ trễ nhẹ trong việc phát cảnh báo theo thời gian thực.

2.4. Trường hợp sử dụng
- Mỗi dịch vụ cung cấp điểm cuối riêng để xuất dữ liệu đo lường, và một tác nhân trung tâm sẽ thu thập dữ liệu này.
- Cơ sở hạ tầng cho phép thu thập dữ liệu đo lường một cách định kỳ.
- Quản lý các thiết lập thu thập dữ liệu đo lường từ một điểm duy nhất.

II. Prometheus với mô hình pull
1. Cơ chế pull trong Prometheus

Về cốt lõi, Prometheus là một cơ sở dữ liệu chuỗi thời gian đi kèm với ngôn ngữ truy vấn mạnh mẽ mang tên PromQL. Thiết kế nền tảng của nó dựa trên mô hình "kéo", trong đó máy chủ Prometheus trung tâm chủ động thu thập dùng cơ chế "scrape" các chỉ số từ ứng dụng và cơ sở hạ tầng của bạn theo những khoảng thời gian định kỳ. [4] [5]

2. Lợi ích của cơ chế pull
- Máy chủ Prometheus quyết định tần suất thực hiện thu thập, ngăn chặn tình trạng các ứng dụng được giám sát bị quá tải hoặc làm sập cơ sở dữ liệu giám sát khi lưu lượng truy cập tăng đột biến.
- Cấu hình các mục tiêu và tần suất thu thập dữ liệu tại một vị trí trung tâm duy nhất, kiểm soát được dữ liệu cần thu thập mà không tràn bộ lưu trữ.
- Ứng dụng không cần biết vị trí của Prometheus, không cần xử lý lỗi mạng khi đẩy dữ liệu hay triển khai cơ chế thử lại, điều này giúp các thư viện thu thập dữ liệu trở nên gọn nhẹ và hoạt động ổn định.
- Prometheus có thể tích hợp trực tiếp với các cơ chế phát hiện dịch vụ để tự động tìm kiếm các instance dịch vụ mới ngay khi chúng được tạo ra và bắt đầu thu thập dữ liệu mà không cần cấu hình thủ công.

3. Nhược điểm khi sử dụng cơ chế push qua Pushgateway trong Prometheus
- Dựa trên một thành phần phụ thuộc để hoạt động sẽ dẫn đến tất cả dữ liệu bị mất đi nếu Pushgateway bị lỗi.
- Các chỉ số được đẩy vào Pushgateway sẽ được lưu trữ cho đến khi bị xóa thủ công qua lệnh gọi API hoặc bị ghi đè bởi dữ liệu mới từ một job cùng tên. Nếu đẩy dữ liệu thất bại thì Prometheus sẽ thu thập lại dữ liệu cũ.
- Không phân biệt được nếu mục tiêu cung cấp log, chỉ số bị hỏng hay chỉ không đẩy được dữ liệu đến Pushgateway.

Tài liệu tham khảo
[1] https://mustafaerbay.com.tr/en/blog...push-vs-pull-modellerini-ne-zaman-kullanmali/
[2] https://nhimg.org/faq/what-is-the-d...and-pull-metrics-collection-in-monitoring-sy/
[3] https://www.yougetsignal.com/de/library/push-vs-pull-2p7ksgy
[4] https://medium.com/@pratap477/an-ar...theus-the-battle-of-push-vs-pull-00afd60d0066
[5] https://www.dash0.com/guides/prometheus-monitoring
 
Back
Top