SYSMON

Aus FHEMWiki
Zur Navigation springen Zur Suche springen

Das SYSMON Modul liefert diverse Informationen und Statistiken zu dem System, auf dem FHEM-Server ausgeführt wird. Es werden nur Linux-basierte Systeme unterstützt. Manche Informationen sind hardwarespezifisch und sind daher nicht auf jeder Plattform verfügbar. Bis jetzt wurde dieses Modul auf folgenden Systemen getestet: Raspberry Pi (Debian Wheezy), BeagleBone Black, FritzBox 7390, WR703N unter OpenWrt.

s.a. commandref.

Definition

   define <name> SYSMON [<M1>[ <M2>[ <M3>[ <M4>]]]]

Diese Anweisung erstellt eine neue SYSMON-Instanz. Die Parameter M1 bis M4 legen die Aktualisierungsintervalle für verschiedenen Readings (Statistiken) fest. Die Parameter sind als Multiplikatoren für die Zeit, die durch INTERVAL_BASE definiert ist, zu verstehen. Da diese Zeit fest auf 60 Sekunden gesetzt ist, können die Mx-Parameters als Zeitintervalle in Minuten angesehen werden. Wird einer (oder mehrere) Multiplikatoren auf Null gesetzt werden, wird das entsprechende Readings deaktiviert.

Parameter

Die Parameter sind für die Aktualisierung der Readings nach folgender Schema zuständig:

  • M1: (Default-Wert: 1)
CPU-Daten: cpu_freq, cpu_temp, cpu_temp_avg, loadavg, stat_cpu, stat_cpu_diff, stat_cpu_percent, stat_cpu_text
  • M2: (Default-Wert: M1)
Speicher: ram, swap etc.
  • M3: (Default-Wert: M1)
Netztwerkinformationen: eth0, eth0_diff, wlan0, wlan0_diff etc.
  • M4: (Default-Wert: 10*M1)
Filesystem-Informationen

folgende Readings werden immer anhand des Basisintervalls (unabhängig von den Mx-Parameters) aktualisiert: fhemuptime, fhemuptime_text, idletime, idletime_text, uptime, uptime_text


readings

  • cpu_bogomips
CPU Speed: BogoMIPS
  • cpu_freq
CPU-Frequenz
  • cpu_temp
CPU-Temperatur
  • cpu_temp_avg
Durchschnitt der CPU-Temperatur, gebildet über die letzten 4 Werte.
  • fhemuptime
Zeit (in Sekunden) seit dem Start des FHEM-Servers.
  • fhemuptime_text
Zeit seit dem Start des FHEM-Servers: Menschenlesbare Ausgabe (texttuelle Darstellung).
  • idletime
Zeit (in Sekunden und in Prozent), die das System (nicht der FHEM-Server!) seit dem Start in dem Idle-Modus verbracht hat. Also die Zeit der Inaktivität.
  • idletime_text
Zeit der Inaktivität des Systems seit dem Systemstart in menschenlesbarer Form.
  • loadavg
Ausgabe der Werte für die Systemauslastung (load average): 1 Minute-, 5 Minuten- und 15 Minuten-Werte.
  • ram
Ausgabe der Speicherauslastung.
  • swap
Benutzung und Auslastung der SWAP-Datei (bzw. Partition).
  • uptime
Zeit (in Sekenden) seit dem Systemstart.
  • uptime_text
Zeit seit dem Systemstart in menschenlesbarer Form.
  • Netzwerkinformationen
Informationen zu den über die angegebene Netzwerkschnittstellen übertragene Datenmengen und der Differenz zu der vorherigen Messung.
Beispiele:
Menge der übertragenen Daten über die Schnittstelle eth0.
eth0: RX: 940.58 MB, TX: 736.19 MB, Total: 1676.77 MB
Änderung der übertragenen Datenmenge in Bezug auf den vorherigen Aufruf (für eth0).
eth0_diff: RX: 0.66 MB, TX: 0.06 MB, Total: 0.72 MB
  • Dateisysteminformationen
Informationen zu der Größe und der Belegung der gewünschten Dateisystemen.
Seit Version 1.1.0 können Dateisysteme auch benannt werden (s.u.).
In diesem Fall werden für die diese Readings die angegebenen Namen verwendet.
Dies soll die Übersicht verbessern und die Erstellung von Plots erleichten.
Beispiel:
fs_root: Total: 7340 MB, Used: 3573 MB, 52 %, Available: 3425 MB at /
  • CPU Auslastung
Informationen zu der Auslastung der CPU(s).
Beispiel:
stat_cpu: 10145283 0 2187286 90586051 542691 69393 400342
stat_cpu_diff: 2151 0 1239 2522 10 3 761
stat_cpu_percent: 4.82 0.00 1.81 93.11 0.05 0.00 0.20
stat_cpu_text: user: 32.17 %, nice: 0.00 %, sys: 18.53 %, idle: 37.72 %, io: 0.15 %, irq: 0.04 %, sirq: 11.38 %
  • Benutzerdefinierte Einträge
Diese Readings sind Ausgaben der Kommanden, die an das Betriebssystem übergeben werden. Die entsprechende Angaben werden im Attribut user-defined vorgenommen.

FritzBox-spezifische Readings

  • wlan_state
WLAN-Status: on/off
  • wlan_guest_state
Gast-WLAN-Status: on/off
  • internet_ip
aktuelle IP-Adresse
  • internet_state
Status der Internetverbindung: connected/disconnected
  • night_time_ctrl
Status der Klingelsperre on/off
  • num_new_messages
Anzahl der neuen Anrufbeantworter-Meldungen
  • fw_version_info
Angaben zu der installierten Firmware-Version:

Ausgabe-Beispiel

-TODO-

Befehle

get

-TODO-

set

-TODO-

Attribute

-TODO-

Plots

-TODO-

Methoden

HTML-Ausgabe

HTML-Ausgabe-Methode (für ein Weblink): SYSMON_ShowValuesHTML(<SYSMON-Instanz>[,<Liste>])

-TODO-

Text-Ausgabe

-TODO-

Readings-Werte mit Perl lesen

SYSMON_getValues([<Liste der gewünschten Schlüssel>])

-TODO-

Beispielkonfiguration

   # 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 event-on-update-reading cpu_temp,cpu_temp_avg,cpu_freq,eth0_diff,loadavg,ram,fs_.*,stat_cpu_percent
   attr sysmon filesystems fs_boot:/boot,fs_root:/:Root,fs_usb1:/media/usb1:USB-Stick
   attr sysmon network-interfaces eth0:eth0:Ethernet,wlan0:wlan0:WiFi
   attr sysmon group RPi
   attr sysmon room 9.03_Tech
   
   # 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 9.03_Tech
   
   # 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 9.03_Tech
   
   # Visualisierung: Netzwerk-Datenübertragung für 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 9.03_Tech
   
   # Visualisierung: Netzwerk-Datenübertragung für 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 9.03_Tech
   
   # 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 9.03_Tech
   
   # 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 9.03_Tech
   
   # 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 9.03_Tech
   
   # 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 9.03_Tech
   
   # Anzeige der Readings zum Einbinden in ein 'Raum'.
   define SysValues weblink htmlCode {SYSMON_ShowValuesHTML('sysmon')}
   attr SysValues group RPi
   attr SysValues room 9.03_Tech
   
   # Anzeige CPU Auslasung
   define wl_sysmon_cpustat SVG FileLog_sysmon:SM_CPUStat:CURRENT
   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 group RPi
   attr wl_sysmon_cpustat room 9.99_Test
   attr wl_sysmon_cpustat plotsize 840,420
   define wl_sysmon_cpustat_s SVG FileLog_sysmon:SM_CPUStatSum:CURRENT
   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 group RPi
   attr wl_sysmon_cpustat_s room 9.99_Test
   attr wl_sysmon_cpustat_s plotsize 840,420
   define wl_sysmon_cpustatT SVG FileLog_sysmon:SM_CPUStatTotal:CURRENT
   attr wl_sysmon_cpustatT label "CPU-Auslastung"
   attr wl_sysmon_cpustatT group RPi
   attr wl_sysmon_cpustatT plotsize 840,420

...to be continued...