Ein Modul zur Erfassen von diversen RPi/Linux-Statistiken (SYSMON)

Begonnen von hexenmeister, 06 Dezember 2013, 17:44:38

Vorheriges Thema - Nächstes Thema

StefanW

Hallo,

ich habe jetzt mal Sysmon für meinen Remote-RPi per telnet eingerichtet.
Das ganze funktioniert auch soweit ganz gut, nur bekomme ich keine Readings wie etwa fhemuptime, fhemuptime_text.
Sind dafür noch zusätzliche Definitionen notwendig, oder ist es vom Modul aus nicht vorgesehen, das von einem Remote System Readings kommen, was FHEM betrifft?

Gruß
Stefan

hexenmeister

FHEM-Uptime ist nur auf dem lokalen System verfügbar. Remote weiß SYSMON nicht, ob dort überhaupt eine FHEM-Server-Instanz läuft.

StefanW


heikoh81

Hallo zusammen,

wird von SYSMON das Tool awk verwendet?

Ich habe auf 4 unabhängigen Rapsi1B (die als IPCam laufen) das Problem, dass dort nach einigen Tagen die CPU-Last auf 95% geht - und die CPU-Temp. entsprechend steigt.

Prüfe ich mit top, ist es immer awk, welches die CPU auslastet.

Problem tritt erst auf, seit ichauf den 4 Raspis telnetd installiert habe, um  in FHEM mit SYSMON die CPU-Werte zu überwachen.


top - 10:43:45 up 1 day, 22:52,  1 user,  load average: 1.23, 1.29, 1.22
Tasks:  73 total,   2 running,  71 sleeping,   0 stopped,   0 zombie
%Cpu(s): 98.5 us,  1.2 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
KiB Mem:    380780 total,   207756 used,   173024 free,    42516 buffers
KiB Swap:   102396 total,        0 used,   102396 free,   119848 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND                                                                                       
29716 root      20   0  3800 2620 2440 R  96.1  0.7 854:30.63 awk


Viele Grüße,
Heiko

hexenmeister

Nein, SYSMON verwendet awk nicht. Es sei denn, der Benutzer richtet sich userReadings und so in der Art ein.
Schau doch mal, welche Parent-Prozess awk gestartet hat. Evtl. ist das gar nicht FHEM.

Tom111

Hallo hexenmeister,
wäre nett wenn du den Fehler mal eliminieren könntest, der schon seit einiger Zeit im Log auftaucht :
Subroutine SYSMON_secsToReadable redefined at ./FHEM/42_SYSMON.pm line 4649.

Zitathttp://forum.fhem.de/index.php/topic,37844.0.html
http://forum.fhem.de/index.php/topic,37838.0.html

Danke!
FHEM 5.9 auf Raspberry Pi - 3B+ - Stretch-5.10.88+ | CUL868 CC1101 - USB - Lite module - V3 FW 1.67
Fritz!Box 7490 OS 07.29 / Fritz!Dect200 / Fritz!Powerline 546E
FS20ST-4/ FS20 DI-5/ FS20LS/ FS20 PIRI-2-KU/ FS20 TFK/ FS20S4A/FS20 SU-3/FS20 S20-3
HMS100TF/FHT80TF-2/ASH2200/S300TH/MiLight-Bridge V

heikoh81

Zitat von: hexenmeister am 07 Juni 2015, 13:12:46
Nein, SYSMON verwendet awk nicht. Es sei denn, der Benutzer richtet sich userReadings und so in der Art ein.
Schau doch mal, welche Parent-Prozess awk gestartet hat. Evtl. ist das gar nicht FHEM.

Danke für deine Antwort.
Ich verwende folgendes attr user-defined:

temperatur_heiko:5:Raspberry CPU Temperatur mittels Systembefehl:vcgencmd measure_temp

hexenmeister

Zitat von: Tom111 am 07 Juni 2015, 14:27:46
wäre nett wenn du den Fehler mal eliminieren könntest, der schon seit einiger Zeit im Log auftaucht :
Hm. Copy-Paste Fehler. Ist jedoch nicht weiter problematisch.
Werde ich rausnehmen.

hexenmeister

Zitat von: heikoh81 am 07 Juni 2015, 14:33:35
Ich verwende folgendes attr user-defined:
Was vcgencmd intern so alles verwendet, weiß ich nicht. Was war Parent-Process?

forum-merlin

Hi Alexander,

heute habe ich auf meinem Test_Pi mal dein SYSMON Modul ausprobiert und eingerichtet so wie Du es im ersten Post beschrieben hast.
Dabei habe ich auch diese Beispiel definitionen und attribute benutzt.
Nur den Raum habe ich auf meine Bedürfnisse angepasst.

Leider sehe ich da in den Plots etwas komisches in der Label Zeile und weiss nicht wie ich es korrigieren muss.

Wo muss ich hier schauen?
Ich habe mal zwei Screenshots angehängt.

Ich denke irgendwo im .gplot is was falsch, aber ich habe es auch schon probiert anzupassen, aber es hatte keine Auswirkung.
ich habe im .gplot mal sys anstatt system versucht, und auch die anderen Variablen die hier verwendet wurden habe ich versucht so anzupassen. Nur eben ohne Erfolg.

Danke Dir

Gruß

Holger
FHEM 5.8 auf RasPi3; CULv3-868; RFXtrx433; HM-Sec-SC-2; HM-CFG-LAN; HM-LC-Bl1-FM; HM-CC-RT-DN; HM-ES-PMSw1-Pl; HM-LC-Sw4-DR; Hunter Ventile; 8ch Relais; ENIGMA2; ONKYO_AVR; SONOS; Harmony; telegram; HM-PB-6-WM55; GPIO; HM-Sen-MDIR-O; HM-SEC-SD; HM-LC-Dim1L-Pl-3;

willybauss

Die Label-Zeile wird über ein Attribut in der fhem.cfg gesteuert. Die Zeile beginnt z.B. mit
attr wl_sysmon_temp label ...
Dort solltest Du auf jeden Fall mal rein schauen.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

forum-merlin

Hallo Willy.
Ich habe das schon gesehen. Aber ich weiß nicht wie das korrigiert werden muss. Deswegen habe ich ja die Screenshots angehängt und die Pfeile mit den Sachen die scheinbar nicht zum gplot File passen

sent from my Samsung Galaxy S6 via Tapatalk App

FHEM 5.8 auf RasPi3; CULv3-868; RFXtrx433; HM-Sec-SC-2; HM-CFG-LAN; HM-LC-Bl1-FM; HM-CC-RT-DN; HM-ES-PMSw1-Pl; HM-LC-Sw4-DR; Hunter Ventile; 8ch Relais; ENIGMA2; ONKYO_AVR; SONOS; Harmony; telegram; HM-PB-6-WM55; GPIO; HM-Sen-MDIR-O; HM-SEC-SD; HM-LC-Dim1L-Pl-3;

hexenmeister

Hallo Holger,

wie schon gesagt, wird der Überschrift durch das Laben-Attribut bestimmt.
Wenn ich richtig liege, sollte in Deiner Definition etwas in der Art zu finden sein:
attr wl_sysmon_cpustat label "CPU(min/max): user:$data{min1}/$data{max1} nice:$data{min2}/$data{max2} sys:$data{min3}/$data{max3} idle:$data{min4}/$data{max4} io:$data{min5}/$data{max5} irq:$data{min6}/$data{max6} sirq:$data{min7}/$data{max7}"
Undef bedeutet, dass keine Daten verfügbar waren. Wenn Du das Ganze gerade erst angelegt hast, ist das auch normal (war einfach noch nicht genug geschrieben). Hat sich das Problem mittlerweile von alleine erledigt?

Grüße,

Alexander

forum-merlin

Leider hat es nich nicht von alleine aufgelöst.

Hier erstmal aus der fhem.cfg der interessante Bereich

(aus dem ersten Post bzw. auch so in der commandref >>  (sorry, musste den CODE Bereich entfernen, sonst ist das highlighting nicht sichtbar.))
##########################################################################################
# Anzeige CPU Auslasung
define wl_sysmon_cpustat SVG FileLog_sysmon:SM_CPUStat:CURRENT
attr wl_sysmon_cpustat group RPi
attr wl_sysmon_cpustat label "CPU(min/max): user:$data{min1}/$data{max1} nice:$data{min2}/$data{max2} sys:$data{min3}/$data{max3} idle:$data{min4}/$data{max4} iow:$data{min5}/$data{max5} irq:$data{min6}/$data{max6} sirq:$data{min7}/$data{max7}"
attr wl_sysmon_cpustat plotsize 840,420
attr wl_sysmon_cpustat room 9.1.2_Sysmon

define wl_sysmon_cpustat_s SVG FileLog_sysmon:SM_CPUStatSum:CURRENT
attr wl_sysmon_cpustat_s group RPi
attr wl_sysmon_cpustat_s label "CPU(min/max): user:$data{min1}/$data{max1} nice:$data{min2}/$data{max2} sys:$data{min3}/$data{max3} idle:$data{min4}/$data{max4} iow:$data{min5}/$data{max5} irq:$data{min6}/$data{max6} sirq:$data{min7}/$data{max7}"
attr wl_sysmon_cpustat_s plotsize 840,420
attr wl_sysmon_cpustat_s room 9.1.2_Sysmon
##########################################################################################




und hier das "SM_CPUStat.gplot" File. (sorry, musste den CODE Bereich entfernen, sonst ist das rote highlighting nicht sichtbar.)
##########################################################################################
# SYSMON
#
# Anzeige: system cpu auslastung
#
# Daten: user nice system idle iowait irq softirq
# Beispiel aus dem Logfile:
# 2014-01-23_23:37:59 sysmon stat_cpu_percent: 32.17 0.00 18.53 37.72 0.15 0.04 11.38
#
#

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 ytics
set yrange [0:100]
set y2range [0:100]

set title '<L1>'
set grid xtics y2tics

set y2label "Auslastung %"

#FileLog 4:stat_cpu_percent:0:$fld[3]
#FileLog 5:stat_cpu_percent:0:$fld[4]
#FileLog 6:stat_cpu_percent:0:$fld[5]
#FileLog 7:stat_cpu_percent:0:$fld[6]
#FileLog 8:stat_cpu_percent:0:$fld[7]
#FileLog 9:stat_cpu_percent:0:$fld[8]
#FileLog 10:stat_cpu_percent:0:$fld[9]

plot \
  "< awk '/load avg:/ {print $1, $4}' <IN>" \
   using 1:2 ls l0 axes x1y1 title 'user' lw 1.5 with lines \
  "< awk '/load avg5:/ {print $1, $4}' <IN>" \
   using 1:2 ls l1 axes x1y1 title 'nice' lw 1.5 with lines \
  "< awk '/load avg15:/ {print $1, $4}' <IN>" \
   using 1:2 ls l2 axes x1y1 title 'system' lw 1.5 with lines
  "< awk '/load avg15:/ {print $1, $4}' <IN>" \
   using 1:2 ls l3 axes x1y1 title 'idle' lw 1.5 with lines
   "< awk '/load avg15:/ {print $1, $4}' <IN>" \
   using 1:2 ls l4 axes x1y1 title 'iowait' lw 1.5 with lines
   "< awk '/load avg15:/ {print $1, $4}' <IN>" \
   using 1:2 ls l5 axes x1y1 title 'irq' lw 1.5 with lines
   "< awk '/load avg15:/ {print $1, $4}' <IN>" \
   using 1:2 ls l6 axes x1y1 title 'softirq' lw 1.5 with lines
##########################################################################################

Eine Auffälligkeit habe ich aber entdeckt.
Wenn ich reinzoome, oder rauszoome verändert sich das Verhalten des Labels.
ich habe dazu mal Screenshots angehängt. Achtet auf die roten eingekastelten Bereiche.

Außerdem habe ich gesehen, dass sich das gplot file in den Bezeichnungen unterschiedlich zu der definition des label attributes aus der commandref und des ersten Posts verhält.
Das habe ich mal rot hervorgehoben. Ich weiss aber nicht, ob das wichtig ist.



Im Übrigen... (hat jetzt aber nichts mit meinem Fall hier zutun... Irgendwer hatte gefragt ob hier awk verwendet wird, er habe eine hohe auslastung durch awk. siehe gplot file)


Beste Grüße

Holger
FHEM 5.8 auf RasPi3; CULv3-868; RFXtrx433; HM-Sec-SC-2; HM-CFG-LAN; HM-LC-Bl1-FM; HM-CC-RT-DN; HM-ES-PMSw1-Pl; HM-LC-Sw4-DR; Hunter Ventile; 8ch Relais; ENIGMA2; ONKYO_AVR; SONOS; Harmony; telegram; HM-PB-6-WM55; GPIO; HM-Sen-MDIR-O; HM-SEC-SD; HM-LC-Dim1L-Pl-3;

hexenmeister

Die Graphik ist leer, also keine Daten vorhanden, daher auch keine Labels.
Das bedeutet, das im Log keine Daten zu der Reading 'stat_cpu_percent' vorhanden sind.
Es kann sein, dass diese Reading in SYSMON-Definition von Aktualisierung ausgeschlossen wurde (z.B in event-on-update-reading).
Es kann sein, dass auf Deinem System 'cat /proc/stat' nicht das erwartete liefert.
Es sollte in etwa so aussehen:
~ $ cat /proc/stat
cpu  5721609 37152 1593273 76459177 495449 3524 936448 0 0 0
cpu0 2009515 17189 745805 37186352 329184 3484 910944 0 0 0
cpu1 3712093 19962 847467 39272825 166265 39 25503 0 0 0
intr 1034851387 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 112382163 0 0 0 5 0 1205 0 0 0 8950970 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 21 0 0 0 21572 0 0 0 0 2129263 0 0 416 0 0 0 818630537 0 0 0 0 43601489 0 0 21799446 0 0 0 0 0 0 0 0 608721 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9631236 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 230492685
btime 1434401546
processes 379231
procs_running 1
procs_blocked 0
softirq 89520970 0 36578300 87203 10113427 604483 0 2118781 17734473 196157 22088146


Mit den title-Definitionen im Plot-Datei haben Diagram-Labels nichts zu tun.

Grüße,

Alexander