Overview
The Ayliea Collector is a lightweight network agent that passively discovers AI platform usage on your network. It captures DNS queries and TLS Server Name Indication (SNI) handshakes — both plaintext metadata — and forwards matched events to Ayliea for analysis. Privacy-first by design:- No SSL/TLS decryption
- No packet payload inspection
- No content analysis
- No endpoint agents required
Deployment Methods
Choose the method that fits your environment:Docker
Recommended for most deployments. Hardened container with minimal privileges.
Static Binary
Self-contained binary for hosts without Docker. Linux x86_64 and ARM64.
Syslog Forwarding
Point your existing firewall syslog at Ayliea. No agent required.
Prerequisites
Before deploying, generate a monitoring token in Ayliea:Generate a token
In the Monitoring Tokens section, click Generate Token and enter a descriptive label (e.g., “prod-firewall” or “hq-network”).
Docker
The recommended deployment method. The container runs as a non-root user with a read-only filesystem and minimal Linux capabilities.Create the compose file
Save the following as Replace
docker-compose.collector.yml:docker-compose.collector.yml
YOUR_TOKEN_HERE with your monitoring token and eth0 with your network interface.Find your network interface
eth0 (Linux), ens33 (VMware), eno1 (Dell/HP servers), bond0 (bonded interfaces).Security hardening
The Docker configuration above includes production-grade security defaults:| Setting | Purpose |
|---|---|
cap_drop: ALL + cap_add: NET_RAW | Only the packet capture capability is granted |
read_only: true | Container filesystem cannot be modified |
no-new-privileges | Prevents privilege escalation inside the container |
tmpfs with noexec,nosuid | Temp directories cannot execute binaries |
memory: 256m, cpus: 1.0 | Limits resource consumption |
| Non-root user | Container process does not run as root |
Environment variables
| Variable | Default | Description |
|---|---|---|
AYLIEA_TOKEN | (required) | Your organization’s monitoring token |
AYLIEA_ENDPOINT | ingest.ayliea.com | Ingest endpoint hostname |
INTERFACE | eth0 | Network interface to capture on |
SYSLOG_PORT | 6514 | Syslog forwarding port |
SYSLOG_PROTOCOL | tls | Transport protocol: tls, tcp, or udp |
HTTPS_ENABLED | true | Enable HTTPS batch forwarding |
HEALTH_PORT | 9090 | Local health endpoint port |
LOG_LEVEL | INFO | Log verbosity: DEBUG, INFO, WARNING, ERROR |
Static Binary
A self-contained binary for Linux hosts without Docker. No Python runtime required — onlylibpcap.
Download and verify
Choose your architecture:
| Platform | Binary |
|---|---|
| Linux x86_64 | ayliea-collector-linux-amd64 |
| Linux ARM64 | ayliea-collector-linux-arm64 |
Run
uname -m to check: x86_64 = amd64, aarch64 = arm64.CLI options
All options can also be set via environment variables. CLI flags take precedence.Running as a systemd service
For persistent deployments, create a systemd unit:/etc/systemd/system/ayliea-collector.service
Syslog Forwarding
If your firewall or proxy already exports syslog, you can point it directly at Ayliea without deploying an agent.Ingest endpoints
| Protocol | Endpoint | Port |
|---|---|---|
| TLS (recommended) | ingest.ayliea.com | 6514 |
| TCP | ingest.ayliea.com | 514 |
| UDP | ingest.ayliea.com | 514 |
Authentication
Include your monitoring token in the RFC 5424 structured data element on every syslog message:Supported log formats
| Vendor | Format | Notes |
|---|---|---|
| Palo Alto Networks | CSV traffic/URL filtering logs | Auto-detected |
| FortiGate | Key=value syslog or CSV export | Auto-detected |
| pfSense / OPNsense | CSV export | Auto-detected |
| Squid Proxy | Native and CLF formats | Auto-detected |
| Windows DNS Server | Debug log format | Auto-detected |
| BIND | Query log format | Auto-detected |
| Zscaler | CSV web log exports | Auto-detected |
| Generic CSV | Any CSV with domain/IP/timestamp columns | Fallback parser |
Health Endpoint
Both the Docker container and the binary expose a local health endpoint (default:http://127.0.0.1:9090/health):
Scan Frequency
The collector buffers captured events and processes them into discovery scans on a configurable schedule. You can set the scan frequency in your Ayliea dashboard under Discovery > Scan Frequency.| Frequency | Description |
|---|---|
| Hourly | Events processed every hour. Best for high-security environments needing rapid detection. |
| Daily (default) | Events processed once per day. Recommended for most organizations. |
| Weekly | Events processed once per week. Suitable for low-traffic or cost-sensitive deployments. |
Troubleshooting
No events captured
- Verify the interface name matches your primary network interface (
ip link show) - Confirm the container has
NET_RAWcapability:docker inspect ayliea-collector | grep CapAdd - Check that DNS and TLS traffic is actually flowing on the specified interface
- Set
LOG_LEVEL=DEBUGfor verbose capture output
Syslog forwarding errors
- Confirm
ingest.ayliea.comresolves from the host:dig ingest.ayliea.com - Check that port 6514 (TLS) or 514 (TCP/UDP) is not blocked by a firewall
- Verify your token is valid and has not been revoked
- Check your firewall’s syslog forwarding logs for transmission errors
Health endpoint unreachable
- The health endpoint binds to
127.0.0.1— it is only accessible from the host itself - If another service uses port 9090, set
HEALTH_PORTto an unused port
Connection verification timeout
After deploying, use the Verify button in the Ayliea dashboard to confirm events are flowing. If verification times out after 5 minutes:- Generate test traffic by visiting an AI platform from a device on the monitored network (e.g.,
curl https://api.openai.com) - Check the health endpoint for
events_captured > 0 - Verify the token matches exactly (no extra spaces or quotes)

