Raspberry Pi Monitor Dashboard is a simple monitoring tool with a dashboard suitable for monitoring multiple RPi devices (or any Linux devices). The number of devices you can monitor is unlimited. Fully configurable as to what report from bash / cli / terminal run.
Remote configuration updates as well as one-time commands to run on Linux devices (RPis) can be managed in the dashboard.
By default it reports these data:
It can report anything as commands are defined as standard bash commands and are fully configurable in config file.
index.php
and config.php
to your server (any desired path), optionally edit config.php
optionslogs/
directory in the same path and make it writable (owned by the same user or 755)config.toml.example
to config.toml
and edit: URL to server receiver path and optionally monitoring commands to execute (see Configuration in detail below)report.py
and config.toml
to your Raspberry Pi (e.g. put in a new directory /home/pi/rpi-monitor/
)crontab -e
) and add this line: 1 * * * * cd /home/pi/rpi-monitor/ && python3 report.py
(adjust reporting interval, if needed)Open server dashboard URL in your browser and enjoy.
$config['timezone']
to your timezone for dashboard to report correct time.$config['username']
and $config['password']
to secure dashboard URL with login (digest in-browser authentication is used).Dashboard URL works without login by default.
Standard commands with output are put under [commands]
section:
This will run uptime
command and fetch full output:
uptime = "/usr/bin/uptime"
This will run ifconfig
command and fetch only output of line containing "inet ":
network = ["/usr/sbin/ifconfig wlan0", ["inet "] ]
This will run ps
command and fetch only output of lines containing "firefox" or "chromium":
browser = ["/usr/bin/ps -A", ["firefox", "chromium"] ]
You can add as many strings to search for as you need. Any found output lines will be joined into one string and reported back under the name of command (e.g. browser).
Shell commands without output are put under [commands_shell]
section (executed with shell=True
in Python subprocess) - e.g. screenshot functionality.
You can use any names for the commands, the names are then shown in the dashboard.
[commands]
and [commands_shell]
sections with the updated commands and saves it as a new config.toml. Receiver URL is never replaced (and is unavailable in the dashboard) as an incorrect URL could stop the remote device from further reporting. This would be similar to crashing your monitoring, so the tool prevents it by default.# Allow automatic updates of report.py from Github (experimental)
auto_update = false
// REPORTING INTERVAL
section to have unresponsive devices displayed with red background in your dashboard.pip3 install tomli
for Python <3.10, available by default from 3.11)sudo apt install scrot
)