Prerequisites
A Linux host
Ubuntu, Debian, RHEL, CentOS, Amazon Linux, or Alpine. x86_64 or arm64.
Basic tools
curl (or wget), bash, systemd, and sudo or root access.Outbound HTTPS
api.rubixkube.ai:443 and nats.rubixkube.ai:443 reachable from the host.A RubixKube workspace
Create a new VM environment in the console to get your personal install command.
Install
On the target host:Interactive flow
For a plain Linux host:/usr/local/bin/rubixkube-observer, config at /etc/rubixkube/, and registers a systemd unit named rubixkube-observer.
Verify
What is being monitored
| Signal | Detail |
|---|---|
| CPU | Per-core usage, load averages, steal time |
| Memory | Used, available, swap, cached, buffers |
| Disk | Usage per mount, read and write IOPS, latency |
| Network | Per-interface throughput, errors, drops |
| Processes | Top consumers by CPU and memory, zombie detection |
| Systemd | Unit state for services you include in the scope list |
| Kernel events | OOM kills, segfaults, reboots |
Monitoring many VMs at once
Install the Observer on each host. All of them show up in the same environment group inside your workspace. Chat and Insights answer questions that span hosts (“which hosts are over 80% memory right now”). For dozens of hosts, the install command is scriptable. Drop it into Ansible, Chef, cloud-init, or your configuration tool of choice. The embedded API key scopes every install to your workspace automatically.Resource footprint
Roughly 150Mi RAM and single-digit millicore CPU during normal operation. The polling interval is 30 seconds by default. You can lengthen it if you are running on very small hosts:Troubleshooting
Service will not start
Service will not start
/etc/rubixkube/ (check ownership), port already in use.Metrics not appearing in console
Metrics not appearing in console
- Confirm the service is running:
sudo systemctl status rubixkube-observer. - Check connectivity:
curl -I https://api.rubixkube.ai. - Check NATS reachability:
curl -I https://nats.rubixkube.ai. - Wait two or three minutes for the first poll cycle.
High CPU or memory on a constrained host
High CPU or memory on a constrained host
Lengthen the poll interval with
SYSTEM_POLL_INTERVAL=60s (or 120s) and restart. The Observer batches signals between polls, so longer intervals cost memory only linearly in the batch buffer.Firewall blocking outbound traffic
Firewall blocking outbound traffic
Ensure outbound TCP 443 is allowed to both:Test connectivity:
curl -I https://api.rubixkube.ai && curl -I https://nats.rubixkube.ai.Uninstall
Rerun the installer and pick option 2 (Uninstall Observer). It stops the systemd service, removes the binary and config, and cleans up the systemd unit. Manual cleanup if needed:Related guides
Connect your environment
The full install flow covering every supported environment.
Observer Agent concept
What the Observer does and why it stays light.
First tutorial
Monitor infrastructure health once the Observer is live.