Installing BlackHole Search
BlackHole Search cung cấp giải pháp tích hợp đầy đủ để khám phá, tìm hiểu và truy vấn dữ liệu quan sát của bạn một cách trực quan. Bạn có thể cài đặt BlackHole Search với bất kỳ tùy chọn nào sau đây:- Docker
- Tarball
- RPM
- Debian
- Helm
- Windows
Browser compatibility
BlackHole Search hỗ trợ các trình duyệt web sau:- Chrome
- Firefox
- Safari
- Edge (Chromium) Các trình duyệt khác dựa trên Chromium cũng có thể hoạt động. Internet Explorer và Microsoft Edge Legacy không được hỗ trợ.
Node.js compatibility
BlackHole Search yêu cầu cài đặt Node.js runtime binary để chạy. Một gói cài đặt có sẵn trong các gói phân phối có sẵn trên trang tải xuống BlackHole. Để sử dụng tệp nhị phân thời gian chạy Node.js khác với tệp có trong các gói phân phối, hãy làm theo các bước sau:- Tải xuống và cài đặt Node.js; các phiên bản tương thích là
>=14.20.1 <19 - Đặt đường dẫn cài đặt tới biến môi trường NODE_HOME hoặc NODE_OSD_HOME.
Configuration
Để tìm hiểu cách cấu hình TLS cho BlackHole Search, hãy xem Configure TLS.Run BlackHole Search using Docker and Docker Compose
Bạn có thể sử dụng Docker hoặc Docker Compose để chạy BlackHole Search. Phương pháp Docker Compose dễ dàng hơn vì bạn có thể định nghĩa toàn bộ cấu hình trong một tệp duy nhất.Chạy BlackHole Search bằng Docker
Nếu bạn đã xác định mạng của mình bằng docker network, hãy tạo bh-net và khởi động BlackHole bằng lệnh sau:- Tạo tệp cấu hình blackhole_search.yml:
- Thực hiện lệnh sau để bắt đầu BlackHole Search
Chạy BlackHole Search bằng Docker Compose
Sử dụng các bước sau để chạy BlackHole Search bằng Docker Compose:- Tạo tệp docker-compose.yml phù hợp với môi trường của bạn. Tệp mẫu bao gồm BlackHole Search có sẵn trên trang cài đặt BlackHole Docker. Bạn có thể truyền tệp blackhole_search.yml tùy chỉnh vào vùng chứa trong tệp Docker Compose. Để biết thêm thông tin, hãy xem Ví dụ Docker Compose hoàn chỉnh với cấu hình tùy chỉnh.
- Tạo tệp blackhole_search.yml:
Chạy BlackHole Search bằng tarball
- Tải xuống tarball tại đây.
- Giải nén tệp TAR vào một thư mục và chuyển đến thư mục đó:
- Nếu muốn, hãy sửa đổi config/blackhole_search.yml, sau đây là config demo.
- Run BlackHole Search:
Cấu hình TLS cho Blackhole Dashboards
Theo mặc định, để thuận tiện cho việc thử nghiệm và bắt đầu sử dụng, Blackhole Dashboards chạy trên HTTP.Để bật TLS cho HTTPS, hãy cập nhật các thiết lập sau trong file
blackhole_dashboards.yml.
Các thiết lập TLS
| Thiết lập | Mô tả |
|---|---|
server.ssl.enabled | Bật giao tiếp SSL giữa máy chủ Blackhole Dashboards và trình duyệt web của người dùng. Đặt true cho HTTPS hoặc false cho HTTP. |
server.ssl.supportedProtocols | Chỉ định danh sách các giao thức TLS được hỗ trợ. Các giá trị có thể gồm TLSv1, TLSv1.1, TLSv1.2, TLSv1.3. Mặc định: ['TLSv1.1', 'TLSv1.2', 'TLSv1.3']. |
server.ssl.cipherSuites | Chỉ định danh sách các bộ mã TLS. Không bắt buộc. |
server.ssl.certificate | Khi server.ssl.enabled: true, chỉ định đường dẫn đầy đủ tới chứng chỉ máy chủ PEM hợp lệ cho Blackhole Dashboards. |
server.ssl.key | Khi server.ssl.enabled: true, chỉ định đường dẫn đầy đủ tới khóa của chứng chỉ máy chủ. |
server.ssl.keyPassphrase | Mật khẩu của khóa. Bỏ qua nếu khóa không có mật khẩu. Không bắt buộc. |
server.ssl.keystore.path | Sử dụng file JKS hoặc PKCS12/PFX thay cho chứng chỉ và khóa PEM. |
server.ssl.keystore.password | Mật khẩu của keystore. Bắt buộc. |
server.ssl.clientAuthentication | Chế độ xác thực TLS phía client: none, optional, hoặc required. Mặc định: none. |
server.ssl.certificateAuthorities | Đường dẫn đầy đủ tới một hoặc nhiều chứng chỉ CA (dạng mảng) dùng cho xác thực client. Bắt buộc nếu clientAuthentication là optional hoặc required. |
server.ssl.truststore.path | Sử dụng trust store JKS hoặc PKCS12/PFX thay cho chứng chỉ CA dạng PEM. |
server.ssl.truststore.password | Mật khẩu của trust store. Bắt buộc. |
blackhole.ssl.verificationMode | Thiết lập giao tiếp giữa Blackhole và Blackhole Dashboards. Giá trị: full, certificate, none. Khuyến nghị dùng full. |
blackhole.ssl.certificateAuthorities | Đường dẫn đầy đủ tới một hoặc nhiều chứng chỉ CA tạo thành chuỗi tin cậy cho cụm Blackhole. |
blackhole.ssl.truststore.path | Sử dụng trust store JKS hoặc PKCS12/PFX thay cho chứng chỉ CA dạng PEM. |
blackhole.ssl.truststore.password | Mật khẩu của trust store. Bắt buộc. |
blackhole.ssl.alwaysPresentCertificate | Nếu true, luôn gửi chứng chỉ client tới cụm Blackhole (cần thiết khi bật mTLS). Mặc định: false. |
blackhole.ssl.certificate | Khi alwaysPresentCertificate: true, chỉ định đường dẫn tới chứng chỉ client cho cụm Blackhole. |
blackhole.ssl.key | Khi alwaysPresentCertificate: true, chỉ định đường dẫn tới khóa của chứng chỉ client. |
blackhole.ssl.keyPassphrase | Mật khẩu của khóa. Bỏ qua nếu khóa không có mật khẩu. Không bắt buộc. |
blackhole.ssl.keystore.path | Sử dụng keystore JKS hoặc PKCS12/PFX thay cho chứng chỉ và khóa PEM. |
blackhole.ssl.keystore.password | Mật khẩu của keystore. Bắt buộc. |
blackhole_security.cookie.secure | Nếu bật TLS cho Blackhole Dashboards, đặt true. Với HTTP, đặt false. |
blackhole_security.session.keepalive | Xác định TTL của phiên có được gia hạn sau mỗi hoạt động người dùng hay không. Mặc định: true. |
blackhole_security.session.ttl | Thời gian tồn tại (TTL) của phiên người dùng, tính bằng mili giây. Mặc định: 3600000 (1 giờ). |
Ví dụ cấu hình demo
Docker
Nếu bạn sử dụng tùy chọn cài đặt bằng Docker, bạn có thể truyền một fileblackhole_dashboards.yml tùy chỉnh vào container.Tham khảo thêm trong tài liệu cài đặt Docker.
Truy cập
Sau khi bật các thiết lập trên và khởi động ứng dụng, bạn có thể truy cập Blackhole Dashboards tại:Để tránh cảnh báo (hoặc vấn đề tương thích trình duyệt), nên sử dụng chứng chỉ được cấp bởi một CA đáng tin cậy.
Cấu hình License
License là tệp có định dạng.license được cung cấp bởi quản trị viên. License là bắt buộc để BlackHole Search có thể thực hiện các thao tác insert dữ liệu vào hệ thống.
Khi nào cần upload License
Bạn cần upload License trong các trường hợp sau:- License chưa được cài đặt
- License đã hết hạn
- Cần thay đổi License hiện tại
Các bước upload License
Thực hiện theo các bước sau để upload License:-
Truy cập License Management: Điều hướng đến đường dẫn
app/license-managementtrong giao diện BlackHole Search. - Mở hộp thoại Add License: Bấm vào nút ”+ Add License” ở góc trên bên phải.
-
Chọn tệp License:
- Kéo thả tệp License vào vùng upload, hoặc
- Bấm vào vùng “Choose file or drag & drop” để chọn tệp từ máy tính
- Xác nhận upload: Bấm nút “Upload License” để hoàn tất.
Kết nối với Device Management
Device Management là dịch vụ quản lý tập trung cho xác thực và cấu hình của các Agent và Forwarder. Để BlackHole Search có thể tương tác với Device Management, bạn cần cấu hình URL của dịch vụ trong fileblackhole_search.yml.
Cấu hình kết nối
Thêm hoặc cập nhật thiết lập sau trong fileblackhole_search.yml:
blackhole-devices-managementlà tên container hoặc hostname của dịch vụ Device Management3000là cổng mặc định của Device Management API
Lưu ý về mạng
Khi sử dụng Docker, đảm bảo BlackHole Search và Device Management cùng nằm trong một Docker network để có thể giao tiếp với nhau. Nếu sử dụng Docker Compose, các service sẽ tự động nằm trong cùng một network. Để biết cách cài đặt Device Management, hãy xem Hướng dẫn cài đặt Device Management.Chạy BlackHole Dashboards như một dịch vụ với systemd
Tài liệu này hướng dẫn chi tiết cách chạy BlackHole Dashboards như một dịch vụ nền (daemon) được quản lý bởi systemd trên Linux.Sau khi hoàn tất, bạn có thể quản lý BlackHole Dashboards bằng các lệnh chuẩn:
Giả định & phạm vi
“Giả định” - BlackHole Dashboards được cài bằng tarball - Hệ điều hành sử
dụng systemd - BlackHole backend đã chạy và truy cập được
Với production:
- Dùng Docker / Kubernetes
- Hoặc triển khai phía sau reverse proxy (Nginx)
Tổng quan kiến trúc
- Dashboards là Node.js application
- systemd quản lý vòng đời tiến trình
- Log được ghi vào
journalctl - Không yêu cầu quyền root
Bước 0: Di chuyển BlackHole Dashboards vào /opt
Giả sử bạn đã giải nén tarball tại:
Bước 1: Tạo user hệ thống cho Dashboards
Dashboards nên dùng chung user
blackhole với backend để: - đơn giản
permission - dễ quản lý log và configBước 2: Gán quyền cho thư mục Dashboards
Bước 3: Tạo file systemd service
Bước 4: Cấu hình blackhole-dashboards.service
Toàn bộ nội dung file
Giải thích chi tiết
[Unit]
| Cấu hình | Ý nghĩa |
|---|---|
network-online.target | Đảm bảo backend sẵn sàng |
[Service] – Node.js app
| Cấu hình | Ý nghĩa |
|---|---|
Type=simple | Node.js chạy foreground |
ExecStart | Script khởi động Dashboards |
Restart=on-failure | Tự restart khi crash |
NODE_ENV=production | Chế độ production |
User & Permission
Dashboards:- không cần root
- chỉ cần quyền đọc config và bind port (>1024)
Bước 5: Reload systemd
Bước 6: Enable service
Bước 7: Khởi động Dashboards
Bước 8: Kiểm tra trạng thái & log
=== “Trạng thái”bash systemctl status blackhole-dashboards
=== “Log realtime”
bash journalctl -u blackhole-dashboards -f
Checklist khi Dashboards không start
- BlackHole backend đang chạy
-
blackhole_dashboards.ymlcấu hình đúng endpoint - Port 3000 chưa bị chiếm
- Node.js binary tồn tại trong
/bin - Quyền thư mục đúng
Ghi chú cho production
Không áp dụng cho tarball.
- Chạy Dashboards phía sau Nginx
- Bật HTTPS
- Bật authentication
- Giới hạn memory Node.js
- Dùng Docker/Kubernetes nếu có thể
