Systeminfos des Hostrechners als Measurements für Grafana

Welche Geräte sollen noch implementiert werden?
Was sollte man ändern / verbessern / ergänzen an der Solaranzeige? Hier kann Jeder seine Ideen einbringen.
Außerdem steht hier, woran gerade gerbeitet wird.

Moderator: Ulrich

Forumsregeln
Wenn neue Geräte implementiert werden sollen ist die Protokollbeschreibung der Schnittstelle vom Hersteller Voraussetzung.

Bitte nur konkrete Ideen hier eintragen und in jedem Beitrag bitte nur eine Erweiterung / Änderung, damit das Ganze noch überschaubar bleibt. Ein ganzes Sammelsorium von Ideen in einem Thread ist zu unübersichtlich. Nicht alles kann und wird auch verwirklicht werden.
EinsVonHeinz
Beiträge: 10
Registriert: Mi 7. Jun 2023, 08:12
Danksagung erhalten: 1 Mal

Systeminfos des Hostrechners als Measurements für Grafana

Beitrag von EinsVonHeinz »

Hallo,

ich weiß irgendwie nicht so genau, wo meine Frage / Idee / mein Wunsch genau hinpasst. Daher versuche ich es mal hier in der Wunschliste.
Ich habe einen Raspberry Pi 4 als headless Server, den ich versuchen möchte passiv gekühlt zu betreiben. Allerdings würde ich gerne die Temperatur überwachen, um einschätzen zu können, ob das gut klappt. Bevor ich jetzt versuche, irgendwelche Logs irgendwohin zu schreiben und irgendwie auszuwerten, hatte ich plötzlich den Einfall, dass man das ja auch mit solaranzeige und Grafana machen kann - genau dafür ist es ja perfekt.

Daher mein Vorschlag, ein Script (?) und die Aktivierungsmöglichkeit in der user.config.php vorzusehen, um das Loggen von Systeminformationen des Hostrechners zu ermöglichen. Die Logs sollten dann als Measurements in die Influx DB einfließen.

Neben der Temperatur könnten auch noch andere Werte von Interesse sein (CPU-Takt, Disk Usage, ...). Und man sollte wahrscheinlich das Intervall einstellen können, um nicht zu oft/selten zu loggen.

Leider habe ich noch kaum Erfahrung mit Solaranzeige, den Scripts oder Influx. Insofern bräuchte ich hierbei Hilfe.

Gäbe es denn Interesse an solch einem Modul innerhalb von Solaranzeige?

Benutzeravatar
mr.big
Beiträge: 495
Registriert: Mi 7. Sep 2022, 12:12
Wohnort: tief im Osten...
Hat sich bedankt: 13 Mal
Danksagung erhalten: 100 Mal

Re: Systeminfos des Hostrechners als Measurements für Grafana

Beitrag von mr.big »

Zum Thema "Temperatur" gibt es eine meiner Standardantworten. RTFM :lol:
Ausserdem auch gerade von Ullrich hier erklärt!

Mir persöhnlich reicht die Temperatur!

EinsVonHeinz
Beiträge: 10
Registriert: Mi 7. Jun 2023, 08:12
Danksagung erhalten: 1 Mal

Re: Systeminfos des Hostrechners als Measurements für Grafana

Beitrag von EinsVonHeinz »

Ah, danke. Das hatte ich nicht gesehen und die Suche hat mir zu Raspberry und Temperatur irgendwie nix gegeben.

So, nun habe ich ein opendtu_math.php erstellt und Ulrichs Beispiel reingepappt. Allerdings bekomme ich folgenden Fehler im php.log:

Code: Alles auswählen

Undefined index: zentralerTimestamp in /var/www/html/opendtu_math.php on line 11
.

Wird der erst später berechnet? Oder was mach ich falsch?

Benutzeravatar
Ulrich
Administrator
Beiträge: 5540
Registriert: Sa 7. Nov 2015, 10:33
Wohnort: Essen
Hat sich bedankt: 124 Mal
Danksagung erhalten: 835 Mal

Re: Systeminfos des Hostrechners als Measurements für Grafana

Beitrag von Ulrich »

In den neueren Scripten heißt der Timestamp etwas anders.

Bitte änder diese Zeile

Code: Alles auswählen

$aktuelleDaten["ZusatzQuery"] .= "   ".$aktuelleDaten["zentralerTimestamp"];
so ab

Code: Alles auswählen

$aktuelleDaten["ZusatzQuery"] .= "   ".($aktuelleDaten["Info"]["zentralerTimestamp"] + 10);
dann sollte es funktionieren.

Die Temperatur ist dann im Measurement "Info"
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]

EinsVonHeinz
Beiträge: 10
Registriert: Mi 7. Jun 2023, 08:12
Danksagung erhalten: 1 Mal

Re: Systeminfos des Hostrechners als Measurements für Grafana

Beitrag von EinsVonHeinz »

Ulrich hat geschrieben:
Di 20. Jun 2023, 18:01

Code: Alles auswählen

$aktuelleDaten["ZusatzQuery"] .= "   ".($aktuelleDaten["Info"]["zentralerTimestamp"] + 10);
Die Temperatur ist dann im Measurement "Info"
Ich glaube, meine Fehlermeldung war die Folge von anderen Fehlern früher im Skript. Nun scheint es zu klappen. Ich werde trotzdem die neue Struktur versuchen. Warum + 10 ?!?!
Ulrich hat geschrieben:
Di 20. Jun 2023, 18:01
Die Temperatur ist dann im Measurement "Info"
Temperatur oder Zeitstempel? Weil ich doch festlege, in welchem Measurement meine Zusatzdaten abgelegt werden, oder nicht?

EinsVonHeinz
Beiträge: 10
Registriert: Mi 7. Jun 2023, 08:12
Danksagung erhalten: 1 Mal

Re: Systeminfos des Hostrechners als Measurements für Grafana

Beitrag von EinsVonHeinz »

So, es scheint mit folgendem Script zu funktionieren - bekommt zwar keinen Schönheitspreis, aber das ist erstmal egal :):

Code: Alles auswählen

<?php

$clock0 = (float)shell_exec("sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq") / 1000.0 / 1000.0;
$clock1 = (float)shell_exec("sudo cat /sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_cur_freq") / 1000.0 / 1000.0;
$clock2 = (float)shell_exec("sudo cat /sys/devices/system/cpu/cpu2/cpufreq/cpuinfo_cur_freq") / 1000.0 / 1000.0;
$clock3 = (float)shell_exec("sudo cat /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_cur_freq") / 1000.0 / 1000.0;

$aktuelleDaten["ZusatzQuery"]  = "Service RaspiTemp=".round($RaspiTemp,1);
$aktuelleDaten["ZusatzQuery"] .= ",RaspiCpu0FreqGhz=".round($clock0,2);
$aktuelleDaten["ZusatzQuery"] .= ",RaspiCpu1FreqGhz=".round($clock1,2);
$aktuelleDaten["ZusatzQuery"] .= ",RaspiCpu2FreqGhz=".round($clock2,2);
$aktuelleDaten["ZusatzQuery"] .= ",RaspiCpu3FreqGhz=".round($clock3,2);
$aktuelleDaten["ZusatzQuery"] .= " ".($aktuelleDaten["Info"]["zentralerTimestamp"] + 10);
$aktuelleDaten["ZusatzQuery"] .= "\n";

//  Wenn der Wert auch in die LOG Datei geschrieben werden soll.
$funktionen->log_schreiben("Raspberry Temperatur: ".round($RaspiTemp,1)." °C",">  ",5);
$clockLog  = "Cpu Fequencies: ".round($clock0,2)."GHz";
$clockLog .= ", ".round($clock1,2)."GHz";
$clockLog .= ", ".round($clock2,2)."GHz";
$clockLog .= ", ".round($clock3,2)."GHz";
$funktionen->log_schreiben($clockLog,">  ",5);

?>

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste