Cách đọc trang này
Mỗi mục dưới đây đều có cùng một cấu trúc: Triệu chứng → Nguyên nhân → Giải pháp → Xác minh. Lỗi và lệnh trong trang này lấy trực tiếp từ phiên bản hiện tại của Agent, nên bạn so sánh được đúng chữ trên màn hình với chữ trong tài liệu.
Mục lục
| Nhóm | Vấn đề |
|---|---|
| Khởi động | Agent không chạy trên máy |
| Khởi động | Agent thoát ngay, không ghi log |
| Khởi động | Không tìm thấy file cấu hình chính |
| Khởi động | Startup bị chặn vì tài nguyên |
| Service | Cài lại service thất bại |
| Service | Service đã cài nhưng không chạy |
| Service | Service chạy nhưng dùng nhầm file cấu hình |
| Log | Không tìm ra file log |
| Log | Tăng mức chi tiết của log |
| Log | Log chiếm quá nhiều dung lượng |
| Log | Agent thoát mà không có thông báo |
| Cấu hình | Thiếu địa chỉ API của Registry |
| Cấu hình | Trùng section khi gộp file cấu hình |
| Cấu hình | Lỗi liên kết giữa các transform |
| Cấu hình | Khoảng thời gian quét SCA sai định dạng |
| Cấu hình | Windows Event Log không nhận channel nào |
| Dòng dữ liệu | Chạy nhưng không thu thập dữ liệu |
| Dòng dữ liệu | Pipeline im lặng khi đang tải |
| Dòng dữ liệu | Sửa cấu hình nhưng không có gì thay đổi |
| Dòng dữ liệu | Thay đổi local không được áp dụng |
| Registry | Lệnh auth báo không có Registry |
| Registry | Push khi chưa xác thực |
| Registry | Không truy cập được Registry |
| Hiệu suất | RAM hoặc CPU cao hơn mong đợi |
Lỗi khởi động
Agent không chạy trên máy
Triệu chứng: Binary kết thúc ngay khi chạy, không in gì ra màn hình. Trên Linux có thể thấy Permission denied hoặc Exec format error; trên Windows cửa sổ đóng ngay.
Nguyên nhân: Dự án chỉ phát hành bản x86_64. Không có bản ARM64 và không có bản 32-bit, nên binary dựng cho sai kiến trúc sẽ không chạy được.
Giải pháp:
- Kiểm tra kiến trúc máy:bash
uname -m # Linux, mong đợi x86_64powershell# Windows $env:PROCESSOR_ARCHITECTURE - Tải lại binary
x86_64đúng bản release mà bạn đang dùng, xem Cài đặt. - Trên Linux, đảm bảo file được phép thực thi:
chmod +x blackhole-agt.
Xác minh:
blackhole-agt --versionLệnh in ra phiên bản và không báo lỗi.
Agent thoát ngay, không ghi log
Triệu chứng: Bạn chạy blackhole-agt với -c trỏ tới một file, chương trình thoát ngay, file log không có dòng nào, chỉ thấy trên console:
Failed to read file for hashing: blackhole-agt.ymlNguyên nhân: File không tồn tại ở đường dẫn bạn truyền vào. Agent đọc và băm (SHA-256) file cấu hình ngay lúc khởi động để phục vụ hot-reload, và việc đọc này luôn được thực hiện kể cả khi file không có, nên tiến trình dừng trước khi kịp ghi log.
Giải pháp:
- Kiểm tra file có thật và đúng đường dẫn:bash
ls -la ./blackhole-agt.yml - Nếu bỏ qua
-c, Agent tự tìm file theo thứ tự trong thư mục làm việc:blackhole-agt.yml, rồi./config.yml, rồi./config.yaml. Hãy chọn một trong ba tên đó hoặc chỉ định rõ bằng-c. - Khởi động lại với đường dẫn đúng:bash
blackhole-agt -c ./blackhole-agt.yml start
Xác minh:
grep "Failed to read file for hashing" logs/default.log || echo "config OK"Kết quả là config OK, và logs/default.log có các dòng khởi động.
Không tìm thấy file cấu hình chính
Triệu chứng: Bạn truyền --config-dir trỏ tới một thư mục, Agent không chạy và in ra:
No config file (config.yml or config.yaml) found in directory: ...Nguyên nhân: Khi dùng --config-dir, Agent chỉ nhận file có tên config.yml hoặc config.yaml trong thư mục đó. blackhole-agt.yml không được tìm thấy theo cơ chế này.
Giải pháp:
- Đổi tên file cấu hình thành
config.yml(hoặcconfig.yaml) trong thư mục đó. - Hoặc bỏ
--config-dirvà chỉ định trực tiếp:bashblackhole-agt -c ./blackhole-agt.yml start - Kiểm tra lại nội dung thư mục trước khi chạy:bash
ls -la <thư mục cấu hình>
Xác minh:
blackhole-agt --config-dir <thư mục cấu hình> startAgent khởi động mà không còn dòng No config file ... found in directory.
Startup bị chặn vì tài nguyên
Triệu chứng: Agent từ chối khởi động trên máy đang tải cao và log có một trong hai dòng:
Startup blocked due to resource constraints: CPU usage (x%) is at or above threshold (80.00%)
Cannot start orchestrator: system resources are overloaded.Nguyên nhân: Resource guard chặn khởi động khi một chỉ số đang bật (mặc định là CPU) đạt ngưỡng cho phép (80%). Đây là hành vi có chủ đích để Agent không giành tài nguyên với dịch vụ khác lúc máy đã bận.
Giải pháp:
- Chờ tải của máy giảm rồi khởi động lại:bash
blackhole-agt -c <config> start - Hoặc giảm tải trước khi khởi động: dừng bớt tiến trình nặng, tăng interval của các collector đang chạy dày đặc.
- Nếu môi trường của bạn vốn luôn tải cao, đổi ngưỡng trong mục
resources_thresholdcủa file cấu hình. Mục này không áp dụng khi hot-reload, nên bạn phải khởi động lại Agent sau khi sửa.
Xác minh:
grep -E "Startup blocked due to resource constraints|Cannot start orchestrator" logs/default.log || echo "startup OK"Kết quả là startup OK.
Lỗi service
Tên service là blackhole-agt. Trên Linux, unit nằm ở /etc/systemd/system/blackhole-agt.service.
Cài lại service thất bại
Triệu chứng: Bạn chạy lại blackhole-agt service install và nhận:
Service already exists. Use --force to overwrite.Nguyên nhân: Service blackhole-agt đã được cài từ trước. Lệnh cài từ chối ghi đè để tránh làm mất cấu hình service đang chạy.
Giải pháp:
- Nếu bạn muốn ghi đè bản cũ:bash
blackhole-agt service install --force - Nếu không chắc, kiểm tra trạng thái trước rồi hãy cài lại:bash
blackhole-agt service status - Nhớ rằng
service installcũng khởi động service ngay sau khi cài.
Xác minh:
blackhole-agt service statusKết quả là ✅ Service is running.
Service đã cài nhưng không chạy
Triệu chứng: service install báo xong nhưng service không chạy, hoặc lệnh in:
Timed out waiting for service to start. Last status: ...Nguyên nhân: Quá trình chờ service lên vượt thời gian cho phép. Nguyên nhân thường gặp: file cấu hình không có ở chỗ service tìm, Agent bị resource guard chặn lúc khởi động, cấu hình không parse được, hoặc bạn thiếu quyền (Administrator trên Windows, root trên Linux).
Giải pháp:
- Hỏi thẳng service xem nó ở trạng thái nào:bashBốn kết quả có thể gặp:
blackhole-agt service status✅ Service is running❌ Service is not installed⏹️ Service is stopped because: ...❌ Service not found or error: ...
- Đặt file cấu hình vào thư mục chứa executable, nơi service tự tìm (xem mục Service chạy nhưng dùng nhầm file cấu hình).
- Xem log thật sự nói gì (xem mục Không tìm ra file log):bash
grep -E "ERROR|WARN" <working-directory>/logs/default-error.log - Cài lại với quyền đủ:bash
# Linux, chạy với root sudo blackhole-agt service install --forcepowershell# Windows, chạy PowerShell bằng Administrator blackhole-agt service install --force
Xác minh:
blackhole-agt service statusKết quả là ✅ Service is running, và file log tiếp tục được ghi thêm sau vài giây.
Service chạy nhưng dùng nhầm file cấu hình
Triệu chứng: Bạn sửa một file cấu hình ở chỗ khác, khởi động lại service, mọi thứ vẫn như cũ. Hoặc service dùng một file cấu hình khác với file bạn thường sửa.
Nguyên nhân: --config truyền lúc service install không được lưu lại. Service được ghi nhận chính xác là <exe> --service --service-name blackhole-agt, tức là nó tự tìm cấu hình trong thư mục của chính nó theo thứ tự blackhole-agt.yml, rồi config.yml, rồi config.yaml.
Giải pháp:
- Tìm đường dẫn executable:powershell
(Get-Process blackhole-agt).Pathbash# Linux systemctl show blackhole-agt -p ExecStart - Đặt file cấu hình vào thư mục chứa executable đó, với một trong ba tên được hỗ trợ.
- Khởi động lại service để nó đọc lại:bash
blackhole-agt service stop blackhole-agt service start
Xác minh:
ls <thư mục chứa executable>/*.yml
blackhole-agt service statusFile cấu hình nằm đúng chỗ và service ở trạng thái ✅ Service is running.
Log và gỡ lỗi
Không tìm ra file log
Triệu chứng: Bạn tìm khắp đĩa mà không thấy file log nào của Agent. Chạy dưới service thì journalctl -u blackhole-agt gần như rỗng, xem Event Viewer cũng không có gì.
Nguyên nhân: Tên file thật là default.log và default-error.log, nằm trong logging.dir với giá trị mặc định ./logs, được giải tương đối so với thư mục làm việc. Khi chạy dưới Windows service hoặc systemd, thư mục làm việc là chính thư mục chứa executable. Ở chế độ service, stdout bị chặn nên file log là nơi duy nhất có đầu ra, còn journalctl chỉ nhận phần service manager ghi. Agent cũng không đăng ký nguồn Windows Event Log nào, nên không có log nào trong Event Viewer.
Giải pháp:
- Xác định thư mục làm việc trước khi grep:powershell
# Windows: executable ở đâu thì log ở đó $dir = Split-Path (Get-Process blackhole-agt).Path Get-ChildItem "$dir\logs"bash# Linux dưới systemd systemctl show blackhole-agt -p WorkingDirectory ls -la <working-directory>/logsbash# Linux chạy foreground: thư mục làm việc là shell hiện tại ls -la "$(pwd)/logs" - Đọc log chính và log lỗi:powershell
Get-Content "$dir\logs\default.log" -Tail 100 Get-Content "$dir\logs\default-error.log" -Tail 100bashtail -n 100 <working-directory>/logs/default.log tail -n 100 <working-directory>/logs/default-error.log - Nếu chạy foreground để gỡ lỗi, log cũng ra console ngay tại đó.
Xác minh:
ls <working-directory>/logsThư mục chứa default.log và default-error.log.
Tăng mức chi tiết của log
Triệu chứng: Log chỉ có các dòng mức cao, bạn cần biết thêm chi tiết về collector hay sink nào đó.
Nguyên nhân: logging.level đang ở mức quá cao, hoặc bạn đang chạy dưới service nên không thêm cờ lệnh được.
Giải pháp:
- Khi chạy foreground, thêm
-vhoặc--verbose:bashblackhole-agt -c <config> -v start - Trong file cấu hình, đổi mức ghi log:yaml
logging: dir: ./logs level: debuglevelnhậntrace,debug,info,warn,error, và cả chỉ dẫn theo mục tiêu nhưcollectors=tracekhi bạn chỉ muốn chi tiết cho một phần. - Khởi động lại Agent.
loggingkhông thuộc diện hot-reload nên sửa xong phải chạy lại.
Xác minh:
grep -E "DEBUG|TRACE" <working-directory>/logs/default.log | headCó dòng DEBUG/TRACE xuất hiện.
Log chiếm quá nhiều dung lượng
Triệu chứng: Thư mục log ngày càng lớn, đĩa đầy.
Nguyên nhân: Xoay log luôn bật, không có cờ để tắt. Log chính giữ 5 file, mỗi file bằng max_size_mb / 5; log lỗi giữ 10 file, mỗi file bằng max_size_mb. Kích thước tổng do logging.max_size_mb quyết định.
Giải pháp:
- Xem kích thước hiện tại:bash
du -sh <working-directory>/logs - Quyết định kích thước hợp lý cho
logging.max_size_mbtrong file cấu hình. Đây là lever duy nhất:yamllogging: max_size_mb: 50 - Khởi động lại Agent để áp dụng (mục
loggingkhông hot-reload).
Xác minh:
ls -lh <working-directory>/logsTổng dung lượng nằm trong mức bạn đã cấu hình và các file cũ bị thay thế theo chu kỳ.
Agent thoát mà không có thông báo
Triệu chứng: Tiến trình biến mất giữa chừng, log không có dòng nào mô tả lỗi, cũng không có stack trace.
Nguyên nhân: Bản build dùng cho phát hành được dựng với panic = "abort" và đã cắt ký hiệu, nên khi có panic, tiến trình kết thúc ngay mà không in backtrace.
Giải pháp:
- Xem dòng cuối cùng trước khi tiến trình chết:bash
tail -n 50 <working-directory>/logs/default-error.log - Chạy lại ở foreground với
-vđể bắt thông báo panic ngay trên console:bashblackhole-agt -c <config> -v start - Ghi lại thời điểm thoát và nội dung console lúc đó để báo lỗi.
Xác minh:
blackhole-agt -c <config> -v start; echo "exit=$?"Nếu có panic, thông báo hiện ra trước khi tiến trình kết thúc, kèm mã thoát.
Lỗi cấu hình
Thiếu địa chỉ API của Registry
Triệu chứng: Lệnh auth từ chối và báo:
No registry configuredNguyên nhân: File cấu hình không có mục registry:, hoặc có registry: nhưng thiếu trường api_url (khi thiếu trường này, lỗi parse là missing field `api_url` ).
Giải pháp:
- Thêm hoặc bổ sung mục
registrytrong file cấu hình:yamlregistry: api_url: "https://<registry-host>" - Khởi động lại Agent rồi xác thực lại:bash
blackhole-agt auth --key <KEY>
Xác minh:
blackhole-agt auth --key <KEY>Lệnh không còn in No registry configured.
Trùng section khi gộp file cấu hình
Triệu chứng: Khi nạp cấu hình, Agent báo:
configuration conflict(s) detected:kèm danh sách khóa và file xung đột.
Nguyên nhân: Cùng một section xuất hiện ở nhiều file cấu hình được gộp với nhau (thường là cấu hình .blh.yml từ Registry gộp đè lên cấu hình local), nên Agent không biết lấy bản nào.
Giải pháp:
- Đọc danh sách khóa và file mà Agent liệt kê trong dòng lỗi.
- Gộp phần trùng thành một chỗ duy nhất, hoặc bỏ phần khai báo ở file không dùng đến.
- Khởi động lại Agent.
Xác minh:
grep "configuration conflict(s) detected" <working-directory>/logs/default-error.log || echo "no conflict"Kết quả là no conflict và Agent khởi động bình thường.
Lỗi liên kết giữa các transform
Triệu chứng: Agent không khởi động và báo một trong hai lỗi:
Configuration error: Transform 'foo' inputs unknown id '...'Cycle detected in transforms graph!Nguyên nhân: Đồ thị transform không hợp lệ. Lỗi thứ nhất: một transform trỏ vào inputs của một id không tồn tại. Lỗi thứ hai: có vòng lặp giữa các transform, mỗi transform lại nhận đầu ra của nhau.
Giải pháp:
- Kiểm tra mọi giá trị
inputscủa các transform và chắc chắn chúng trỏ tới id của source hoặc transform có thật. - Cắt vòng lặp: chọn một transform làm đầu của chuỗi và không cho transform khác trỏ ngược về nó.
- Khởi động lại để Agent chạy lại bước kiểm tra cấu hình.
Xác minh:
grep -E "Configuration error|Cycle detected in transforms graph" <working-directory>/logs/default-error.log || echo "graph OK"Kết quả là graph OK.
Khoảng thời gian quét SCA sai định dạng
Triệu chứng: Sau khi thêm source sca, Agent từ chối khởi động và log trỏ tới sources.sca.scan_interval.
Nguyên nhân: sources.sca.scan_interval (bí danh scan_interval_secs) là một chuỗi thời gian, ví dụ "86400s". Nếu bạn viết thành số không có dấu ngoặc kép, bước parse cấu hình sẽ thất bại.
Giải pháp:
- Mở file cấu hình, đặt giá trị có dấu ngoặc kép và đơn vị:yaml
sources: sca: scan_interval: "86400s" - Lưu file và khởi động lại Agent.
Xác minh:
grep "scan_interval" <working-directory>/logs/default-error.log || echo "sca config OK"Kết quả là sca config OK.
Windows Event Log không nhận channel nào
Triệu chứng: Agent chạy bình thường nhưng không có sự kiện nào từ Windows Event Log, hoặc cấu hình bị báo lỗi khi khởi động.
Nguyên nhân: sources.windows_event.channels là danh sách các object, không phải danh sách chuỗi. Khai báo dạng - "Application" sẽ không đúng định dạng.
Giải pháp:
- Sửa lại phần channels theo đúng cấu trúc object:yaml
sources: windows_event: type: windows_event channels: - name: "Application" ids: [] - name: "Security" ids: [] - Chạy Agent với quyền Administrator, vì đọc channel Security bắt buộc cần quyền này.
- Khởi động lại Agent.
Xác minh:
# Trong PowerShell
Get-WinEvent -LogName Application -MaxEvents 5Sự kiện xuất hiện ở source và được đẩy ra sink bạn đã cấu hình, đồng thời default.log không còn báo lỗi cấu hình cho windows_event.
Dòng dữ liệu
Chạy nhưng không thu thập dữ liệu
Triệu chứng: Service ở trạng thái ✅ Service is running, tiến trình vẫn sống, nhưng không có sự kiện nào ra sink. Trong log có dòng:
Device is not active, no collectors will be startedNguyên nhân: File cấu hình có mục registry: nên Agent chạy theo chế độ quản lý từ xa, nhưng thiết bị chưa được xác thực nên chưa active, và Agent không khởi động collector nào.
Giải pháp:
- Xác thực thiết bị:bash
blackhole-agt auth --key <KEY> - Hoặc, nếu bạn muốn chạy hoàn toàn local, bỏ mục
registry:khỏi file cấu hình. - Khởi động lại service để nó dựng lại pipeline:bash
blackhole-agt service stop blackhole-agt service start
Xác minh:
grep "Device is not active, no collectors will be started" <working-directory>/logs/default.log || echo "collectors running"Kết quả là collectors running, và sự kiện bắt đầu xuất hiện ở sink.
Pipeline im lặng khi đang tải
Triệu chứng: Dưới tải cao, Agent vẫn sống nhưng ngừng gửi dữ liệu. Trong log xuất hiện:
... has been above threshold ... - TRIGGERING PAUSENguyên nhân: Resource guard tạm dừng pipeline khi chỉ số theo dõi vượt ngưỡng. Hàng đợi lúc này đã được xả, tiến trình không thoát, chỉ là ngừng nhận và gửi cho tới khi tài nguyên ổn định.
Giải pháp:
- Giảm tải cho máy: giảm số collector đang bật, tăng interval quét, hoặc xử lý bớt backend đang chậm.
- Đợi resource guard tự thả, log sẽ có dòng:
RESUMING ORCHESTRATOR - resources have stabilized - Nếu môi trường của bạn luôn ở ngưỡng đó, xem lại ngưỡng trong
resources_threshold(cần khởi động lại để áp dụng).
Xác minh:
grep -E "TRIGGERING PAUSE|RESUMING ORCHESTRATOR" <working-directory>/logs/default.logBạn thấy dòng TRIGGERING PAUSE trước và RESUMING ORCHESTRATOR sau, rồi sự kiện lại chảy.
Sửa cấu hình nhưng không có gì thay đổi
Triệu chứng: Bạn sửa file cấu hình, log có dòng Local config reloaded successfully, nhưng collector hay sink vẫn hành xử y như cũ.
Nguyên nhân: Hot-reload chỉ phát hiện thay đổi bằng cách băm SHA-256 mỗi hot_reload.poll_interval_ms (mặc định 5000 ms) với debounce_ms 1000 ms, rồi đọc lại cấu hình vào bộ nhớ và ghi đè file .blackhole-resolved.yaml. Nó không dựng lại collector hay sink, nên thay đổi về cấu trúc pipeline chưa bao giờ được áp dụng.
Giải pháp:
- Với thay đổi về pipeline (thêm/bớt source, sink, transform), khởi động lại Agent:bash
blackhole-agt service stop blackhole-agt service start - Với thay đổi muốn áp dụng từ xa, đẩy cấu hình lên Registry bằng
blackhole-agt configure push. - Các mục không thuộc diện hot-reload:
logging,hot_reload,registry,resources_threshold,channel_buffers. Sửa những mục này thì bắt buộc phải khởi động lại. - Nếu lần đọc lại không parse được, Agent ghi một dòng warning và giữ nguyên cấu hình cũ. Hãy xem
default-error.lognếu bạn nghi ngờ cấu hình mới bị bỏ.
Xác minh:
grep "Local config reloaded successfully" <working-directory>/logs/default.log
grep "parse" <working-directory>/logs/default-error.log || echo "reload OK"Dòng Local config reloaded successfully xuất hiện, không có warning nào, và sau khi khởi động lại thì hành vi mới có hiệu lực.
Thay đổi local không được áp dụng
Triệu chứng: Bạn sửa file local nhưng log báo:
Remote config is active — ignoring local config changeHoặc sau khi đã đẩy cấu hình một lần, log cảnh báo:
Local config file ... has changed since last push. Please push config again or changes will not be appliedNguyên nhân: Cấu hình từ Registry đang chi phối, nên mọi chỉnh sửa local bị bỏ qua. Trong trường hợp thứ hai, hash của file local đã khác với bản đã push lần trước.
Giải pháp:
- Nếu bạn muốn thay đổi có hiệu lực, đẩy lại cấu hình:bash
blackhole-agt configure push - Nếu muốn làm việc local thuần, dừng việc dùng cấu hình từ Registry và khởi động lại để Agent đọc file local.
- Sau khi push, đừng tiếp tục sửa file local, vì mỗi lần sửa sẽ lại tạo cảnh báo mới.
Xác minh:
grep "has changed since last push" <working-directory>/logs/default-error.log || echo "config in sync"Kết quả là config in sync, và thay đổi của bạn xuất hiện trong .blackhole-resolved.yaml.
Registry và xác thực
Lệnh auth báo không có Registry
Triệu chứng: blackhole-agt auth --key <KEY> in ra:
No registry configuredNguyên nhân: File cấu hình không khai báo registry: kèm api_url, nên Agent không biết đích nào để xác thực.
Giải pháp:
- Thêm
registry.api_urlvào file cấu hình (xem Thiếu địa chỉ API của Registry). - Khởi động lại Agent.
- Chạy lại lệnh auth với key bạn nhận được.
Xác minh:
blackhole-agt auth --key <KEY>Lệnh không còn in No registry configured và ghi nhận token.
Push khi chưa xác thực
Triệu chứng: blackhole-agt configure push từ chối với thông điệp:
device token not available, you need to authenticate firstNguyên nhân: Thiết bị chưa có token, tức là bạn chưa chạy auth (hoặc token cũ đã bị thu hồi).
Giải pháp:
- Xác thực trước:bash
blackhole-agt auth --key <KEY> - Chạy lại lệnh push:bash
blackhole-agt configure push
Xác minh:
blackhole-agt configure pushLệnh không còn in device token not available, you need to authenticate first.
Không truy cập được Registry
Triệu chứng: Log có dòng khi khởi động:
Failed to pull remote config: ...Hoặc khi đang chạy, cứ mỗi khoảng pull lại thấy:
Failed to fetch remote configuration: ...Nguyên nhân: Mạng, DNS, TLS hoặc chính Registry không tới được. Đây không là lỗi fatal: Agent cảnh báo rồi tiếp tục chạy bằng cấu hình local hiện có, và lần chạy sẽ tự thử lại theo chu kỳ.
Giải pháp:
- Kiểm tra mạng tới
api_urlkhai báo trongregistry:bashcurl -v <api_url> - Kiểm tra DNS:bash
nslookup <host của api_url> - Nếu Registry tạm thời chết, không cần làm gì. Agent vẫn chạy bằng cấu hình local; chỉ cần biết rằng thay đổi từ xa sẽ chưa tới được cho tới khi kết nối phục hồi.
Xác minh:
curl -v <api_url>
grep -E "Failed to pull remote config|Failed to fetch remote configuration" <working-directory>/logs/default-error.log || echo "registry OK"Kết nối thành công và log không còn dòng lỗi Registry.
Hiệu suất và tài nguyên
RAM hoặc CPU cao hơn mong đợi
Triệu chứng: Tiến trình blackhole-agt chiếm nhiều RAM hoặc CPU hơn bạn kỳ vọng.
Nguyên nhân: Agent không áp một ngưỡng RAM, disk hay CPU tối thiểu nào. Những con số sau là giá trị mặc định, không phải giới hạn cứng:
| Thông số | Giá trị mặc định |
|---|---|
| Channel buffer | 100.000 sự kiện ở mỗi phía (collector và shipper) |
| Gói gửi (batch) | 500 message / 1000 ms / 10 MB |
| Persistent queue | Tối đa 100.000 message hoặc 256 MB |
| Database cache | 512 MB |
Càng nhiều collector chạy song song và càng nhiều event/giây, mức sử dụng càng tăng. Khi vượt ngưỡng, pipeline bị tạm dừng, xem Pipeline im lặng khi đang tải.
Giải pháp:
- Đo thật trước khi phán đoán:bash
ps -o pid,rss,vsz,cmd -p $(pgrep blackhole-agt)powershellGet-Process blackhole-agt | Select-Object WS, CPU - Giảm số collector đang bật, hoặc tăng interval quét của các source nặng.
- Hạ
logging.levelvềinfonếu bạn đang đểdebug/tracelâu, vì mức chi tiết cao làm tăng đáng kể lượng ghi. - Với backend chậm, kiểm tra lại cấu hình batch và hàng đợi của sink để chúng khớp với tốc độ thực tế.
Xác minh:
ps -o pid,rss,vsz,cmd -p $(pgrep blackhole-agt)Mức RSS và CPU về mức bạn mong đợi, và sự kiện vẫn chảy đều ra sink.
Thu thập thông tin khi báo lỗi
Khi phải mở yêu cầu hỗ trợ, hãy chuẩn bị:
- Phiên bản Agent:
blackhole-agt --version - File
default.logvàdefault-error.logđầy đủ từ thời điểm bắt đầu lỗi - File cấu hình, đã ẩn thông tin nhạy cảm (key, token, mật khẩu)
- Hệ điều hành và phiên bản:
uname -a(Linux) hoặcsysteminfo(Windows) - Các bước tái hiện lỗi, kèm đúng thông điệp bạn thấy trên console hoặc trong log
