Quản lý Service

Windows Service Management

Khởi động Service

# Khởi động service
Start-Service -Name "blackHole-agt"

# Hoặc sử dụng sc command
sc start "blackHole-agt"

# Hoặc sử dụng Agent CLI
.\blackhole-agt.exe service start

Dừng Service

# Dừng service
Stop-Service -Name "blackHole-agt"

# Hoặc sử dụng sc command
sc stop "blackHole-agt"

# Hoặc sử dụng Agent CLI
.\blackhole-agt.exe service stop

Kiểm tra trạng thái

# Kiểm tra trạng thái service
Get-Service -Name "blackHole-agt"

# Hoặc sử dụng Agent CLI
.\blackhole-agt.exe service status

Restart Service

# Restart service
Restart-Service -Name "blackHole-agt"

# Hoặc dừng rồi khởi động
Stop-Service -Name "blackHole-agt"
Start-Service -Name "blackHole-agt"

Linux Service Management

Khởi động Service

# Khởi động service
sudo systemctl start blackhole-agt

# Hoặc sử dụng service command
sudo service blackhole-agt start

# Hoặc sử dụng Agent CLI
sudo /opt/blackhole-agent/blackhole-agt service start

Dừng Service

# Dừng service
sudo systemctl stop blackhole-agt

# Hoặc sử dụng service command
sudo service blackhole-agt stop

# Hoặc sử dụng Agent CLI
sudo /opt/blackhole-agent/blackhole-agt service stop

Kiểm tra trạng thái

# Kiểm tra trạng thái service
sudo systemctl status blackhole-agt

# Hoặc sử dụng Agent CLI
sudo /opt/blackhole-agent/blackhole-agt service status

Enable/Disable Service

# Enable service để tự động khởi động khi boot
sudo systemctl enable blackhole-agt

# Disable service
sudo systemctl disable blackhole-agt

# Kiểm tra trạng thái enable
sudo systemctl is-enabled blackhole-agt

Chạy Agent ở chế độ Foreground

Khởi chạy trực tiếp

# Linux
sudo /opt/blackhole-agent/blackhole-agt start --config /etc/blackhole-agent/config.yml

# Windows
cd "C:\Program Files\BlackHoleAgent\"
.\blackhole-agt.exe start --config config.yml

Chạy với verbose logging

# Linux
sudo /opt/blackhole-agent/blackhole-agt start --verbose --log-level debug

# Windows
.\blackhole-agt.exe start --verbose --log-level debug

Chạy với custom config

# Linux
sudo /opt/blackhole-agent/blackhole-agt start --config /path/to/custom/config.yml

# Windows
.\blackhole-agt.exe start --config "D:\Custom\config.yml"

Quản lý cấu hình

Pull cấu hình từ Registry

# Pull cấu hình từ remote server
.\blackhole-agt.exe configure pull

Push cấu hình lên Registry

# Push cấu hình local lên remote server
.\blackhole-agt.exe configure push

Xác thực với Registry

# Xác thực với API key
.\blackhole-agt.exe auth --key "your-api-key-here"

Monitoring và Logging

Vị trí Log Files

Windows

  • Application Logs: C:\Program Files\BlackHoleAgent\logs\default.log
  • Error Logs: C:\Program Files\BlackHoleAgent\logs\default-error.log
  • Windows Event Log: Event Viewer → Windows Logs → Application

Linux

  • Application Logs: /var/log/blackhole-agent/default.log
  • Error Logs: /var/log/blackhole-agent/default-error.log
  • Systemd Journal: journalctl -u blackhole-agent

Xem Logs

Windows

# Xem log file trực tiếp
Get-Content "C:\Program Files\BlackHoleAgent\logs\default.log" -Tail 50 -Wait

# Xem Windows Event Log
Get-EventLog -LogName Application -Source "blackhole-agt" -Newest 20

# Xem log với PowerShell
Get-Content "C:\Program Files\BlackHoleAgent\logs\default.log" | Select-String "ERROR"

Linux

# Xem log file trực tiếp
sudo tail -f /var/log/blackhole-agent/default.log

# Xem systemd journal
sudo journalctl -u blackhole-agt -f

# Xem log với grep
sudo grep "ERROR" /var/log/blackhole-agent/default.log

# Xem log theo thời gian
sudo journalctl -u blackhole-agt --since "2025-01-01" --until "2025-01-02"

Health Checks

Kiểm tra trạng thái Agent

# Kiểm tra process
ps aux | grep blackhole-agt

# Kiểm tra port listening (nếu có)
netstat -tlnp | grep blackhole-agt

# Kiểm tra memory usage
ps -o pid,ppid,cmd,%mem,%cpu --sort=-%mem | grep blackhole-agt

Kiểm tra kết nối

# Test kết nối đến Registry
curl -k https://blackhole.glabs.one/health

# Test kết nối MQTT
mosquitto_pub -h blackhole.glabs.one -p 8883 -t "test" -m "hello" --cafile ca.crt

# Test kết nối Kafka
kafka-console-producer.sh --bootstrap-server kafka.company.com:9092 --topic test

Performance Monitoring

Metrics Collection

Agent tự động thu thập các metrics sau:

System Metrics

  • CPU usage (global và per-core)
  • Memory usage (total, used, available)
  • Disk I/O và usage
  • Network interface statistics
  • Process information
  • File descriptor usage (Linux)
  • Load average (Linux/macOS)

Agent Metrics

  • Messages processed per second
  • Error rates
  • Queue sizes
  • Connection status
  • Collector health

Monitoring Commands

# Xem metrics real-time
sudo journalctl -u blackhole-agt -f | grep "metrics"

# Kiểm tra queue size
sudo grep "queue_size" /var/log/blackhole-agent/default.log

# Kiểm tra error rate
sudo grep "error_rate" /var/log/blackhole-agent/default.log

Maintenance

Log Rotation

Log rotation được quản lý bởi Agent, có thể cấu hình trong config:
logging:
  max_size_mb: 10 # Rotate khi file đạt 10MB

Backup Configuration

# Backup config file
sudo cp /etc/blackhole-agent/config.yml /etc/blackhole-agent/config.yml.backup.$(date +%Y%m%d)

# Backup logs
sudo tar -czf /backup/blackhole-agent-logs-$(date +%Y%m%d).tar.gz /var/log/blackhole-agent/

Update Agent

Windows

# Dừng service
Stop-Service -Name "blackhole-agt"

# Backup config
Copy-Item "config.yml" "config.yml.backup"

# Copy new binary
Copy-Item "blackhole-agt-new.exe" "blackhole-agt.exe"

# Khởi động service
Start-Service -Name "blackhole-agt"

Linux

# Dừng service
sudo systemctl stop blackhole-agt

# Backup config
sudo cp /etc/blackhole-agent/config.yml /etc/blackhole-agent/config.yml.backup

# Copy new binary
sudo cp blackhole-agt-new /opt/blackhole-agent/blackhole-agt

# Khởi động service
sudo systemctl start blackhole-agt

Troubleshooting Commands

Debug Mode

# Chạy với debug logging
sudo /opt/blackhole-agent/blackhole-agt start --verbose --log-level debug

# Windows
.\blackhole-agt.exe start --verbose --log-level debug

Security Best Practices

File Permissions

Linux

# Set proper permissions
sudo chown -R blackhole-agt:blackhole-agt /opt/blackhole-agt
sudo chown -R blackhole-agt:blackhole-agt /etc/blackhole-agent
sudo chown -R blackhole-agt:blackhole-agt /var/log/blackhole-agent

# Set restrictive permissions
sudo chmod 750 /opt/blackhole-agt
sudo chmod 640 /etc/blackhole-agent/config.yml
sudo chmod 750 /var/log/blackhole-agent

Windows

# Set permissions for service account
icacls "C:\Program Files\BlackHoleAgent\" /grant "NT SERVICE\BlackHoleAgent":(OI)(CI)F
icacls "C:\Program Files\BlackHoleAgent\config.yml" /grant "NT SERVICE\BlackHoleAgent":R

Network Security

  • Sử dụng TLS/SSL cho tất cả kết nối
  • Cấu hình firewall để chỉ cho phép kết nối cần thiết
  • Sử dụng VPN hoặc private network khi có thể
  • Rotate API keys định kỳ