Install the Praxis collector on Linux
Run praxis-collector on bare metal or a VM when you are not using Kubernetes. The binary connects to Praxis with OpAMP over a secure WebSocket, receives the pipeline configuration from Praxis the same way the Kubernetes path does, and runs your sources, processors, and destinations on the host.
Pipelines, credentials, and the collector instance you attach in Praxis are still the source of truth; this page describes the host install and runtime expectations.
Before you begin
- Prerequisites from Praxis — A published pipeline, an OpAMP URL (
wss://.../v1/opamporws://...in non-production only), OAuth2 client key and secret for machine access, org ID, tenant ID, and pipeline ID. Praxis shows these when you add or enroll a Linux collector, or your administrator shares them in your runbook. - Network — The host must reach Praxis (OpAMP and token exchange) and any export destinations your pipeline uses (for example public cloud or corporate endpoints) according to your firewall rules.
- Privileges — Plan to run the collector with the least privilege that still allows your chosen sources (for example file tailing under
/var/logmay require read access to specific paths or group membership).
Install (script pattern)
Your environment may show a copy-paste command from Praxis. It typically:
- Downloads an install script from the download location your organization or Praxis provides.
- Passes
--url,--key,--secret,--org,--tenant, and--pipeline(and optionally--version/--imagewhere applicable). - Installs a system service that starts the collector and reconnects to Praxis on boot.
A representative shape (placeholders only — use the exact command and URL from your Praxis UI or runbook):
sudo bash -c '$(curl -k -L https://<artifact-host>/path/linux_install.sh)' -- \
--url wss://<praxis-host>/v1/opamp \
--secret <oauth2-client-secret> \
--key <oauth2-client-key> \
--org <org-id> \
--tenant <tenant-id> \
--pipeline <pipeline-id>
Some distributions ship curl without TLS verification flags on the download step; if your security policy disallows that, download the script, inspect it, and run it from disk instead of piping to bash, the same way described in the Kubernetes install guide.
After install
- Confirm the service is active and logs show a healthy OpAMP session to Praxis.
- In Praxis, confirm the collector instance is online and the pipeline is attached as you expect.
- If you are not on Kubernetes, ignore Kubernetes-only receiver RBAC; on Linux use the right file, syslog, journald, or OTLP sources for the host.
Behind an HTTP/HTTPS Proxy
If the host's egress to Praxis or to your destinations must traverse a corporate proxy, configure the collector with the standard Go HTTP proxy environment variables — HTTPS_PROXY, HTTP_PROXY, and NO_PROXY.
At install time (recommended)
The Linux installer accepts proxy flags directly. It writes a systemd drop-in at /etc/systemd/system/praxis-collector.service.d/proxy.conf that survives package upgrades, then starts the service with the proxy already applied.
sudo bash -c '$(curl -k -L https://<artifact-host>/path/linux_install.sh)' -- \
--url wss://<praxis-host>/v1/opamp \
--secret <oauth2-client-secret> --key <oauth2-client-key> \
--org <org-id> --tenant <tenant-id> --pipeline <pipeline-id> \
--https-proxy http://proxy.corp.local:3128 \
--no-proxy "localhost,127.0.0.1,::1,.corp.local,169.254.169.254"
If --no-proxy is omitted but --https-proxy (or --http-proxy) is set, a sensible loopback/IMDS default is applied automatically.
After install (manual)
To add or change proxy settings on an existing install, write the drop-in yourself:
sudo mkdir -p /etc/systemd/system/praxis-collector.service.d
sudo tee /etc/systemd/system/praxis-collector.service.d/proxy.conf >/dev/null <<'EOF'
[Service]
Environment="HTTPS_PROXY=http://proxy.corp.local:3128"
Environment="HTTP_PROXY=http://proxy.corp.local:3128"
Environment="NO_PROXY=localhost,127.0.0.1,::1,.corp.local,169.254.169.254"
EOF
sudo systemctl daemon-reload
sudo systemctl restart praxis-collector
Verify the env is applied and the OpAMP session reconnects:
sudo systemctl show praxis-collector -p Environment
sudo journalctl -u praxis-collector -f | grep -iE "proxy|dial|connect"
NO_PROXY checklist
Always include localhost, 127.0.0.1, ::1, 169.254.169.254 (cloud instance metadata), and the internal hostnames/CIDRs of any LAN log sources (for example a local syslog or HEC source) the collector connects to.
Auth-required proxies
Use HTTPS_PROXY=http://user:[email protected]:3128. URL-encode any special characters in the password.
TLS-inspecting (MITM) proxies
Install the corporate root CA into the OS trust store so outbound TLS handshakes validate.
# Debian/Ubuntu
sudo cp corp-root-ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
# RHEL/CentOS/Rocky
sudo cp corp-root-ca.crt /etc/pki/ca-trust/source/anchors/
sudo update-ca-trust
sudo systemctl restart praxis-collector
All outbound paths honor the standard proxy env vars, including the OpAMP WebSocket (collector ↔ Praxis), the OAuth2 token endpoint, the Google SecOps HTTP and gRPC exporters, Splunk HEC, Snowflake, M365, the GitHub receiver, and other confighttp-based exporters.
The Google SecOps gRPC path uses gRPC-Go's built-in CONNECT tunneling, which inspects HTTPS_PROXY / https_proxy only — never HTTP_PROXY. Always set HTTPS_PROXY when proxying Chronicle gRPC traffic, even if you also set HTTP_PROXY for HTTP-based exporters.
Uninstall
Use the uninstall script or package command in Praxis or in your runbook (often a companion linux_uninstall.sh style script), or remove the package the install step registered. Stopping the service before removal avoids orphaned processes.
Related
- macOS and Windows — other single-host options.
- Installation overview — how the host collector fits with Kubernetes and Praxis Gateway.
- Praxis Gateway configuration — if this Linux host sends telemetry to a gateway tier.