Agent Deployment Guide
This guide walks you through deploying a Cert-IX scanner agent on your private network. The agent will automatically register with the platform, begin collecting telemetry, and make your internal assets visible in the dashboard.
Prerequisites
Before deploying an agent, ensure you have:
- A Cert-IX account with an active subscription
- Your Tenant ID (found in Settings → Organization → Tenant ID)
- Root or administrator access on the target host
- Outbound HTTPS (port 443) access to
api.cert-ix.comanddownloads.cert-ix.com
The fastest way to deploy is from the dashboard: go to Asset Management → Devices → click the green Deploy Agent button. The wizard generates all commands pre-filled with your tenant ID.
Step 1: Download the Agent
Linux (x86_64)
# Download the Bitcollector agent binary
curl -fsSL "https://downloads.cert-ix.com/bitcollector-linux-amd64" \
-o /usr/local/bin/bitcollector
# Set executable permissions
chmod +x /usr/local/bin/bitcollector
# Verify the SHA256 checksum
sha256sum /usr/local/bin/bitcollector
Linux (ARM64)
curl -fsSL "https://downloads.cert-ix.com/bitcollector-linux-arm64" \
-o /usr/local/bin/bitcollector
chmod +x /usr/local/bin/bitcollector
sha256sum /usr/local/bin/bitcollector
macOS (Apple Silicon)
curl -fsSL "https://downloads.cert-ix.com/bitcollector-darwin-arm64" \
-o /usr/local/bin/bitcollector
chmod +x /usr/local/bin/bitcollector
shasum -a 256 /usr/local/bin/bitcollector
macOS (Intel)
curl -fsSL "https://downloads.cert-ix.com/bitcollector-darwin-amd64" \
-o /usr/local/bin/bitcollector
chmod +x /usr/local/bin/bitcollector
shasum -a 256 /usr/local/bin/bitcollector
Windows (x86_64)
# PowerShell — Run as Administrator
Invoke-WebRequest -Uri "https://downloads.cert-ix.com/bitcollector-windows-amd64.exe" `
-OutFile "C:\Program Files\Cert-IX\bitcollector.exe"
# Verify checksum
Get-FileHash "C:\Program Files\Cert-IX\bitcollector.exe" -Algorithm SHA256
Always verify the SHA256 checksum after downloading. The expected checksums are published at https://downloads.cert-ix.com/checksums.txt and signed with the Cert-IX release key.
Step 2: Create the Configuration File
Create the agent configuration directory and file.
Linux / macOS
# Create config and data directories
sudo mkdir -p /etc/bitcollector
sudo mkdir -p /var/lib/bitcollector
Create /etc/bitcollector/config.yaml with the following content:
# Bitcollector Configuration — Cert-IX Platform
# Replace <YOUR_TENANT_ID> with your actual Tenant ID
control_plane:
gateway_url: https://api.cert-ix.com/api/v1/agents
ingest_url: https://api.cert-ix.com/api/v1/ingest
tenant_id: "<YOUR_TENANT_ID>"
heartbeat_interval: 60s
token_path: /var/lib/bitcollector/.agent-token
retry_max_attempts: 5
retry_base_delay: 2s
# Uncomment for mTLS (recommended for production)
# tls:
# ca_cert: /etc/bitcollector/certs/ca.crt
# client_cert: /etc/bitcollector/certs/client.crt
# client_key: /etc/bitcollector/certs/client.key
agent:
data_dir: /var/lib/bitcollector
collection_interval: 60s
startup_delay: 5s
max_memory_mb: 50
graceful_shutdown: 30s
collectors:
process:
enabled: true
interval: 60s
port:
enabled: true
interval: 60s
software:
enabled: true
interval: 300s
system:
enabled: true
interval: 300s
metrics:
enabled: true
interval: 30s
network:
enabled: false # Enable if elevated privileges available
logging:
level: info
format: json
output: stdout
Windows
Create C:\ProgramData\Cert-IX\bitcollector\config.yaml with the same content, adjusting paths:
control_plane:
gateway_url: https://api.cert-ix.com/api/v1/agents
ingest_url: https://api.cert-ix.com/api/v1/ingest
tenant_id: "<YOUR_TENANT_ID>"
heartbeat_interval: 60s
token_path: "C:\\ProgramData\\Cert-IX\\bitcollector\\.agent-token"
retry_max_attempts: 5
retry_base_delay: 2s
agent:
data_dir: "C:\\ProgramData\\Cert-IX\\bitcollector"
collection_interval: 60s
startup_delay: 5s
max_memory_mb: 50
graceful_shutdown: 30s
collectors:
process:
enabled: true
interval: 60s
port:
enabled: true
interval: 60s
software:
enabled: true
interval: 300s
system:
enabled: true
interval: 300s
metrics:
enabled: true
interval: 30s
network:
enabled: false
logging:
level: info
format: json
output: stdout
You can also set configuration via environment variables instead of editing the YAML file:
| Variable | Description |
|---|---|
CERTIX_TENANT_ID | Your tenant ID (required) |
CERTIX_GATEWAY_URL | Agent Gateway URL |
CERTIX_INGEST_URL | Ingestion Gateway URL |
CERTIX_TLS_CA_CERT | CA certificate path |
CERTIX_TLS_CLIENT_CERT | Client certificate path |
CERTIX_TLS_CLIENT_KEY | Client key path |
Environment variables take precedence over config file values.