Hi
Hier eine kleine Doku wie man Grafana Diagramme per Telegram versenden kann.
Ich habe von der kompletten Doku nichts selbst erfunden, sondern aus diversen Quellen zusammen kopiert.
Läuft auf Raspi4/4GB
Grundidee:
Grafana Diagramm als PNG rendern, lokal speichern und per Telegram versenden.
Fazit:
Läuft
*Telegram mit "eigener Tastatur" als Menüsteuerung
1. Grafana und ggf. influxdb installieren
Das ist hier schon perfekt beschrieben:
https://www.verdrahtet.info/2020/02/14/installation-von-influxdb-grafana-inkl-verbindung-zu-iobroker/
login: admin/admin
2. Diagramm als PNG rendern
Wenn man jetzt in Grafana versucht das Diagramm zu exportieren, stolpert man über das erste Problem:
Da PhantomJS nicht so einfach für ARM vorhanden ist, muss man also die render-Engine tauschen.
2.1 per SSH auf den raspi einloggen
https://www.heise.de/tipps-tricks/Raspberry-Pi-SSH-einrichten-so-geht-s-4190645.html
danach muss eine ganze Reihe an Befehlen ausgeführt werden.
sudo su
apt-get update
apt-get install git
cd /var/lib/grafana/plugins
git clone https://github.com/grafana/grafana-image-renderer
cd grafana-image-renderer
npm -g install yarn
npm -g install npm
npm -g install yarn
npm -g install typescript
npm config set unsafe-perm=true
npm i grpc
npm i husky
npm i puppeteer
npm i postinstall
npm i install
npm install
yarn install --pure-lockfile
yarn run build
cp plugin_start_linux_amd64 plugin_start_linux_arm
jetzt kann man endlich den chromium Browser installieren
sudo apt-get install chromium-browser
Danach kann man in der frisch kopierten Datei den Chromium hinterlegen.
/var/lib/grafana/plugins/grafana-image-renderer/plugin_start_linux_arm
nano plugin_start_linux_arm
und die rote Zeile einfügen
export GF_RENDERER_PLUGIN_CHROME_BIN="/usr/bin/chromium-browser"
EDIT: mittlerweile heißt der chromium browser wohl nur noch chromium.
daher muss man die Zeile in
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
export GF_RENDERER_PLUGIN_CHROME_BIN="/usr/bin/chromium"
node ${DIR}/build/app.js
ändern
Danach mit
[Strg] + [O] und [Strg] + [X]
speichern und beenden
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
export GF_RENDERER_PLUGIN_CHROME_BIN="/usr/bin/chromium-browser"
node ${DIR}/build/app.js
Fertig.
Jetzt noch neu starten
sudo systemctl restart grafana-server.service
und nach 30 Sekunden testen ob der service sauber gestartet wurde:
sudo systemctl status grafana-server.service
logs finden sich hier
/var/log/grafana
Am besten startet man den Raspi einmal neu.... keine Ahnung ob das nötig ist, unter "Windows95 gelernt" - funktioniert bis heute...
3. Diagram als PNG Bild exportieren (TEST)
Wenn es funktioniert --> gleich den Link kopieren
4. Bild per CURL und API Key speichern
https://mattionline.de/grafana-api-export-graph-as-png/#get-the-graph-url
Einfach in Grafana den API key generieren.
Danach wie von Matti beschrieben den CURL Befehl zusammenbasteln
curl -H "Authorization: Bearer eyJrIjoieDRzbjh6R1__APIKEY__joiZXhwb3J0IiwiaWQiOjF9" "http://192.168.2.132:3000/render/dashboard-solo/db/mathias?panelId=22&from=now-24h&to=now&width=1000&height=500" > ./home/pi/filename.png
rot = dein API key
grün = dein Verzeichnis der Wahl
5. Blockly Beispiel
In diesem Beispiel wird der EXEC Befehl mit dem CURL command abgesetzt und das Bild im Ordner
./home/pi/GrafanaExportTelegram gespeichert.
Danach wartet das Skript 7 Sekunden (die Generierung dauert ca 5 Sekunden auf dem Raspi4)
Danach wird im Telegram Blockly einfach der Pfad zur Datei als text eingetragen.
Hinweis:
- Auf die Rechte des Ordners achten, falls ihr einen neuen anlegt. (777)
- JavaScript Adapter muss ebenfalls den exec Befehl erlauben
Offene Punkte:
- Es kann sein, dass die Grafik gepuffert wird - dann muss man die Datei jeweils dynamisch benennen.
- Man sollte die PNGs wohl irgendwann auch wieder löschen
Vermutlich bekommt der eine oder andere Linux Halbgott einen Anfall, dass hier fast alles mit "sudo su" installiert wurde.
Falls dem so ist --> gerne die Doku verbessern, aber bitte keine Security-Triaden hier posten.
Viel Spaß damit.
Diese Funktion hat mir seit meinem Wechsel von FHEM immer gefehlt.
Wichtigste Quellen:
https://mattionline.de/grafana-api-export-graph-as-png/#get-the-graph-url
https://community.openhab.org/t/tutorial-grafana-rendering-on-raspberry-pi/71777/58
https://www.verdrahtet.info/2020/02/14/installation-von-influxdb-grafana-inkl-verbindung-zu-iobroker/