Skip to content

Giới thiệu ​

BlackHole Agent (binary blackhole-agt) là thành phần thu thập dữ liệu chạy trên máy chủ và endpoint. Nó đọc log từ các nguồn trên máy rồi gửi (ship) về backend như gRPC, Kafka, MQTT hoặc OpenSearch.

Agent chỉ có vai trò gửi đi. Không có embedded server và không mở port lắng nghe nào: Agent kết nối ra ngoài tới sink đã cấu hình, không chờ kết nối vào. Muốn gom dữ liệu từ nhiều máy rồi xử lý trung gian, đặt một Forwarder phía trước Agent.

Agent chạy độc lập với config local, hoặc nhận config từ Registry khi đã xác thực.

Tính năng chính ​

Thu thập dữ liệu ​

CollectorMô tả
fileĐọc log từ file, tự xử lý log rotation của hệ thống
apmSystem metrics: CPU, memory, disk, network, process (chỉ có ở Agent)
scaĐánh giá cấu hình bảo mật theo schedule
windows_eventWindows Event Log channels (chỉ Windows)

Tích hợp ​

SinkMô tả
grpcGửi dữ liệu qua gRPC
kafkaGửi tới Kafka topic
mqttPublish tới MQTT broker
blackholeGửi indexing tới OpenSearch / BlackHole
fileGhi ra file (gỡ rối hoặc lưu local)
alertKích hoạt cảnh báo
  • Registry: nhận cấu hình từ server trung tâm (tùy chọn, cần auth --key)
  • TLS/SSL: mã hóa mọi kết nối ra ngoài, hỗ trợ HTTP/HTTPS proxy
  • Service: chạy như Windows Service hoặc systemd service

Vận hành ​

  • Hot-reload: đọc lại file cấu hình khi đang chạy. Lưu ý phạm vi của hot-reload có giới hạn, xem ./operation.
  • Persistent queue: message chưa gửi được nằm trong database local, gửi lại ở lần khởi động sau.
  • Resource guard: theo dõi CPU/memory/disk, tạm dừng pipeline khi quá tải thay vì làm sập process.
  • Log rotation: luôn bật, không có công tắc tắt.

Nền tảng hỗ trợ ​

Nền tảngChi tiết
WindowsWindows 10/11, Windows Server 2016 trở về sau. Kiến trúc x86_64.
LinuxUbuntu, Debian, CentOS, RHEL, Alpine. Kiến trúc x86_64. Alpine dùng musl libc.
⚠️
Chỉ có build x86_64. Không có bản ARM64, không có bản cho Apple Silicon.

Yêu cầu hệ thống ​

ℹ️
Không có mức tài nguyên tối thiểu nào được ép buộc trong Agent. Bảng dưới đây là **gợi ý quy mô**, suy ra từ các giá trị mặc định của pipeline, không phải yêu cầu bắt buộc.
Hạng mụcGiá trị mặc địnhÝ nghĩa
Channel buffer100.000 event mỗi bênBộ đệm giữa các chặng của pipeline
Batch gửi đi500 message / 1000 ms / 10 MBNgưỡng gộp lô của sink
Persistent queue100.000 message hoặc 256 MBGiới hạn queue local trước khi chặn ghi
Database cache512 MBCache của database local blackhole-agt.db
Logmax_size_mb 10 MBDung lượng log, xem ./operation

Càng nhiều collector chạy song song và càng nhiều event/giây, càng cần CPU và RAM lớn hơn. Khi vượt ngưỡng resource guard, pipeline bị tạm dừng, xem ./operation.

Bảo mật ​

  • Xác thực với Registry bằng API key (auth --key), sau đó dùng device token
  • TLS/SSL cho các kết nối backend
  • Hỗ trợ HTTP/HTTPS proxy
  • Cấu hình (blackhole-agt.yml) chứa credential, cần giới hạn quyền đọc file
⚠️
Agent chạy bằng quyền **root** (Linux) hoặc **LocalSystem** (Windows). Chưa có cơ chế hạ quyền (privilege dropping), nên hãy giới hạn quyền truy cập thư mục cài đặt và file cấu hình.

Logging ​

TrườngMặc địnhMô tả
levelinfotrace, debug, info, warn, error, hỗ trợ cả per-target như collectors=trace
dir./logsThư mục log, resolve tương đối so với thư mục làm việc
filedefault.logLog chính
error_filedefault-error.logLog lỗi
max_size_mb10Tổng dung lượng log, quyết định kích thước mỗi file rotation

File log thực tế là logs/default.log và logs/default-error.log (relative tới thư mục làm việc của process). Rotation luôn bật. Ở chế độ service, stdout bị tắt nên file log là nơi duy nhất có output.

Chi tiết cách tìm thư mục log và đọc log, xem ./operation.

Xem thêm ​

Released under the MIT License.