Server Monitoring
Install a single file on your server: CPU, memory, disk, services, database and Socket.io status flow into the panel, error logs land in Radio, and if the "backup done" signal never arrives an alarm goes off. The agent changes nothing on your server and its source is public.
- Ubuntu and Windows · one file
- Read-only, runs no commands
- Alarm when a backup is missed
- Supported systems
- Ubuntu/Debian and systemd distributions · Windows Server
- Requirements
- curl + (python3 or jq). Both ship with Ubuntu
The site is up while the server is dying
An external check says "200 OK" and cannot see that the disk is 97% full, that MySQL connections have hit the ceiling, or that the nightly backup has not run for three days. By the time anyone notices, the outage has already happened — although all three were visible hours earlier.
One file, one command
A shell script for Ubuntu, a PowerShell script for Windows. No Docker, no extra packages, no repositories to add: download it, run install, it runs as a service.
Read-only, and we can prove it
The agent starts no services, deletes no files, changes no configuration. Signalbird cannot send it commands: what travels from the panel is configuration, not commands (which metrics are on, which file is read). The source is public on GitHub and the complete list of commands it runs is in its protocol document.
The server from the inside
Load, CPU, memory, swap, disk and inode usage, systemd/Windows service states, listening ports, top processes by CPU. Every minute, on one card.
Database and Socket.io
Connection count, response time, slow queries and size for MySQL, PostgreSQL and SQL Server; connected clients, rooms and event rate for Socket.io. Database credentials stay in the local config file and are never sent to Signalbird.
Error logs flow into Radio
New lines in your nginx, application or system log that match your filter land in Radio and hook into its notification rules. Which files may be read is limited ON THE SERVER: a path chosen in the panel cannot escape the allowed roots.
Expected signals (backup alarm)
Add one line to your backup script: signalbird-agent signal db-backup ok. In the panel you say "expected every hour, 5 minutes of tolerance"; if nothing arrives by 14:05 the alarm fires. If the script fails it sends a fail signal and the alarm fires immediately.
Version news arrives on its own
The agent never updates itself — a self-updating agent is remote code execution with good manners. When a new version is published, the owner of every server running an older one gets a notification. The decision to update is yours.
A working example, copied from the package.
# 1) Install on the server (Ubuntu)
curl -fsSL https://raw.githubusercontent.com/Pariette-Inc/agent.signalbird/main/signalbird-agent.sh -o signalbird-agent.sh
sudo bash signalbird-agent.sh install --token=sba_live_xxxxxxxx
# 2) Add one line at the end of your backup script
if mysqldump --all-databases | gzip > /var/backups/db.sql.gz; then
signalbird-agent signal db-backup ok "$(du -h /var/backups/db.sql.gz | cut -f1)"
else
signalbird-agent signal db-backup fail "mysqldump failed"
fi- Supported systems
- Ubuntu/Debian and systemd distributions · Windows Server
- Requirements
- curl + (python3 or jq). Both ship with Ubuntu
- Source code
- github.com/Pariette-Inc/agent.signalbird · MIT
- Interval
- 30 seconds to 1 hour, set from the panel
- Databases
- MySQL · MariaDB · PostgreSQL · SQL Server
- Billing
- Per server, monthly. Metric volume is never billed
What can the agent do on my server?
Read, and nothing else. It cannot start services, delete files, change configuration or install packages, and Signalbird cannot send it commands. The complete list of commands it runs is in section 7 of its protocol document, and the source is public.
Does my database password reach Signalbird?
No. Connection details live only in /etc/signalbird/agent.conf on your server; they are not shown in the panel, cannot be managed from it and are never sent. We recommend giving the agent a read-only database user.
Could someone make it read /etc/passwd from the panel?
No. The readable roots are set ON THE SERVER during installation (default /var/log). A path chosen in the panel that is not under them is skipped. Even a compromised Signalbird account cannot open a new file.
My server has no inbound access. Does it work?
The agent always opens the connection; Signalbird never connects to your server. Outbound 443 is enough, you open no inbound port.
How is this different from Uptime Monitoring?
Uptime Monitoring looks from the outside: "does the address respond, how fast". Server Monitoring looks from the inside: "is the disk filling up, did MySQL connections spike, did last night's backup run". They do not replace each other; most teams take both.
How many servers can I connect?
As many as your package allows. Pricing is per server and metric volume is never billed — a price that pushes you to widen the interval would make the product worse.
Which quota do the logs consume?
The Radio (Logs) module quota. Storage cost lives there, so we do not count it twice; the agent is only the courier.
Server Monitoring switches on today
Opening an account takes minutes. Add the module, set its limit, start using it.