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

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

Vorheriges Thema - Nächstes Thema

hexenmeister

@DJAlex
Bitte Stückchen von Log posten und auch die komplette Definition von Sysmon-Instanz und der SVG-Definition!

So kann ich leider nichts erkennen.

Grüße,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

DJAlex

Hier ein Auszug aus dem Logfile:
"
2014-04-03_14:32:22 sysmon ram: Total: 437.68 MB, Used: 121.39 MB, 27.74 %, Free: 316.29 MB
2014-04-03_14:33:22 sysmon cpu_freq: 700
2014-04-03_14:33:22 sysmon eth0_diff: RX: 0.01 MB, TX: 0.01 MB, Total: 0.02 MB
2014-04-03_14:33:22 sysmon cpu_temp_avg: 40.8
2014-04-03_14:33:22 sysmon cpu_temp: 40.62
2014-04-03_14:33:22 sysmon loadavg: 0.16 0.05 0.06
2014-04-03_14:33:22 sysmon ram: Total: 437.68 MB, Used: 121.38 MB, 27.73 %, Free: 316.30 MB
2014-04-03_14:34:22 sysmon cpu_freq: 700
2014-04-03_14:34:22 sysmon eth0_diff: RX: 0.02 MB, TX: 0.02 MB, Total: 0.04 MB
2014-04-03_14:34:22 sysmon cpu_temp_avg: 40.9
2014-04-03_14:34:22 sysmon cpu_temp: 41.16
2014-04-03_14:34:22 sysmon loadavg: 0.09 0.06 0.06
2014-04-03_14:34:22 sysmon ram: Total: 437.68 MB, Used: 121.36 MB, 27.73 %, Free: 316.32 MB
2014-04-03_14:35:24 sysmon cpu_freq: 700
2014-04-03_14:35:24 sysmon eth0_diff: RX: 0.09 MB, TX: 0.15 MB, Total: 0.24 MB
2014-04-03_14:35:24 sysmon cpu_temp_avg: 41.2
2014-04-03_14:35:24 sysmon cpu_temp: 42.24
2014-04-03_14:35:24 sysmon loadavg: 0.49 0.18 0.10
2014-04-03_14:35:24 sysmon ram: Total: 437.68 MB, Used: 121.70 MB, 27.81 %, Free: 315.98 MB
2014-04-03_14:36:24 sysmon cpu_freq: 700
2014-04-03_14:36:24 sysmon eth0_diff: RX: 0.01 MB, TX: 0.02 MB, Total: 0.03 MB
2014-04-03_14:36:24 sysmon cpu_temp_avg: 41.2
2014-04-03_14:36:24 sysmon cpu_temp: 41.16
2014-04-03_14:36:24 sysmon loadavg: 0.18 0.15 0.09
2014-04-03_14:36:24 sysmon ram: Total: 437.68 MB, Used: 121.67 MB, 27.80 %, Free: 316.01 MB
"

Hier die aus der cfg:
################################################################################
##Messsystem

# Modul-Definition

define sysmon SYSMON 1 1 1 10
attr sysmon event-on-update-reading cpu_temp,cpu_temp_avg,cpu_freq,eth0_diff,loadavg,ram,^~ /.*usb.*,~ /$
attr sysmon filesystems fs_boot:/boot,fs_root:/:Root,fs_usb1:/media/usb1:USB-Stick
attr sysmon group RPi
attr sysmon network-interfaces eth0:eth0:Ethernet,wlan0:wlan0:WiFi
attr sysmon room Messsystem

# Log
define FileLog_sysmon FileLog ./log/sysmon-%Y-%m.log sysmon
attr FileLog_sysmon group RPi
attr FileLog_sysmon logtype SM_CPUTemp:Plot,text
attr FileLog_sysmon room Messsystem

# Visualisierung: CPU-Temperatur
define wl_sysmon_temp SVG FileLog_sysmon:SM_CPUTemp:CURRENT
attr wl_sysmon_temp group RPi
attr wl_sysmon_temp label "CPU Temperatur: Min $data{min2}, Max $data{max2}, Last $data{currval2}"
attr wl_sysmon_temp room Messsystem

# Visualisierung: Netzwerk-Datenübertragung fü eth0
define wl_sysmon_eth0 SVG FileLog_sysmon:SM_Network_eth0:CURRENT
attr wl_sysmon_eth0 group RPi
attr wl_sysmon_eth0 label "Netzwerk-Traffic eth0: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
attr wl_sysmon_eth0 room Messsystem

# Visualisierung: Netzwerk-Datenübertragung fü wlan0
#define wl_sysmon_wlan0 SVG FileLog_sysmon:SM_Network_wlan0:CURRENT
##attr wl_sysmon_wlan0 group RPi
#attr wl_sysmon_wlan0 label "Netzwerk-Traffic wlan0: $data{min1}, Max: $data{max1}, Aktuell: #$data{currval1}"
#attr wl_sysmon_wlan0 room Messsystem

# Visualisierung: CPU-Auslastung (load average)
define wl_sysmon_load SVG FileLog_sysmon:SM_Load:CURRENT
attr wl_sysmon_load group RPi
attr wl_sysmon_load label "Load Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
attr wl_sysmon_load room Messsystem

# Visualisierung: RAM-Nutzung
define wl_sysmon_ram SVG FileLog_sysmon:SM_RAM:CURRENT
attr wl_sysmon_ram group RPi
attr wl_sysmon_ram label "RAM-Nutzung Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"
attr wl_sysmon_ram room Messsystem

# Visualisierung: Dateisystem: Root-Partition
define wl_sysmon_fs_root SVG FileLog_sysmon:SM_FS_root:CURRENT
attr wl_sysmon_fs_root group RPi
attr wl_sysmon_fs_root label "Root Partition Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"
attr wl_sysmon_fs_root room Messsystem

# Visualisierung: Dateisystem: USB-Stick
define wl_sysmon_fs_usb1 SVG FileLog_sysmon:SM_FS_usb1:CURRENT
attr wl_sysmon_fs_usb1 group RPi
attr wl_sysmon_fs_usb1 label "USB1 Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"
attr wl_sysmon_fs_usb1 room Messsystem

# Anzeige der Readings zum Einbinden in ein 'Raum'.
define SysValues weblink htmlCode {SYSMON_ShowValuesHTML('sysmon')}
attr SysValues group RPi
attr SysValues room Messsystem

# 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} io:$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 Messsystem
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} io:$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 Messsystem


Die SVG:

an der hab ich nix geändert.
Ich hab diese Plotfiles drauf sind aber alles Standard Files kann mich nicht erinnern das ich die händisch nachinstaliert hätte.

SM_CPUStat.gplot
SM_CPUStatSum.gplot
SM_CPUStatTotal.gplot
SM_CPUTemp.gplot
SM_DB_CPUFreq.gplot
SM_DB_CPUTemp.gplot
SM_DB_Load.gplot
SM_DB_Network_eth0.gplot
SM_DB_RAM.gplot
SM_DB_all.gplot
SM_FS_root.gplot
SM_FS_usb1.gplot
SM_Load.gplot
SM_Network_eth0.gplot
SM_Network_eth0t.gplot
SM_RAM.gplot

von welcher brauchst du einen Auszug?

Danke schon mal.

hexenmeister

Klar. Die CPU-Daten belegen eine Menge Platz im log, daher werden sie in dem Beispiel ausgefiltert.
Nimm stat_cpu_percent in dem Attribut event-on-update-reading mit auf.
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

siggi85

Ist es noch in Planung in Zukunft auch remote-Systeme mit anzubinden wie im SYSSTAT Modul? Du hattest damals ja nichts versprochen, aber ich wollte noch mal nach fragen. :)
Falls nicht ist das ok, wäre aber nice da ich mehrere Pis im Einsatz habe.

Joachim

ZitatIst es noch in Planung in Zukunft auch remote-Systeme mit anzubinden wie im SYSSTAT Modul?
Wenn auf dem Remote-Rechner FHEM läuft, dann FHEM2FHEM und cloneDummy
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

hexenmeister

#305
ZitatWenn auf dem Remote-Rechner FHEM läuft, dann FHEM2FHEM und cloneDummy
So mache ich das selbst auch. Geht sehr gut.
Ob ich noch nativ diede Unterstützung einbauen werde, kann ich noch nicht sagen. Grundsätzlich gern, aber gerade zu viele Baustellen und zu wenig Zeit :(
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

siggi85

Zitat von: Joachim am 03 April 2014, 20:27:51
Wenn auf dem Remote-Rechner FHEM läuft, dann FHEM2FHEM und cloneDummy

Das war auch meine erste Idee, aber zB bei openELEC kann man FHEM meines Wissens nach nicht installieren. Na mal schauen was die Zukunft so bringt. :)

DJAlex


MarcoR

#308
Hallo Alle Miteinander,

seit ich das sysmon Modul auf meinem Openwrt nutze bekomme bekomme ich davon Meldungen im syslog.
->user.info sysinit: Use of uninitialized value $cached in division (/) at /usr/lib/fhem/FHEM/42_SYSMON.pm line 926.

Ist es möglich, das es daran liegt, das mein System kein Swap hat ?

Wenn nein kann ich gerne noch mehr Input liefern ...

Gruß
Marco

Edit: Auszug von Sysmon noch angehängt ....

hexenmeister

Zitat von: MarcoR am 07 April 2014, 13:15:28
seit ich das sysmon Modul auf meinem Openwrt nutze bekomme bekomme ich davon Meldungen im syslog.
->user.info sysinit: Use of uninitialized value $cached in division (/) at /usr/lib/fhem/FHEM/42_SYSMON.pm line 926.

Ist es möglich, das es daran liegt, das mein System kein Swap hat ?

Kann sein, das Du eine (ur)alte Version hast? Das hatten wir doch schon...
Probiere nach dem update.

Grüße,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

MarcoR

Hallo Alexander,

supi, das wars. Das sysmon-Modul hatte ich heute schon mal geupdated. Da war der Fehler noch da, jetzt nach ein Komplett update des Fhems und dem neustart ist es weg ... grmmel, da hät ich auch selbst drauf kommen können.
Danke für deine Hilfe.

Gruß
Marco

tupol

Hallo lieber SYSMON Autor,

wäre es möglich für die Fritzbox ein Reading einzubauen, das mir sagt, ob WLAN an oder aus ist. Der Befehl heißt "ctlmgr_ctl r wlan settings/ap_enabled" und gibt 1 bei "WLAN on" zurück.

hexenmeister

na wenn man so nett gefragt wird und die halbe Arbeit schon getan ist (Befehl-String herausgefunden)... ;)

Bitte die angehängte Datei testen, wenn es gut funktioniert, werde ich die Version einchecken (dann kommt per Update).

Grüße,

Alexander
Maintainer: MQTT_GENERIC_BRIDGE, SYSMON, SMARTMON, systemd_watchdog, MQTT, MQTT_DEVICE, MQTT_BRIDGE
Contrib: dev_proxy

tupol

Funktioniert auf der FB7390 super :-)
Der FB-Code stammt übrigens von Dragonfly http://forum.fhem.de/index.php?topic=11801.0

Im Event-Monitor habe ich aber noch folgendes gefunden:
2014-04-23 07:51:46 SYSMON FBStatus io_mtdblock3_raw: 10 0 80 8 0 0 0 0 0 8 8
2014-04-23 07:51:46 SYSMON FBStatus io_mtdblock2_raw: 9 0 72 4 0 0 0 0 0 4 4
2014-04-23 07:51:46 SYSMON FBStatus io_sda1_raw: 464668 936736 10360046 2786016 2901827 20431692 186668152 117746400 0 10926040 120528148
2014-04-23 07:51:46 SYSMON FBStatus io_mtdblock4_raw: 10 0 80 4 0 0 0 0 0 4 4
2014-04-23 07:51:46 SYSMON FBStatus io_mtdblock0_raw: 99061 1739174 3676470 323084 0 0 0 0 0 306660 322456
2014-04-23 07:51:46 SYSMON FBStatus io_mtdblock6_raw: 104 0 832 72 0 0 0 0 0 72 72
2014-04-23 07:51:46 SYSMON FBStatus io_mtdblock5_raw: 19 0 152 8 0 0 0 0 0 8 8
2014-04-23 07:51:46 SYSMON FBStatus io_mtdblock1_raw: 10 70 80 4 0 0 0 0 0 4 4

Ist das Absicht?

Da die Büchse der Pandora nun schon offen ist ;-)
Mit `ctlmgr_ctl r wlan settings/guest_ap_enabled` erhält man den Status des Gäste WLANs.

Nett wäre auch die Firmware-Version mit Datum: `/etc/version --version --date`
Die erhält aber auch zusammen mit dem HW-Type (ProductID) in der Datei /var/env oder /proc/sys/urlader/environment. Anzeigbar mit dem Befehl: `cat /proc/sys/urlader/environment`
Dort findest Du auch noch diverse andere "fehlende" Wert:
HWRevision      156
HWSubRevision   3
ProductID       Fritz_Box_7390
SerialNumber    0000000000000000
annex   B
autoload        yes
bootloaderVersion       1.819
bootserport     tty0
cpufrequency    500000000
firstfreeaddress        0x810D952C
firmware_version        avm
firmware_info   84.06.03
flashsize       0x01000000
maca    ...
macb    ...
macwlan ...
macwlan2        ...
macdsl  ...
memsize 0x08000000
modetty0        38400,n,8,1,hw
modetty1        38400,n,8,1,hw
modulemem       6000144
mtd0    0x9F000000,0x9F000000
mtd1    0x9F020000,0x9FF00000
mtd2    0x9F000000,0x9F020000
mtd3    0x9FF00000,0x9FF80000
mtd4    0x9FF80000,0xA0000000
my_ipaddress    ...
prompt  Eva_AVM
req_fullrate_freq       166666666
sysfrequency    166666666
urlader-version 1819
usb_board_mac   ...
usb_rndis_mac   ...
usb_device_id   0x0000
usb_revision_id 0x0000
usb_device_name USB DSL Device
usb_manufacturer_name   AVM
wlan_key        ...


Ich weiß nicht, ob das in Dein Modulkonzept paßt, aber mit `ctlmgr_ctl w wlan settings/ap_enabled 1` oder `ctlmgr_ctl w wlan settings/ap_enabled 0` kann man WLAN an- oder ausschalten. Gäste-WLAN dann mit guest_ap_enabled.
Wäre schön, wenn ich das aus meiner cfg rausschmeissen könnte. ;-)

Vielen Dank noch mal für die gestrige superschnelle Reaktion.
Gruß
Tupol

PS: Hast Du schon mal darüber nachgedacht, einen Teil Deiner commandRef in die Wiki zu verschieben. Ich habe das für meine LUXTRONIK2 gemacht, damit die commandRef schön schlank bleibt. http://www.fhemwiki.de/wiki/Luxtronik_2.0

tupol

Anregung: Vielleicht sollte man wlan_state mit den Werten off und on führen und wlan_state_text weglassen. Das vermindert die Anzahl der Readings.