Autor Thema: Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)  (Gelesen 205245 mal)

Offline TWART016

  • Sr. Member
  • ****
  • Beiträge: 523
Antw:Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)
« Antwort #1425 am: 16 Juni 2017, 22:39:17 »
mach einfach mal am anderen Server df da siehst du dann, welche Dateisysteme gemounted sind. Die mit /dev/ am Zeilenanfang sind dann die, die sinnvollerweise vom SYSMON abgefragt werden sollten. Falls da nur eine einzige Partition im Einsatz ist wird dann auch nur die Zeile mit / am Ende vorhanden sein.
Zeilen mit udev oder tmpfs am Anfang sind eher uninteressant für SYSMOM.

Das kommt bei df
Dateisystem    1K-Blöcke Benutzt Verfügbar Verw% Eingehängt auf
udev             1004172       0   1004172    0% /dev
tmpfs             204836    6056    198780    3% /run
/dev/sda1       14317616 5222776   8344504   39% /
tmpfs            1024164       0   1024164    0% /dev/shm
tmpfs               5120       0      5120    0% /run/lock
tmpfs            1024164       0   1024164    0% /sys/fs/cgroup
tmpfs             204836       0    204836    0% /run/user/1000
Also ist nur /dev/sda1 interessant.

filesystems fs_root:/,fs_sda1:/dev/sda1 Aber auch dort erscheint nur not available

2017.06.16 22:37:12 5: SYSMON sysmon_FHEM: blockingFinish.1041 name|sysmon_FHEM|cpu_idle_stat|24.82 99.80 98.19|cpu0_temp|100.00|swap_used_stat|0.00 8.87 0.01|fhemuptime_text|0 days, 00 hours, 25 minutes|fs_root|Total: 13983 MB, Used: 5101 MB, 39 %, Available: 8149 MB at /|cpu1_temp|100.00|ens32_tx|27639868|idletime|8 0.19 %|ens32_speed|1000|cpu0_temp_avg|100.0|uptime_text|0 days, 01 hours, 17 minutes|starttime|1497640776|ram|Total: 2000.32 MB, Used: -1484.62 MB, -74.22 %, Free: 3192.70 MB|cpu1_temp_avg|100.0|stat_cpu_percent|0.73 0.00 0.50 98.75 0.00 0.00 0.03|cpu1_temp_stat|100.00 100.00 100.00|loadavg|0.05 0.03 0.00|ens32_ip|192.168.178.11|ens32|RX: 23.70 MB, TX: 26.36 MB, Total: 50.06 MB|fhemstarttime_text|16.06.2017 22:11:15|cpu_core_count|512|uptime|4656|fhemuptime|1557|idletime_text|0 days, 00 hours, 00 minutes (0.19 %)|ens32_diff|RX: 0.10 MB, TX: 0.08 MB, Total: 0.18 MB|stat_cpu|6749 53 2699 454887 79 0 144|swap|Total: 2046.00 MB, Used: 0.00 MB,  0.00 %, Free: 2046.00 MB|ens32_rx|24849379|fs_sda1|Total: 0 MB, Used: 0 MB, 0 %, Available: 0 MB at /dev/sda1 (not available)|ram_used_stat|-2728.20 -1023.36 -1485.91|cpu0_temp_stat|100.00 100.00 100.00|starttime_text|16.06.2017 21:19:36|stat_cpu_diff|22 0 15 2992 0 0 1|fhemstarttime|1497643875|stat_cpu_text|user: 0.73 %, nice: 0.00 %, sys: 0.50 %, idle: 98.75 %, io: 0.00 %, irq: 0.00 %, sirq: 0.03 %
 for /dev/sda1
2017.06.16 22:37:12 5: SYSMON sysmon_FHEM: getFileSystemInfo.2626 analyse line /dev/sda1          13983    5101      8149   39% /

2017.06.16 22:37:12 5: SYSMON sysmon_FHEM: getFileSystemInfo.2607 recieved line0 Dateisystem    1M-Blöcke Benutzt Verfügbar Verw% Eingehängt auf
2017.06.16 22:37:12 5: SYSMON sysmon_FHEM: getFileSystemInfo.2590 recieved 2 lines
'
';
$VAR2 = '/dev/sda1          13983    5101      8149   39% /
';
2017.06.16 22:37:12 5: SYSMON sysmon_FHEM: Exec_Local.4141 Result '$VAR1 = 'Dateisystem    1M-Blöcke Benutzt Verfügbar Verw% Eingehängt auf
2017.06.16 22:37:12 5: SYSMON sysmon_FHEM: Exec_Local.4136 Execute 'df /dev/sda1 -m 2>/dev/null'
2017.06.16 22:37:12 5: SYSMON sysmon_FHEM: getFileSystemInfo.2585 exec df /dev/sda1 -m 2>/dev/null
2017.06.16 22:37:12 5: SYSMON sysmon_FHEM: getFileSystemInfo.2574 get fs_sda1:/dev/sda1

Intel NUC, Raspberry Pi B+,CUL 433+868, Brennstuhl, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI

Offline SabineT

  • Full Member
  • ***
  • Beiträge: 167
Antw:Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)
« Antwort #1426 am: 16 Juni 2017, 23:02:59 »
Also ist nur /dev/sda1 interessant.

filesystems fs_root:/,fs_sda1:/dev/sda1 Aber auch dort erscheint nur not available
Dann darfst du auch nur
filesystems fs_root:/ verwenden!
/dev/sda1 ist ja das fs_root und an / gemounted.

Online Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 916
Antw:Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)
« Antwort #1427 am: 18 Juni 2017, 13:09:08 »
Dann gehen wir mal durch:
  • Hast Du ein Reading mit dem Eintrag loadavg <und dann drei Zahlen> 0.07 0.02 0.00? Wenn nein, dann wird es nicht erfasst. Die Erfassung wird über ein Attribut erfasst, event-on-update-reading
    cpu_temp,cpu_temp_avg,cpu_freq,wlan0_diff,loadavg,fs_.*,stat_cpu_percent
  • DbLog sollte das dann mitloggen, wenn es so definiert wurde: DEF ./db.conf (sysmon|Stromzaehler):.*
  • Zuletzt stellt sich die Frage der Anzeige. Da habe ich ja den Proxy dazwischen geschaltet. Ich hänge mal den Screenshot an, den ich erhalte, wenn ich zuerst DbLog aufrufe, dann unten die assoziierten wl_sysmon_load anklicke und dann die Grafik selbst sehe. Die lange Zeile, die im Screenshot nicht zu sehen ist, lautet
    DbLog:sysmon:loadavg:1:::$val=~s/[\d.]+\s([\d.]+)\s[\d.]+/$1/
    und sorgt dafür, dass nur der mittlere Eintrag abgebildet wird (das regeln die runden Klammern, die in der Mitte stehen).
     

Mir sind folgende Meldungen im Log aufgefallen:

2017.06.18 13:06:45 3: DbLog: Error in inline function: <:$val=~s/[\d.]+\s([\d.]+)\s[\d.]+/$1/>, Error: syntax error at (eval 37016) line 1, near ":"

2017.06.18 13:06:45 1: PERL WARNING: Argument "1.00 1.11 1.15" isn't numeric in sprintf at ./FHEM/98_SVG.pm line 2161.

Hast du die auch? Kann man die beheben?
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit

Offline TWART016

  • Sr. Member
  • ****
  • Beiträge: 523
Antw:Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)
« Antwort #1428 am: 18 Juni 2017, 13:57:45 »
Ich habe nun die Keys erstellt. Sie wurde auch erfolgreich in den home Ordner des Benutzers auf dem anderen Server kopiert. Der Key steht in der Datei authorized_keys.

Auch der Login mit ssh tim@192.168.178.12 funktioniert.

Ich habe wegen meiner Anfrage einen neuen Thread erstellt.
https://forum.fhem.de/index.php/topic,73321.msg649632.html#msg649632
Intel NUC, Raspberry Pi B+,CUL 433+868, Brennstuhl, Uniroll, LD382/LD686 + WifiLight, Eventghost, Tablet UI, Homekit, Alexa, Squeezebox, Onkyo, MAX, Harmony, KODI

Online andies

  • Sr. Member
  • ****
  • Beiträge: 716
Antw:Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)
« Antwort #1429 am: 18 Juni 2017, 15:04:56 »
Mir sind folgende Meldungen im Log aufgefallen:

2017.06.18 13:06:45 3: DbLog: Error in inline function: <:$val=~s/[\d.]+\s([\d.]+)\s[\d.]+/$1/>, Error: syntax error at (eval 37016) line 1, near ":"

2017.06.18 13:06:45 1: PERL WARNING: Argument "1.00 1.11 1.15" isn't numeric in sprintf at ./FHEM/98_SVG.pm line 2161.

Hast du die auch? Kann man die beheben?
Zur zweiten kann ich sofort was sagen, das ist kompliziert und wiederum einfach: https://forum.fhem.de/index.php/topic,71464.msg629919.html#msg629919

Die erste besagt, dass dein Regex falsch ist. Probiere mal hier: https://regex101.com/
FHEM 5.8 auf RaspPi3 (Raspbian jessie 4.9.35-v7+); Perl: v5.20.2
SIGNALduino (433 MHz) und miniCUL (868 MHz, derzeit noch ungenutzt)
mehrere Brennenstuhl-IT, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Openlink-Nachbau für Viessmann

Online Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 916
Antw:Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)
« Antwort #1430 am: 18 Juni 2017, 15:17:15 »
Zur zweiten kann ich sofort was sagen, das ist kompliziert und wiederum einfach: https://forum.fhem.de/index.php/topic,71464.msg629919.html#msg629919

Die erste besagt, dass dein Regex falsch ist. Probiere mal hier: https://regex101.com/

D.h. um den ersten Fehler zu umgehen, muss man lediglich

{if ($DEVICE eq "sysmon_pi" && $READING eq "loadavg"){$VALUE =~ s/\d+\.?\d*.(\d+\.?\d*).*/$1/e;}}
als Attribut valueFn in der DBLog setzen? Wie würde das denn für den "1min" Wert funktionieren? Ich verstehe den Ausdruck leider überhaupt nicht.  :-[


Meinst du mit Regex diesen Teil hier:

DBLog:sysmon:loadavg:1:::$val=~s/[\d.]+\s([\d.]+)\s[\d.]+/$1/
Da habe ich exakt deine GPlot Datei verwendet und nichts verändert.
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit

Online andies

  • Sr. Member
  • ****
  • Beiträge: 716
Antw:Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)
« Antwort #1431 am: 18 Juni 2017, 16:30:57 »
D.h. um den ersten Fehler zu umgehen, muss man lediglich

{if ($DEVICE eq "sysmon_pi" && $READING eq "loadavg"){$VALUE =~ s/\d+\.?\d*.(\d+\.?\d*).*/$1/e;}}
als Attribut valueFn in der DBLog setzen? Wie würde das denn für den "1min" Wert funktionieren? Ich verstehe den Ausdruck leider überhaupt nicht.  :-[
Ja, genau. Wenn Du allerdings ein update machst und die Datei verwendest, die FHEM bereitstellt, wird das sofort überschrieben. Zur Erläuterung:
{if ($DEVICE eq "sysmon_pi" && $READING eq "loadavg")Wenn man vom Gerät sysmon_pi und dessen Reading loadavg ausliest, dann übergebe den Wert dieses Readings ($VALUE) und substituiere (das zeigt das s in dem  Ausdruck)
s/eins/zwei/überall dort, wo "eins" steht durch "zwei. Nun besteht "eins" aus einem Regex, der ist so zu lesen: Zuerst eine Ziffer (\d), die dann aber (wegen des +) beliebig wiederholt werden kann, dann kommt ein Komma (das ist \.), dann kommt ein beliebiges Zeichen (glaube ich, das ist das Fragezeichen - hier wird das das Leerzeichen sein), danach wieder eine Ziffer  (\d beliebig oft wiederholt), ein Komma und noch eine Ziffer nach dem Komma. Weil die zweite Zahl in Klammern gesetzt ist, wird sie dem Ausdruck $1 zugewiesen. Die zweite Klammer würde dann $2 zugewiesen.

Am Ende ersetzt man die Ausgangsgröße einfach durch $1 und das wird dann ausgegeben. So habe ich mir das jedenfalls zusammengereimt, das war nicht von mir. Ich habe das irgendwo abgeschrieben und versucht nachzuvollziehen.

Die zweite Frage ist komplizierter, da muss irgendwo ein Schreibfehler sein. Ich schreibe mal meine Datei hier hin:
# Created by FHEM/98_SVG.pm, 2017-05-13 21:19:26
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Load'
set ytics
set y2tics
set grid y2tics
set ylabel ""
set y2label "Load average"

#lp DbLog:DbLog:sysmon:loadavg:1:::$val=~s/[\d.]+\s([\d.]+)\s[\d.]+/$1/
#lp ConstY:1

plot "<IN>" using 1:2 axes x1y1 title '1 min' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 notitle ls l2 lw 1 with lines
FHEM 5.8 auf RaspPi3 (Raspbian jessie 4.9.35-v7+); Perl: v5.20.2
SIGNALduino (433 MHz) und miniCUL (868 MHz, derzeit noch ungenutzt)
mehrere Brennenstuhl-IT, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Openlink-Nachbau für Viessmann

Online Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 916
Antw:Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)
« Antwort #1432 am: 19 Juni 2017, 12:20:02 »
Ja, genau. Wenn Du allerdings ein update machst und die Datei verwendest, die FHEM bereitstellt, wird das sofort überschrieben.

Dieser Fehler hat sich mit dem Eintrag gelöst.

Die zweite Frage ist komplizierter, da muss irgendwo ein Schreibfehler sein. Ich schreibe mal meine Datei hier hin:
# Created by FHEM/98_SVG.pm, 2017-05-13 21:19:26
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Load'
set ytics
set y2tics
set grid y2tics
set ylabel ""
set y2label "Load average"

#lp DbLog:DbLog:sysmon:loadavg:1:::$val=~s/[\d.]+\s([\d.]+)\s[\d.]+/$1/
#lp ConstY:1

plot "<IN>" using 1:2 axes x1y1 title '1 min' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 notitle ls l2 lw 1 with lines

Ich habe deinen Dateiinhalt nun kopiert und lediglich aus dem zweiten DbLog ein DBLog gemacht, weil es bei mir ja anders benannt ist:

# Created by FHEM/98_SVG.pm, 2017-05-13 21:19:26
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'Load'
set ytics
set y2tics
set grid y2tics
set ylabel ""
set y2label "Load average"

#lp DbLog:DBLog:sysmon:loadavg:1:::$val=~s/[\d.]+\s([\d.]+)\s[\d.]+/$1/
#lp ConstY:1

plot "<IN>" using 1:2 axes x1y1 title '1 min' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 notitle ls l2 lw 1 with lines

Der Fehler ist leider weiterhin vorhanden:

2017.06.19 12:18:37 3: DbLog: Error in inline function: <:$val=~s/[\d.]+\s([\d.]+)\s[\d.]+/$1/>, Error: syntax error at (eval 14889) line 1, near ":"
 :(
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit

Online andies

  • Sr. Member
  • ****
  • Beiträge: 716
Antw:Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)
« Antwort #1433 am: 19 Juni 2017, 12:36:00 »
Das hört sich sehr nach einem Sonderzeichenproblem (Codierung) an. Kannst du mal alles mit der Hand abschreiben, und gerade *nicht* kopieren? Manchmal steht da eine "falsche" Tilde ~, ein falsches Leerzeichen etc pp.


Gesendet von iPhone mit Tapatalk Pro
FHEM 5.8 auf RaspPi3 (Raspbian jessie 4.9.35-v7+); Perl: v5.20.2
SIGNALduino (433 MHz) und miniCUL (868 MHz, derzeit noch ungenutzt)
mehrere Brennenstuhl-IT, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Openlink-Nachbau für Viessmann

Online andies

  • Sr. Member
  • ****
  • Beiträge: 716
Antw:Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)
« Antwort #1434 am: 19 Juni 2017, 12:46:25 »
Oder irgendwas mit den Versionen ist falsch. D.h. update?


Gesendet von iPhone mit Tapatalk Pro
FHEM 5.8 auf RaspPi3 (Raspbian jessie 4.9.35-v7+); Perl: v5.20.2
SIGNALduino (433 MHz) und miniCUL (868 MHz, derzeit noch ungenutzt)
mehrere Brennenstuhl-IT, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Openlink-Nachbau für Viessmann

Online andies

  • Sr. Member
  • ****
  • Beiträge: 716
Antw:Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)
« Antwort #1435 am: 19 Juni 2017, 12:46:33 »
Oder irgendwas mit den Versionen ist falsch. D.h. update?


Gesendet von iPhone mit Tapatalk Pro
FHEM 5.8 auf RaspPi3 (Raspbian jessie 4.9.35-v7+); Perl: v5.20.2
SIGNALduino (433 MHz) und miniCUL (868 MHz, derzeit noch ungenutzt)
mehrere Brennenstuhl-IT, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Openlink-Nachbau für Viessmann

Offline SabineT

  • Full Member
  • ***
  • Beiträge: 167
Antw:Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)
« Antwort #1436 am: 19 Juni 2017, 18:11:51 »
Ich denke, in der Zeile:
#lp DbLog:DBLog:sysmon:loadavg:1:::$val=~s/[\d.]+\s([\d.]+)\s[\d.]+/$1/ist ein : zu viel drinnen. Probiers mal mit
#lp DbLog:DBLog:sysmon:loadavg:1::$val=~s/[\d.]+\s([\d.]+)\s[\d.]+/$1/Wenn ich mich nicht irre ist das Format:
lp DbLog:<myDb>:<myDevice>:<myReading>:<default>:<Func>:<Regex>

lg, Sabine

Online Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 916
Antw:Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)
« Antwort #1437 am: 19 Juni 2017, 22:10:38 »
Das hört sich sehr nach einem Sonderzeichenproblem (Codierung) an. Kannst du mal alles mit der Hand abschreiben, und gerade *nicht* kopieren? Manchmal steht da eine "falsche" Tilde ~, ein falsches Leerzeichen etc pp.

Ich habe es nun ab getippt und danach auch deine Datei aus dem vorherigen Post und lediglich aus dem zweiten DbLog ein DBLog gemacht, weil es bei mir ja anders benannt ist, leider ohne Erfolg.  ???

Ich denke, in der Zeile:
#lp DbLog:DBLog:sysmon:loadavg:1:::$val=~s/[\d.]+\s([\d.]+)\s[\d.]+/$1/ist ein : zu viel drinnen. Probiers mal mit
#lp DbLog:DBLog:sysmon:loadavg:1::$val=~s/[\d.]+\s([\d.]+)\s[\d.]+/$1/Wenn ich mich nicht irre ist das Format:
lp DbLog:<myDb>:<myDevice>:<myReading>:<default>:<Func>:<Regex>

Danke für deine Nachricht Sabine. Diese Änderung behebt zwar die Fehlermeldungen, erzeugt jedoch alle paar Sekunden einen Freeze von Fhem:

2017.06.19 22:06:29 1: Perfmon: possible freeze starting at 22:06:28, delay is 1.935
2017.06.19 22:06:34 1: Perfmon: possible freeze starting at 22:06:33, delay is 1.991
2017.06.19 22:06:44 1: Perfmon: possible freeze starting at 22:06:43, delay is 1.296

Ist nun tatsächlich ein Fehler im Code und liegt ein weiterer Fehler woanders oder stimmt irgendwas mit meiner Gplot Datei nicht?
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit

Online andies

  • Sr. Member
  • ****
  • Beiträge: 716
Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)
« Antwort #1438 am: 19 Juni 2017, 22:31:28 »
Ist FHEM aktuell (update)? Also hier ist irgend etwas grundsätzlich faul. Der Fehler liegt irgendwo, wo wir ihn gerade nicht suchen.


Gesendet von iPad mit Tapatalk Pro
FHEM 5.8 auf RaspPi3 (Raspbian jessie 4.9.35-v7+); Perl: v5.20.2
SIGNALduino (433 MHz) und miniCUL (868 MHz, derzeit noch ungenutzt)
mehrere Brennenstuhl-IT, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Openlink-Nachbau für Viessmann

Online Spezialtrick

  • Sr. Member
  • ****
  • Beiträge: 916
Antw:Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)
« Antwort #1439 am: 19 Juni 2017, 22:34:26 »
Ist FHEM aktuell (update)? Also hier ist irgend etwas grundsätzlich faul. Der Fehler liegt irgendwo, wo wir ihn gerade nicht suchen.

Mein letztes Update habe ich heute morgen gemacht.
FHEM - Cubietruck - Homematic - Sonos - MiLight -Homekit

 

decade-submarginal