Documentation
Set up the telemetry agent
The OwnNet agent is a single static binary. This guide takes a Linux host from a bare package to a verified, encrypted telemetry stream in about five minutes.
Requirements
Before you begin, confirm the host meets the baseline:
- Linux x86_64 or arm64, kernel 4.19 or later
- Outbound TCP 443 to
gw-se.ownnet.club - 64 MiB RAM and 512 MiB of buffer disk
- A tenant ID issued by your OwnNet account manager
Agent versioning. Releases are signature-verified and pinned. The examples below target agent v2.4.x.
Install the agent
Add the repository and install
bash — Debian / Ubuntu
# import the signing key and repository
curl -fsSL https://ownnet.club/packages/ownnet.gpg | sudo gpg --dearmor -o /usr/share/keyrings/ownnet.gpg
echo "deb [signed-by=/usr/share/keyrings/ownnet.gpg] https://ownnet.club/packages stable main" | sudo tee /etc/apt/sources.list.d/ownnet.list
sudo apt update
sudo apt install -y ownnet-agent
bash — RHEL / Rocky / Alma
sudo dnf config-manager --add-repo https://ownnet.club/packages/ownnet.repo sudo dnf install -y ownnet-agent
Verify the binary: ownnet-agent --version should print 2.4.x.
Provision credentials
Exchange your enrolment secret for a tenant token
The enrolment secret is single-use and valid for 24 hours. Store the resulting token in the system keyring, not in the unit file.
bash — one-time enrolment
# ENROLMENT_SECRET is issued in the subscriber portal sudo ownnet-agent enroll \ --tenant "acme-eu-prod" \ --secret "$ENROLMENT_SECRET" \ --region "se-stockholm-01" # -> wrote /etc/ownnet/agent.key (mode 0600)
Rotation. Tokens are valid for 15 minutes and renewed automatically. Revoke a host from the portal — no agent-side action is required.
Write the config
Create /etc/ownnet/agent.toml
/etc/ownnet/agent.toml
[tenant] id = "acme-eu-prod" region = "se-stockholm-01" [transport] endpoint = "wss://gw-se.ownnet.club/ingest/v1" tls = "1.3" compression = "zstd" max_batch_bytes = 4_194_304 [buffer] path = "/var/lib/ownnet/buffer" max_size = "512MiB" flush_seconds = 5 [sources.metrics] enabled = true interval = "10s" [sources.logs] enabled = true paths = ["/var/log/nginx/access.log"] [failover] probe_interval = "5s" candidates = ["gw-nl.ownnet.club", "gw-de.ownnet.club"]
Start the service
Enable and start the unit
bash
sudo systemctl enable --now ownnet-agent sudo systemctl status ownnet-agent --no-pager
bash — Docker alternative
docker run -d --name ownnet-agent --restart unless-stopped \ -v /etc/ownnet:/etc/ownnet:ro \ -v /var/lib/ownnet:/var/lib/ownnet \ ghcr.io/ownnet/agent:2.4
Verify ingestion
Confirm the stream is accepted
bash
ownnet-agent status # tenant acme-eu-prod # gateway gw-se.ownnet.club (se-stockholm-01) # transport connected TLS 1.3 / H2 # latency 3.2 ms baseline # buffer 0.4 MiB / 512 MiB # last ack 10s ago
Ingested series appear in the subscriber portal under Telemetry → Streams within one flush interval.
Troubleshooting
| Symptom | Likely cause | Action |
|---|---|---|
| TLS handshake failed | Egress proxy terminating TLS | Allow direct 443 egress to the gateway hostname |
| 4401 token expired | Host clock drift above 60 s | Enable NTP on the host, then restart the agent |
| buffer > 80% | Gateway unreachable, replay pending | Check ownnet-agent status candidates |
| tenant not provisioned | Enrolment secret unused | Re-run ownnet-agent enroll with a fresh secret |
Stuck on step 5?
Send the output of ownnet-agent status to our support team.