All posts
tutorialraspberry-pilinux

Monitor a Raspberry Pi with OxiPulse

By SecuryBlack

A Raspberry Pi running a home server, a media centre, or a self-hosted service deserves the same monitoring as a cloud VM — but the agent needs to fit alongside everything else on limited hardware. OxiPulse compiles to a native ARM64 binary and uses under 8 MB of RAM in steady state.

Prerequisites

  • Raspberry Pi 3, 4 or 5 (64-bit OS)
  • Raspberry Pi OS (64-bit), Ubuntu Server, or any 64-bit ARM Linux
  • An OxiPulse account at app.securyblack.com — or your own OTLP ingestor
OxiPulse also builds for `armv7` (32-bit ARM), but the 64-bit binary is recommended for Raspberry Pi 3 and newer when running a 64-bit OS.

1. Install the agent

curl -fsSL https://install.oxipulse.dev | sudo bash

The installer detects the ARM64 architecture automatically and downloads the correct binary. It installs to /usr/local/bin/oxipulse and registers a systemd service.

2. Create an agent in SecuryBlack

Log into app.securyblack.com, navigate to Agents, and click New agent. Give it a name (e.g. raspberrypi-home) and copy the token shown — it will not be displayed again.

3. Configure the agent

sudo mkdir -p /etc/oxipulse
sudo nano /etc/oxipulse/config.toml
endpoint = "https://ingest.securyblack.com:4317"
token    = "YOUR_TOKEN_HERE"

# Pi-friendly settings
interval_secs   = 30    # every 30 s reduces CPU overhead on older Pis
buffer_max_size = 2880  # 24 h at 30 s interval

A 30-second interval is a good default for a Pi. It halves the CPU load compared to the 10-second default while still giving useful resolution.

4. Start the service

sudo systemctl enable --now oxipulse
sudo systemctl status oxipulse

5. Verify in the dashboard

Open the agent detail page in SecuryBlack. Within 30–60 seconds you should see CPU, RAM, disk and network charts populating with data. CPU usage on a Pi 4 at 30-second intervals is under 0.05%.

Tips for constrained Pis

Raspberry Pi Zero / Pi 1 (ARMv6): These use a 32-bit ARMv6 core not covered by the ARMv7 binary. Compile from source targeting arm-unknown-linux-musleabihf or use the 32-bit ARMv7 binary with a compatibility wrapper.

SD card longevity: OxiPulse buffers metrics in RAM, not on disk, so it does not add wear to the SD card during normal operation.

Low RAM (512 MB): At the default buffer size of 8,640 snapshots the buffer uses under 1 MB. At a 30-second interval with a 2,880-snapshot buffer it uses under 200 KB. Safe on any Pi.