3

I have multiple devices of Raspberry and i'm trying to create a page to monitor these devices, something like an IoT platform but much simpler.

so basically a page with a username and a password and when accessed i can see my devices with their status if they are online or offline and some other basic information about the devices, and if it is possible to control and modify something it would be even better.

With all my devices I'm using Raspberry zero W with A7 gps/gprs/gsm module.

I have tried Rpi-Monitor and it is good, but i want something more general where i can see and monitor all my devices at the same place. so maybe in this case i need to have something like a key to install on the raspberry devices in order to configure it and see it on the site but i'm not sure and i don't have much experience in this.

Can anyone refer me to a specific procedure or how can i start to achieve this idea.

Fabian
  • 1,288
  • 1
  • 10
  • 19
Salar Yunis
  • 45
  • 2
  • 9

3 Answers3

5

If you need fast implementation, try to use some ready to use monitoring tools like zabbix, cacti, munin, nagios, but be careful with server requirements.

If you have time and want some DIY solution, try InfluxDB (database) with Grafana (Web panel). I use this solution, its lightweight and reliable. Idea is simple:

  1. On cenral server install InfluxDB. It is database for time based data series. It has REST API that could be exposed to other devices to push data.
  2. On every device you need to write simple script that grab measurments and use CURL to push data to InfluxDB.
  3. On central server install Grafana and connect to InfluxDB. It is designed to present nice graphs and dashbord of time based data series from diferent sources, InfluxDB is one of them.

I use this to monitor my in home located pi based devices as well as weather and environmental sensors.

System stats

Dashboard

Łukasz Jakubek
  • 366
  • 1
  • 9
2

A general and extensible design approach for network monitoring of several internet devices such as RPi Zero W is to configure them as web servers that return information about themselves via a REST service that you implement. A simple local HTML file can then display your device information as a single web page for your network and even determine which are online/offline.

Such a design would require you to become familiar with Raspberry Pi web servers (e.g., nodejs/express), REST data formats such as JSON, as well as familiarity coding in HTML/Javascript. The task becomes notably easier if you use established web user interface frameworks such as Vue.js or React. With such knowledge at hand, you could easily create a network status page in a day or two. Without such knowledge, the task would require time for learning, which would take considerably longer: i.e., RPi-Monitor might be more attractive.

To illustrate the challenges involved, see ipv4Candidates(), which returns all the candidate hosts on the local IPV4 network. Unfortunately, this code would only help you if you know how to use Javascript on a static HTML page.

OyaMist
  • 1,119
  • 6
  • 9
2

There is a possibility that I am currently working on something that you are interested in.

I am calling it 'PiMetric' and it is designed to carry out regular checks on hardware and software services as well as anything else in between. It runs on a Raspberry Pi, and it can easily check information from other Pi's (mine does).

Embarrassingly, it exists only as a very active project at home, but I have every intention to release it into the wild in about a month (wild estimate).

You can see a description of the project at what I hope will ultimately be it's home here. (Cue the gratuitous graphic).

enter image description here

At this stage I'm comfortable with the coding locally, but have never used GitHub to host a project, so I'm a bit hesitant. Sorry it's a bit vapor-ware in that respect, but let me know if this is the direction that you're trying to go.

d3noob
  • 1,926
  • 1
  • 15
  • 15