A simple, configurable application and set of services to monitor multiple raspberry pi's on a network.

Overview

rpi-info-monitor

A simple, configurable application and set of services to monitor multiple raspberry pi's on a network. It can be used in a terminal or a web UI.

There are three components:

  1. rpimonitor - A module used to format and display the information about each pi into a terminal or web UI (can be viewed vertically or horizontally)
  2. rpimonitorapi - A flask API that runs on each pi to communicate information about the running proccesses and resources
  3. webdisplay - A flask service that can be used to host the front end web UI. It can be installed on the main pi or another machine, but is not required

NOTE: The web UI (webdisplay) depends on the rpimonitor module. It is suggested to install the module or keep these two folders in the same directory if you want to run the web UI. Otherwise you will need to add the rpimonitor module to your PYTHONPATH

Installation/Usage:


  1. Install the flask service on each pi by running the install.sh script as root or setting up the services manually
  2. On your main pi/machine that will be used to run the display, modify the HOSTS variable in rpimonitor/config.py with the host names and local IPs of your pi's
  3. After modifying the configuration, you can install using the setup.py: python3 setup.py install
  4. Install the required python modules on the main pi/machine (pip install -r requirements.txt)
  5. You can then install the rpi-info-webapi service if you want to use the web UI (if using the web UI, you can get better formatting for mobile by installing the flask_mobility package)
  6. To run the display loop in a terminal, use python3 -m rpimonitor --run-forever [options]

Confiugration:


The config.py file in the rpimonitor directory/module is used by the web UI and command line utility. The below configurations are available:

  • HOSTS - A list of dictionaries that contain 2 keys: 1) "hostname" - the host name of the pi and 2) "local_ip" - the local IP address of the pi
  • SERVICES - A list of services (names of proccesses) to display in the services panel
  • COUNT_DISPLAY_SERVICES - A list of names from SERVICES that will display the number of running processes instead of Running/Stopped
  • WIDTH - Character width of each panel (height is automatically adjusted)
  • VALUE_SPACING - Character position of the status values in each panel
  • API_PORT - The web API port that will be used on each pi
  • PCT_RED_THRESH - The threshold used to color numeric values as red
  • SLEEP_TIME - The time to sleep between each refresh (when using -r/--run-forever in the terminal)
  • TEMP_UNITS - Units that the CPU temperature will be displayed in (fahrenheit/celsius)
  • MAX_TEMP - Maximum temperature (fahrenheit)

Examples:


Command:

$ ./display.sh or $ python3 -m rpimonitor

NOTE: You can pass --no-color to not include coloring in the terminal display

Output:

rpi-monitor-example

Web Output:

-----------------------------------------------------------------------------------------------------------------
2021-08-13                                                                                               04:13 PM
-----------------------------------------------------------------------------------------------------------------
rpi - 192.168.1.1                    |rpi2 - 192.168.1.2                   |rpi3 - 192.168.1.3
-------------------------------------|-------------------------------------|-------------------------------------
Status: Up (4d 6h 29m)               |Status: Up (0d 17h 15m)              |Status: Up (7d 1h 55m)
-------------------------------------|-------------------------------------|-------------------------------------
IP:               x.x.x.x            |IP:               x.x.x.x            |IP:               x.x.x.x
IP State:         Pennsylvania       |IP State:         New York           |IP State:         Pennsylvania
IP City:          Philadelphia       |IP City:          New York           |IP City:          Philadelphia
-------------------------------------|-------------------------------------|-------------------------------------
pihole-FTL:       Running            |pihole-FTL:       Stopped            |pihole-FTL:       Running
openvpn:          Stopped            |openvpn:          Running            |openvpn:          Stopped
qbittorrent-nox:  0 Services         |qbittorrent-nox:  2 Services         |qbittorrent-nox:  0 Services
dockerd:          Running            |dockerd:          Stopped            |dockerd:          Stopped
minidlnad:        Running            |minidlnad:        Stopped            |minidlnad:        Stopped
sshfs:            2 Services         |sshfs:            2 Services         |sshfs:            0 Services
-------------------------------------|-------------------------------------|-------------------------------------
Memory Usage:     0.3/4.1GB (13.4%)  |Memory Usage:     0.1/1.9GB (13.5%)  |Memory Usage:     0.2/1.0GB (26.3%)
CPU Usage:        2.6%               |CPU Usage:        0.2%               |CPU Usage:        0.1%
CPU Temp:         45.8C              |CPU Temp:         37.5C              |CPU Temp:         39.7C
-----------------------------------------------------------------------------------------------------------------

Command:

$ ./display.sh --vertical or$ python3 -m rpimonitor --vertical (or replace --vertical with -v)

Output:

rpi-monitor-example-vertical

Web Output:

2021-08-13                   04:14 PM
-------------------------------------
rpi - 192.168.1.1
-------------------------------------
Status: Up (4d 6h 29m)
-------------------------------------
IP:               x.x.x.x
IP State:         Pennsylvania
IP City:          Philadelphia
-------------------------------------
pihole-FTL:       Running
openvpn:          Stopped
qbittorrent-nox:  0 Services
dockerd:          Running
minidlnad:        Running
sshfs:            2 Services
-------------------------------------
Memory Usage:     0.3/4.1GB (13.4%)
CPU Usage:        1.1%
CPU Temp:         44.8C


rpi2 - 192.168.1.2
-------------------------------------
Status: Up (0d 17h 15m)
-------------------------------------
IP:               x.x.x.x
IP State:         New York
IP City:          New York
-------------------------------------
pihole-FTL:       Stopped
openvpn:          Running
qbittorrent-nox:  2 Services
dockerd:          Stopped
minidlnad:        Stopped
sshfs:            2 Services
-------------------------------------
Memory Usage:     0.1/1.9GB (13.5%)
CPU Usage:        0.4%
CPU Temp:         38.5C


rpi3 - 192.168.1.3
-------------------------------------
Status: Up (7d 1h 56m)
-------------------------------------
IP:               x.x.x.x
IP State:         Pennsylvania
IP City:          Philadelphia
-------------------------------------
pihole-FTL:       Running
openvpn:          Stopped
qbittorrent-nox:  0 Services
dockerd:          Stopped
minidlnad:        Stopped
sshfs:            0 Services
-------------------------------------
Memory Usage:     0.2/1.0GB (26.3%)
CPU Usage:        0.0%
CPU Temp:         39.7C
Owner
Kevin Kirchhoff
I work as a quant analyst, experienced mainly in equity derivatives.
Kevin Kirchhoff
A simple python script to send cute messages to my boyfriend.

Morning Messages A simple python script to send cute messages to my boyfriend. It gives him the weather and news currently. Installation git clone htt

Sabrina Medwinter 3 Oct 12, 2022
A simple electrical network analyzer, BASED ON computer-aided design.

Electrical Network Analyzer A simple electrical network analyzer. Given the oriented graph of the electrical network (circut), BASED ON computer-aided

Ahmad Abdulrahman 4 Oct 15, 2022
Uses machine learning to scan the similarity of two texts

PlagiarismChecker Uses machine learning to scan the similarity of two documents. End Points: http://localhost:3000/register (create a/c) http://localh

Elvis Chege 2 Aug 10, 2022
Python implementation of the Session open group server

API Documentation CLI Reference Want to build from source? See BUILDING.md. Want to deploy using Docker? See DOCKER.md. Installation Instructions Vide

Oxen 36 Jan 02, 2023
Malcolm is a powerful, easily deployable network traffic analysis tool suite for full packet capture artifacts (PCAP files) and Zeek logs.

Malcolm is a powerful, easily deployable network traffic analysis tool suite for full packet capture artifacts (PCAP files) and Zeek logs.

Cybersecurity and Infrastructure Security Agency 1.3k Jan 08, 2023
A simple, 2-person chat program that runs on a single computer. No Internet, just you

localChat A simple, 2-person chat program that runs on a single computer. No Internet, just you. Simple and Local This was created with ease of use in

Owls 2 Aug 19, 2022
pyngrok is a Python wrapper for ngrok

pyngrok is a Python wrapper for ngrok that manages its own binary, making ngrok available via a convenient Python API.

Alex Laird 329 Dec 31, 2022
Dshell is a network forensic analysis framework.

Dshell An extensible network forensic analysis framework. Enables rapid development of plugins to support the dissection of network packet captures. K

DEVCOM Army Research Laboratory 5.4k Jan 06, 2023
Bark Toolkit is a toolkit wich provides Denial-of-service attacks, SMS attacks and more.

Bark Toolkit About Bark Toolkit Bark Toolkit is a set of tools that provides denial of service attacks. Bark Toolkit includes SMS attack tool, HTTP

13 Jan 04, 2023
An improved version of the original AutoDD

AutoDD = Automatically does the "due diligence" for you. If you want to know what stocks people are talking about on reddit, this little program might help you.

Steven Zhu 169 Oct 05, 2022
Ipscanner - A simple threaded IP-Scanner written in python3 that can monitor local IP's in your network

IPScanner 🔬 A simple threaded IP-Scanner written in python3 that can monitor lo

4 Dec 12, 2022
Python 3.3+'s ipaddress for older Python versions

ipaddress Python 3.3+'s ipaddress for Python 2.6, 2.7, 3.2. This repository tracks the latest version from cpython, e.g. ipaddress from cpython 3.8 as

Philipp Hagemeister 103 Nov 11, 2022
This script aims to make the dynamic public ip of your local server, public.

EZ DDNS CLOUDFLARE This script aims to make the dynamic ip of your local server, public. It does this by regularly updating cloudflare's dns record. B

3 Feb 13, 2022
An automatic reaction network generator for reactive molecular dynamics simulation.

ReacNetGenerator An automatic reaction network generator for reactive molecular dynamics simulation. ReacNetGenerator: an automatic reaction network g

Tong Zhu Research Group 35 Dec 14, 2022
🐛 SSH self spreading worm written in python3 to propagate a botnet.

Mirkat SSH self spreading worm written in python3 to propagate a botnet. Install tutorial. cd ./script && sh setup.sh Support me. ⚠️ If this reposito

Ѵιcнч 58 Nov 01, 2022
Huawei firewall automatically updates Chinese ip to target IP group.

Huawei firewall automatically updates Chinese ip to target IP group.

Lundaa 0 Jan 11, 2022
Simple HTTP Server for CircuitPython

Introduction Simple HTTP Server for CircuitPython Dependencies This driver depen

Adafruit Industries 22 Jan 06, 2023
Blockchain-Enabled IoT Sensor Framework that uses Augmented Reality and Artificial Intelligence.

Arduino + Raspberry Pi + Unity3D + Cloud + Hyperledger Our Mission: Keep it simple, leave no one behind. Blockchain-Enabled Smart Sensor Framework usi

DappAR 23 Dec 05, 2021
Mini SCADA. Poll modbus devices by TCP/IP network.

Plans Add saving and loading devices and channels with files or db or someone else. Multitasking system for poll all devices Automatic optimization po

Efi_fi 1 Oct 25, 2021
SonicWall SSL-VPN Exploit

VisualDoor SonicWall SSL-VPN Exploit, as used by Phineas Fisher to hack Cayman Trust Bank and Hacking Team.

169 Nov 15, 2022