Monitoring RaspiBlitz with Telegraf
telegraf is a metric collection tool by influxData. It is opensource and can push performance data of RaspiBlitz to an external influxDB server which then can be used as a datasource for the GrafanaWebUI to monitor RaspiBlitz in a Dashboard like this:
InfluxDB & Grafana should run on separate hardware - you might use an old RaspberryPi4 for that and take a look here for a nice dockerized installation of influxDB and Grafana.
Prepare your InfluxDB for RaspiBlitz
Before you can start Teelegraf on RaspiBlitz you need to prepare a InfluxDB database for RaspiBlitz and create a user with password. So on your InfluxDB/Grafana machine follow the steps:
Start the InfluxDB shell:
influx
If you havent yet create an admin
user:
CREATE USER "admin" WITH PASSWORD '[ADMIN-PASSWORD]' WITH ALL PRIVILEGES;
Create database & user:
CREATE DATABASE raspiblitz;
SHOW DATABASES;
CREATE USER "raspiblitz" WITH PASSWORD '[RASPIBLITZ-PASSWORD]';
GRANT ALL ON raspiblitz TO raspiblitz;
If you havent yet create a read-only user for Grafana:
CREATE USER "grafana" WITH PASSWORD '[GRAFANA-PASSWORD]';
GRANT READ ON raspiblitz TO grafana;
To check if all is ready:
SHOW DATABASES;
SHOW USERS;
You should see a database called raspiblitz
and at least three users admin, raspiblitz & grafana
.
You can now exit the InfluxDB with:
exit
Make yure that the InfluxDB configuration file contains the the [http]
section:
auth-enabled = true
On our Grafana/InfluxDB machine the config could be edited with:
sudo nano /etc/influxdb/influxdb.conf
Save the file (Ctrl+O, Enter) and exit (Ctrl+X).
You my need to restart the InfluxDB server:
sudo systemctl restart influxdb
Activate Telegraf on RaspiBlitz
Back on your RaspiBlitz you can switch Telegraf service on under SSH-MAINMENU > SETTINGS > Telegraf
.
Enter the connection details the script asks you for.
If you want to improve the service as a programmer you find the install script here /home/admin/config.scripts/bonus.telegraf.sh
Check Incoming Data on Grafana/InfluxDB server
If install on the RaspiBlitz went thru OK you can go back to your Grafana/InfluxDB server and see if it received some basic CPU data:
influx -username admin -password '[ADMIN-PASSWORD]'
USE raspiblitz;
SHOW MEASUREMENTS;
If data is being written successfully, you should see measurements like cpu, mem, disk, etc.
SELECT * FROM cpu LIMIT 5;
This should display the first five entries from the cpu measurement. If you see that data you can close the influxDB shell with:
exit
Add Grafana Datasource
Now configure Grafana to use the InfluxDB Data Source.
Log In to Grafana. Use your Grafana credentials.
- Click on the Configuration (gear icon) in the left sidebar.
- Click on Data Sources.
- Click Add data source and select InfluxDB.
Configure the InfluxDB Data Source:
HTTP:
URL: http://localhost:8086
Auth:
Leave default unless specific settings are needed.
InfluxDB Details:
Database: raspiblitz
User: grafana
Password: [GRAFANA-PASSWORD]
HTTP Method: POST (recommended)
Click the Save & Test button to verify the connection.Now
We need the datasource UID for later - to get it:
- Click on Data Sources.
- Click on the new created InfluxDB data source.
Find the UID:
In the URL of your browser, you should see something like this:
http://<your_vm_ip>:3000/datasources/edit/<data_source_uid>
The part after /edit/
is the UID for your data source. It will be a unique identifier like cOZgpReMk
We will need your personal datasource UID in the next step.
Create Grafana Dashboard
Open the json data for the Dashboard in a new browser tab - following this link: https://raw.githubusercontent.com/raspiblitz/raspiblitz/refs/heads/dev/home.admin/assets/telegraf/raspiblitz-grafana-dashboard.json
Copy all JSON data (to paste it later).
In your Grafana WebUI: Click on “+” → “Import”.
Now paste the JSON data from above into the field
BUT BEFORE YOU SAVE
replace ALL InfluxDB UIDs in that json with your personal one.