| Name | Hostname | Env | OS / arch | Version | Status | Last seen |
|---|
almon agents are single static
binaries. The download endpoint bakes the server URL, the environment, and
the env's API key into the binary, so a plain
wget && ./almon is enough — no flags, no env vars.
Pairing is gated by the env API key, so only the snippet you copy from this
card can enrol new hosts. Already-paired agents keep working through their
own per-agent token even if you rotate the env key later.
Auto-detects amd64 vs arm64 and prefers .deb
on Debian/Ubuntu (so dpkg -r almon-agent uninstalls cleanly).
Pick the environment to register under.
.deb)Installs to /usr/local/bin/almon-agent,
registers a systemd unit, starts on boot. Remove with
dpkg -r almon-agent.
For non-Debian Linux. Drop it anywhere and ./run it.
After the agent starts it will appear in the table above as pending; accept it to start receiving metrics.
Drag horizontally on any chart to zoom in. Double-click to reset. Hover anywhere to see exact values; the bottom-right of each chart shows the time at the cursor.
| Mount | FS | Used | Total | % |
|---|
| Name | Speed | Duplex | MAC | Addresses | RX | TX | Errors | State |
|---|
Live tail of /dev/kmsg lines classified as
filesystem (EXT4 / XFS / Btrfs / JBD2), block I/O, ATA / SATA,
out-of-memory kills, or machine-check / hardware errors.
Drained every 30 s; on a fresh restart the agent re-scans
whatever is still in the kernel ring buffer, so recent
errors from before the restart show up too.
| When | Cat | Device | Message |
|---|
Live tail of /var/log/syslog or
/var/log/messages. New lines arrive on each
agent report (~60 s) and stream in via WebSocket. Click
follow off to freeze the view while you scroll.
| When | Level | Kind | Agent | Message | Resolved |
|---|
Services are detected automatically by the agent. The agent is strictly read-only — it never writes anything to the host. Newly discovered instances appear here as unconfigured; admins can rename, annotate, or hide them.
| Kind | Instance | Host | Env | State | Display name | Last seen |
|---|
Tip: each environment carries an API key
the install page bakes into ?env=NAME&key=….
New agents can only pair with a matching key, so you don't have
to worry about random hosts on the network registering
themselves. Already-paired agents keep working through their
own per-agent token even if you rotate the env key later.
| Name | Description | Agents | API key | Created |
|---|
Roles: admin sees and does everything · manager can manage agents within their assigned environments · plain user is read-only on their environments. After creating a non-admin user, give them access to specific environments below.
| Username | Role | Environments | Created |
|---|
All agent ↔ server traffic is gzipped JSON. Optionally, you can also require AEAD payload encryption (XChaCha20-Poly1305 with a per-agent key derived from the agent's pair token). This protects agent reports from tampering and eavesdropping on the wire even without HTTPS. Toggling this re-trains every connected agent within ~5s.
Host system-log lines (the per-agent
/var/log/syslog tail) are kept this long before
being purged. The default is 3 days — syslog volume on a
busy host can dwarf metric volume, so this is short by
design. Bump it if you need a longer forensic window. A
per-agent rolling cap (50 000 rows) also runs in parallel
to stop one chatty host from filling the DB. Changes take
effect on the next maintenance tick (≤ 1 h) and apply
retroactively to already-stored lines.
Live stats for the SQLite file. Big host_logs /
metrics / service_metrics row counts are usually the
culprit when the DB grows out of control. All actions below run as background
jobs so the UI doesn't freeze — except full VACUUM, which holds
an exclusive lock on the database for its entire run.
Routine reclaim (safe to run live):
Wipe table hard-deletes every row in the chosen table (chunked, non-blocking, cannot be undone). Charts and log views go blank for that data.
Full VACUUM rewrites the entire DB file. SQLite holds an exclusive lock for its entire run, so every other request that touches the DB (login, agent ingest, dashboard load, …) will time out until it completes. On a multi-GB file expect 10–30 minutes minimum; the running server effectively goes offline. Needs roughly the current DB size in free disk space. Run only during a planned maintenance window.
A full VACUUM is required once on a DB created
before v50 to convert it to auto_vacuum=incremental — after
which "Reclaim free space" works. v50+ DBs have it from the start and never
need a full VACUUM.
Rules that watch a metric on one or more hosts and open an alert when the condition holds for the configured duration. Built-in rules ship with the server and cover the usual high-CPU / memory / disk / NIC-error patterns; you can tune their thresholds or disable them, but not delete them.
| Name | Condition | For | Level | Scope | Type |
|---|
Pick one or more hosts below to overlay them. Hold ⌘/Ctrl to multi-select.
| Name | Owner | Visibility | Widgets | Updated |
|---|