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:
curl -fsSL https://api.rubixkube.ai/install/observer.sh | bash -s -- --api-key=rk_YOUR_API_KEY
Always copy the command from the console. The embedded API key scopes the Observer to your workspace.

Interactive flow

For a plain Linux host:
What would you like to do?
  1) Install Observer
  2) Uninstall Observer
> 1

Where do you want to deploy the observer?
  1) On this machine
  2) Create a new AWS EC2 instance
  3) Create a new GCP Compute Engine instance
> 1

Which platform are you monitoring?
  1) VM (generic Linux)
  2) AWS
  3) GCP
> 1
The installer places a binary at /usr/local/bin/rubixkube-observer, config at /etc/rubixkube/, and registers a systemd unit named rubixkube-observer.

Verify

sudo systemctl status rubixkube-observer
Expected:
● rubixkube-observer.service - RubixKube Observer
   Loaded: loaded
   Active: active (running)
Tail the logs:
sudo journalctl -u rubixkube-observer -f
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

SignalDetail
CPUPer-core usage, load averages, steal time
MemoryUsed, available, swap, cached, buffers
DiskUsage per mount, read and write IOPS, latency
NetworkPer-interface throughput, errors, drops
ProcessesTop consumers by CPU and memory, zombie detection
SystemdUnit state for services you include in the scope list
Kernel eventsOOM 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:
sudo bash -c 'echo "SYSTEM_POLL_INTERVAL=60s" >> /etc/rubixkube/observer.env'
sudo systemctl restart rubixkube-observer

Troubleshooting

sudo journalctl -u rubixkube-observer -n 50
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:
api.rubixkube.ai
nats.rubixkube.ai
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:
sudo systemctl stop rubixkube-observer
sudo systemctl disable rubixkube-observer
sudo rm -f /etc/systemd/system/rubixkube-observer.service
sudo rm -rf /etc/rubixkube /usr/local/bin/rubixkube-observer
sudo systemctl daemon-reload

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.