Tổng quan
Trang này tóm lược kiến trúc tổng thể của G‑BlackHole: cách các thành phần như Agent, Forwarder cùng các mô-đun giám sát, thu thập, biến đổi và chuyển phát dữ liệu phối hợp với nhau; đồng thời mô tả cách hệ thống tích hợp với các dịch vụ bên ngoài.Thành phần chính
- Registry: Điểm điều phối trung tâm (API/MQTT) lưu thông tin cấu hình, đăng ký thiết bị/tác nhân và phát hành lệnh điều khiển.
- Agent(s): Chạy trên máy/điểm cuối, bao gồm:
- Supervisor: Giám sát vòng đời tiến trình, tải cấu hình từ Registry, kích hoạt/khởi động collectors và shippers.
- Collectors: Thu thập dữ liệu từ nhiều nguồn:
Files,Windows Events,APM,Rsyslog,Kafka,MQTT… theo chế độ sự kiện hoặc định kỳ. - Shippers: Đóng gói và gửi dữ liệu ra ngoài (TCP/UDP, MQTT, HTTP…) đến Forwarder hoặc trực tiếp đến đích cấu hình.
- Forwarder: Lớp trung gian tiếp nhận, biến đổi và chuyển phát:
- Supervisor: Quản lý vòng đời các dịch vụ thu/cấp phát dữ liệu.
- Selectors: Các điểm vào dữ liệu:
Rsyslog Server,Kafka Consumer,MQTT Client. - Transformers: Chuẩn hoá/biến đổi/enrich sự kiện trước khi chuyển phát.
- Shippers: Gửi ra
MQTT Broker,HTTP Proxy Serverhoặc các đích khác (BlackHole, Kafka, v.v.).
- External Services / Sinks:
MQTT Broker,BlackHole,Kafka Broker, hoặc dịch vụ HTTP bên ngoài.
Luồng dữ liệu điển hình
- Collectors trên Agent đọc dữ liệu theo cơ chế sự kiện hoặc định kỳ và đẩy cho Shipper nội bộ.
- Shipper của Agent gửi sự kiện qua các kênh: TCP/UDP, subscribe/consume (MQTT/Kafka), hoặc chuyển thẳng tới Forwarder.
- Forwarder tiếp nhận qua
Rsyslog Server/Kafka Consumer/MQTT Client, sau đó chuyển quaTransformersđể chuẩn hoá. - Shipper của Forwarder chuyển kết quả tới điểm đích:
MQTT Broker,HTTP Proxy Server, hoặc dịch vụ BlackHole/Kafka bên ngoài. - Registry trao đổi điều khiển/cấu hình với Agent và Forwarder qua API hoặc MQTT.
Gợi ý triển khai
- Ưu tiên gửi dữ liệu từ Agent tới Forwarder khi cần chuẩn hoá/tích hợp nhiều nguồn đích; có thể gửi trực tiếp tới đích khi pipeline đơn giản.
- Dùng MQTT làm kênh pub/sub cho cấu hình động và phản hồi trạng thái; Kafka thích hợp cho thông lượng cao và lưu vết lâu dài.
Transformersnên tách rule theo loại sự kiện để dễ mở rộng và kiểm thử.
