Skip to main content
RubixKube runs on any modern Linux host, cloud or on premise. Install the Observer as a systemd service and you get CPU, memory, disk, network, process, and service-level signals per host. Useful for boxes that live outside your cloud accounts: bare metal in a colo, one-off VMs running legacy services, edge nodes, CI runners, anything with a shell.

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:
Always copy the command from the console. The embedded API key scopes the Observer to your workspace.

Interactive flow

For a plain Linux host:
The installer places a binary at /usr/local/bin/rubixkube-observer, config at /etc/rubixkube/, and registers a systemd unit named rubixkube-observer.

Verify

Expected:
Tail the logs:
Within a minute or two, the host shows up in Environments in the console, and Infrastructure Topology populates with system-level metrics.

What is being monitored

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

Most common causes: invalid API key, permission denied on /etc/rubixkube/ (check ownership), port already in use.
  1. Confirm the service is running: sudo systemctl status rubixkube-observer.
  2. Check connectivity: curl -I https://api.rubixkube.ai.
  3. Check NATS reachability: curl -I https://nats.rubixkube.ai.
  4. Wait two or three minutes for the first poll cycle.
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.
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:

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.