Thu thập thông tin
”Thông tin cần thiết” Khi báo lỗi, vui lòng cung cấp:
- Phiên bản Forwarder:
blackhole-fwd --version
- File log đầy đủ
- Cấu hình hiện tại (ẩn thông tin nhạy cảm)
- Hệ điều hành và phiên bản
- Mô tả chi tiết các bước dẫn đến lỗi
Lỗi khởi động
Forwarder không khởi động được
| Triệu chứng | Nguyên nhân khả dĩ | Cách khắc phục |
|---|
| Service không start | Thiếu quyền hoặc file không tồn tại | Kiểm tra quyền và đường dẫn file |
| ”Access Denied” | Không có quyền administrator/root | Chạy với quyền admin/root |
| ”File not found” | Binary không tồn tại hoặc sai đường dẫn | Kiểm tra đường dẫn cài đặt |
| ”Port already in use” | Port bị chiếm dụng | Thay đổi port hoặc dừng service khác |
Khắc phục chi tiết
Windows:
# Kiểm tra quyền
Get-Acl "C:\Program Files\BlackHoleForwarder" | Format-List
# Kiểm tra file tồn tại
Test-Path "C:\Program Files\BlackHoleForwarder\blackhole-fwd.exe"
# Kiểm tra port
netstat -an | findstr ":1883"
netstat -an | findstr ":514"
netstat -an | findstr ":8080"
# Chạy với quyền admin
Start-Process PowerShell -Verb RunAs
Linux:
# Kiểm tra quyền
ls -la /opt/blackhole-forwarder/blackhole-fwd
# Kiểm tra file tồn tại
test -f /opt/blackhole-forwarder/blackhole-fwd
# Kiểm tra port
sudo netstat -tlnp | grep -E ":(1883|514|8080)"
# Chạy với quyền root
sudo systemctl start blackhole-forwarder
Lỗi cấu hình
| Triệu chứng | Nguyên nhân khả dĩ | Cách khắc phục |
|---|
| ”Invalid YAML” | Cú pháp YAML sai | Validate cấu hình với YAML parser |
| ”Missing required field” | Thiếu trường bắt buộc | Kiểm tra cấu hình mẫu |
| ”Invalid URL” | URL không hợp lệ | Kiểm tra format URL |
| ”Authentication failed” | API key sai hoặc hết hạn | Kiểm tra API key |
Khắc phục chi tiết
# Kiểm tra cú pháp YAML
.\blackhole-fwd.exe
Lỗi kết nối
Registry Connection Issues
| Triệu chứng | Nguyên nhân khả dĩ | Cách khắc phục |
|---|
| ”Connection refused” | Registry server down | Kiểm tra trạng thái server |
| ”SSL/TLS error” | Certificate không hợp lệ | Kiểm tra certificate |
| ”Timeout” | Network latency cao | Tăng timeout settings |
| ”Authentication failed” | API key sai | Kiểm tra API key |
Khắc phục chi tiết
# Test kết nối đến Registry
curl -k https://blackhole.glabs.one/health
# Test với verbose
curl -v -k https://blackhole.glabs.one/health
# Kiểm tra DNS
nslookup blackhole.glabs.one
# Test với telnet
telnet blackhole.glabs.one 443
MQTT Connection Issues
| Triệu chứng | Nguyên nhân khả dĩ | Cách khắc phục |
|---|
| ”Connection lost” | Network không ổn định | Kiểm tra kết nối mạng |
| ”Authentication failed” | Username/password sai | Kiểm tra credentials |
| ”Client ID conflict” | Client ID bị trùng | Thay đổi client ID |
| ”Topic not allowed” | Không có quyền publish | Kiểm tra ACL |
Khắc phục chi tiết
# Test MQTT connection
mosquitto_pub -h localhost -p 1883 -t "test" -m "hello"
# Test với authentication
mosquitto_pub -h localhost -p 1883 -t "test" -m "hello" -u "username" -P "password"
# Kiểm tra MQTT broker status
mosquitto_sub -h localhost -p 1883 -t "#" -v
# Test embedded MQTT broker
mosquitto_pub -h localhost -p 1883 -t "agents/test/data" -m "test message"
Kafka Connection Issues
| Triệu chứng | Nguyên nhân khả dĩ | Cách khắc phục |
|---|
| ”Broker not available” | Kafka cluster down | Kiểm tra trạng thái cluster |
| ”Topic not found” | Topic chưa được tạo | Tạo topic trước |
| ”SASL authentication failed” | Credentials sai | Kiểm tra SASL config |
| ”Serialization error” | Message format sai | Kiểm tra serializer config |
Khắc phục chi tiết
# Test Kafka connection
kafka-console-producer.sh --bootstrap-server kafka.company.com:9092 --topic test
# List topics
kafka-topics.sh --bootstrap-server kafka.company.com:9092 --list
# Test với SASL
kafka-console-producer.sh --bootstrap-server kafka.company.com:9092 --topic test --producer-property security.protocol=SASL_SSL --producer-property sasl.mechanism=PLAIN
BlackHole Connection Issues
| Triệu chứng | Nguyên nhân khả dĩ | Cách khắc phục |
|---|
| ”Connection refused” | BlackHole server down | Kiểm tra trạng thái |
| ”Authentication failed” | Username/password sai | Kiểm tra credentials |
| ”SSL certificate error” | Certificate không hợp lệ | Cập nhật certificate |
| ”Index not found” | Index chưa được tạo | Tạo index trước |
Khắc phục chi tiết
# Test BlackHole connection
curl -k https://blackhole.company.com:9200
# Test với authentication
curl -k -u "username:password" https://blackhole.company.com:9200
# Kiểm tra cluster health
curl -k -u "username:password" https://blackhole.company.com:9200/_cluster/health
Lỗi thu thập dữ liệu
MQTT Source Issues
| Triệu chứng | Nguyên nhân khả dĩ | Cách khắc phục |
|---|
| ”No messages received” | Topic không có dữ liệu | Kiểm tra topic và publisher |
| ”Connection lost” | MQTT broker không ổn định | Kiểm tra broker status |
| ”Authentication failed” | Credentials sai | Kiểm tra auth config |
| ”Topic subscription failed” | Không có quyền subscribe | Kiểm tra ACL |
Khắc phục chi tiết
# Kiểm tra MQTT source status
grep "MQTT" /var/log/blackhole-forwarder/default.log
# Test topic subscription
mosquitto_sub -h localhost -p 1883 -t "agents/+/data" -v
# Kiểm tra MQTT broker logs
grep "mqtt_broker" /var/log/blackhole-forwarder/default.log
Rsyslog Source Issues
| Triệu chứng | Nguyên nhân khả dĩ | Cách khắc phục |
|---|
| ”No syslog received” | Thiết bị không gửi syslog | Kiểm tra cấu hình thiết bị |
| ”Port not listening” | Rsyslog server không start | Kiểm tra rsyslog config |
| ”Permission denied” | Không có quyền bind port | Chạy với quyền admin |
| ”IP filtering issues” | IP không match với includes | Kiểm tra IP ranges |
Khắc phục chi tiết
# Kiểm tra rsyslog source status
grep "rsyslog" /var/log/blackhole-forwarder/default.log
# Test rsyslog server
echo "test message" | nc -u localhost 514
# Kiểm tra port listening
sudo netstat -tlnp | grep :514
# Test với TCP
echo "test message" | nc localhost 514
Lỗi hiệu suất
High Memory Usage
| Triệu chứng | Nguyên nhân khả dĩ | Cách khắc phục |
|---|
| Memory usage > 2GB | Queue quá lớn | Giảm queue size |
| Memory leak | Service không cleanup | Restart Forwarder |
| Too many connections | Quá nhiều MQTT clients | Giảm max_connections |
| Large log files | Log files quá lớn | Enable log rotation |
Khắc phục chi tiết
# Kiểm tra memory usage
ps -o pid,ppid,cmd,%mem,%cpu --sort=-%mem | grep blackhole
# Kiểm tra queue size
grep "queue_size" /var/log/blackhole-forwarder/default.log
# Giảm queue size trong config
inventory:
max_messages: 50000 # Giảm từ 100000
max_bytes: 134217728 # Giảm từ 256MB
Debug Commands
Verbose Logging
# Chạy với debug logging
blackhole-fwd start --verbose --log-level debug
# Windows
.\blackhole-fwd.exe start --verbose --log-level debug
Connection Testing
# Test Registry connection
curl -k https://blackhole.glabs.one/health
# Test MQTT connection
mosquitto_pub -h localhost -p 1883 -t "test" -m "hello"
# Test Kafka connection
kafka-console-producer.sh --bootstrap-server kafka.company.com:9092 --topic test
# Test rsyslog server
echo "test message" | nc -u localhost 514
# Test proxy server
curl --proxy http://localhost:8080 https://example.com
# System info
uname -a
cat /etc/os-release
# Forwarder version
blackhole-fwd --version
# Process info
ps aux | grep blackhole-fwd
# Network info
netstat -tlnp | grep -E ":(1883|514|8080)"
Log Analysis
Common Log Patterns
# Lỗi kết nối
grep "connection" /var/log/blackhole-forwarder/default.log
# Lỗi authentication
grep "auth" /var/log/blackhole-forwarder/default.log
# Lỗi MQTT
grep "mqtt" /var/log/blackhole-forwarder/default.log
# Lỗi rsyslog
grep "rsyslog" /var/log/blackhole-forwarder/default.log
# Lỗi proxy
grep "proxy" /var/log/blackhole-forwarder/default.log
# Performance issues
grep "slow" /var/log/blackhole-forwarder/default.log
Log Levels
- ERROR: Lỗi nghiêm trọng cần xử lý ngay
- WARN: Cảnh báo, có thể ảnh hưởng hiệu suất
- INFO: Thông tin hoạt động bình thường
- DEBUG: Thông tin chi tiết để debug
Escalation
Khi nào cần hỗ trợ
- Lỗi không có trong danh sách này
- Đã thử tất cả giải pháp nhưng vẫn lỗi
- Lỗi ảnh hưởng đến production
- Cần hỗ trợ cấu hình phức tạp
Thông tin cần cung cấp
- Phiên bản Forwarder:
blackhole-fwd --version
- Hệ điều hành:
uname -a (Linux) hoặc systeminfo (Windows)
- File log đầy đủ: Từ thời điểm bắt đầu lỗi
- Cấu hình: File config (ẩn thông tin nhạy cảm)
- Mô tả chi tiết: Các bước dẫn đến lỗi
- Screenshot: Nếu có lỗi hiển thị trên UI