SYSSTAT: Unterschied zwischen den Versionen

Aus FHEMWiki
K (fehlerhaften SEITENTITEL gelöscht)
 
(9 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''FHEM-Modul sysstat'''
{{Infobox Modul
= Vorbemerkungen =
|ModPurpose=Aufbereitung von Systemstatistiken
Seit dem 06.02.2013 gibt es ein neues und offizielles FHEM-Modul namens ''sysstat''. Es ermöglicht das Logging und die (grafische) Anzeige der Auslastung (load) ihres '''Linux'''-Systems, auf dem FHEM läuft. Daneben ermöglicht es auch die gleichen Auswertungsmöglichkeiten für die Belegung (in Bytes oder Prozent) einer von Ihnen anzugebenden Festplatten-Partition. Gleiches kann auch mit einem Remote-System durchgeführt werden (per SSH mittels Key).
|ModType=d
|ModCmdRef=SYSSTAT
|ModForumArea=Unterstützende Dienste
|ModTechName=32_SYSSTAT.pm
|ModOwner=Andre/justme1968 ({{Link2FU|430|Forum}} / [[Benutzer_Diskussion:Justme|Wiki]])}}


Weitere Informationen zum Modul und zur Syntax finden Sie in der [http://fhem.de/commandref.html#SYSSTAT commandref].
'''SYSSTAT''' ermöglicht das Logging und die (grafische) Anzeige der Auslastung (load) ihres Linux-Systems, auf dem FHEM läuft. Daneben ermöglicht es auch die gleichen Auswertungsmöglichkeiten für die Belegung (in Bytes oder Prozent) einer von Ihnen anzugebenden Festplatten-Partition. Gleiches kann auch mit einem Remote-System durchgeführt werden (per SSH mittels Key).


= Beispiel =
Zudem lassen sich auch CPU Temperatur und Frequenz eines Raspberry Pi lokal und remote überwachen, die Systemtemperatur einer Synology Diskstation sowie per SNMP praktisch alle UNIX basierten Systeme, Windows und viele andere.
Die Definitionen und Eigenschaften (Attribute) müssen von Hand in der ''fhem.cfg''eingetragen werden, da hier der ''autocreate''-Mechanismus nicht greift (greifen kann).


Aus der ''fhem.cfg'':
== Anwendungsbeispiel ==
Die Definitionen und Eigenschaften (Attribute) müssen von Hand in der [[Konfiguration|fhem.cfg]] eingetragen werden, da hier der ''autocreate''-Mechanismus nicht greift (greifen kann).
 
=== Definition ===
Aus der fhem.cfg:


  <nowiki>define BBxM SYSSTAT 120 600
  <nowiki>define BBxM SYSSTAT 120 600
Zeile 14: Zeile 21:
attr BBxM room &lt;Ihr Raum&gt;
attr BBxM room &lt;Ihr Raum&gt;
attr BBxM showpercent 1</nowiki>
attr BBxM showpercent 1</nowiki>
<ins>Anmerkungen:</ins>
 
=== Anmerkungen ===


* Die Load-Daten werden alle 120 (Default-Wert: 60) '''Sekunden''' gelesen und es wird dabei die Partition ''/dev/mmcblk0p2'' alle 600 Sekunden überwacht. Die Belegung der Partition wird in Prozent angegeben. Wie die Partitionen auf ihrem Linux-System benannt sind erfahren Sie z.B. über den ''mount''-Befehl.
* Die Load-Daten werden alle 120 (Default-Wert: 60) '''Sekunden''' gelesen und es wird dabei die Partition ''/dev/mmcblk0p2'' alle 600 Sekunden überwacht. Die Belegung der Partition wird in Prozent angegeben. Wie die Partitionen auf ihrem Linux-System benannt sind erfahren Sie z.B. über den ''mount''-Befehl.
* Wird kein Auslese-Interval für die Partitionen angegeben, so wird dieses auf den ersten Wert <ins>mit 60 multipliziert</ins> gesetzt. So würde im o.a. Beispiel aus dem ersten Wert 120 (für das System-load) ein Auslesewert von 7.200 Sekunden, also 120 Minuten bzw. 2 Stunden.
* Wird kein Auslese-Interval für die Partitionen angegeben, so wird dieses auf den ersten Wert <ins>mit 60 multipliziert</ins> gesetzt. So würde im o.a. Beispiel aus dem ersten Wert 120 (für das System-load) ein Auslesewert von 7.200 Sekunden, also 120 Minuten bzw. 2 Stunden.


Weitere Definitionen in der ''fhem.cfg'':
Weitere Definitionen in der fhem.cfg:


  <nowiki>define FileLog_BBxM FileLog /opt/fhem/log/BBxM-%Y-%m.log BBxM
  <nowiki>define FileLog_BBxM FileLog /opt/fhem/log/BBxM-%Y-%m.log BBxM
Zeile 30: Zeile 38:
attr Stats_BBxM label "Systemlast von BBxM Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
attr Stats_BBxM label "Systemlast von BBxM Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
attr Stats_BBxM room &lt;Ihr Raum&gt;</nowiki>
attr Stats_BBxM room &lt;Ihr Raum&gt;</nowiki>
= Plot =
Standard ist die Angabe von ''define Stats_BBxM weblink fileplot FileLog_BBxM:'''sysstat''':CURRENT''. Dadurch wird nur die Systemlast grafisch (Plot) dargestellt. Wenn Sie auch die Belegung einer Partition im Plot sehen wollen, können Sie folgende Datei (die Sie sich als ''mysysstat.gplot''unterhalb von ''&lt;Ihr-FHEM-Verzeichnis&gt;/www/gplot''speichern müssten, damit die o.a. Konfiguration greift) verwenden:


== Plot-Beispiel ==
Standard ist die Angabe von ''define Stats_BBxM weblink fileplot FileLog_BBxM:'''sysstat''':CURRENT''. Dadurch wird nur die Systemlast grafisch (Plot) dargestellt. Wenn Sie auch die Belegung einer Partition im Plot sehen wollen, können Sie folgende Datei (die Sie sich als ''mysysstat.gplot''unterhalb von ''&lt;Ihr-FHEM-Verzeichnis&gt;/www/gplot''speichern müssten, damit die o.a. Konfiguration greift) verwenden
=== Definition ===
  <nowiki>############################
  <nowiki>############################
# Display the sysload and diskusage values  
# Display the sysload and diskusage values  
Zeile 50: Zeile 60:
plot &quot;&lt; awk '/load:/ {print $1, $4}' &lt;IN&gt;&quot; using 1:2 ls l0 axes x1y1 title 'Load' with lines
plot &quot;&lt; awk '/load:/ {print $1, $4}' &lt;IN&gt;&quot; using 1:2 ls l0 axes x1y1 title 'Load' with lines
plot &quot;&lt; awk '//:/ {print $1, $4}' &lt;IN&gt;&quot; using 1:2 ls l2fill axes x1y2 title 'Disk' with lines</nowiki>
plot &quot;&lt; awk '//:/ {print $1, $4}' &lt;IN&gt;&quot; using 1:2 ls l2fill axes x1y2 title 'Disk' with lines</nowiki>
<ins>Anmerkungen:</ins>


=== Anmerkungen ===
* Die Zeile "#FileLog 4:/\x3a:0:" muss evtl. an ihre Gegebenheiten angepasst werden, wenn Sie nicht das root-Volume überwachen (wollen).
* Die Zeile "#FileLog 4:/\x3a:0:" muss evtl. an ihre Gegebenheiten angepasst werden, wenn Sie nicht das root-Volume überwachen (wollen).
* Beachten Sie, dass die Sequenz "\x3a" der vorgenannten Zeile den Filter auf "/:" legt. Eine Angabe wie "#FileLog 4:/:''':'''0:" funktioniert nicht, da der Doppelpunkt eine besondere Bedeutung hat. Er muss also "maskiert" werden. Die ''awk''-Sequenz ("awk '//:/") ist für die Plot-Ausgabe nicht relevant.
* Beachten Sie, dass die Sequenz "\x3a" der vorgenannten Zeile den Filter auf "/:" legt. Eine Angabe wie "#FileLog 4:/:''':'''0:" funktioniert nicht, da der Doppelpunkt eine besondere Bedeutung hat. Er muss also "maskiert" werden. Die ''awk''-Sequenz ("awk '//:/") ist für die Plot-Ausgabe nicht relevant.
* Regulär würde ein "#FileLog 4:/:0:" für die root-Partition ausreichen (was den Filter auf "/" legt), aber spätestens, wenn Sie ein 2. Volume (z.B. "/mount/usb") im Plot anzeigen wollen, trifft der Filter "/" auf beide Volumes zu. Dies führt dann zu eigenartigen Effekten im Plot.
* Regulär würde ein "#FileLog 4:/:0:" für die root-Partition ausreichen (was den Filter auf "/" legt), aber spätestens, wenn Sie ein 2. Volume (z.B. "/mount/usb") im Plot anzeigen wollen, trifft der Filter "/" auf beide Volumes zu. Dies führt dann zu eigenartigen Effekten im Plot.
= Links =
FHEM-Forum: [http://forum.fhem.de/index.php?t=msg&amp;th=10888&amp;start=0&amp;rid=417 Ankündigung als offizielles Modul]


FHEM-Forum: [http://forum.fhem.de/index.php?t=msg&amp;th=10573&amp;start=0&amp;rid=417 Inoffizielles Modul]
 
== Einrichtung über SNMP unter Windows 7 ==
Um SYSSTAT unter Windows verwenden zu können, muss
* der SNMP-Dienst installiert und aktiviert sein
<nowiki>Systemsteuerung -> Programme -> Windows-Funktionen aktivieren oder deaktivieren -> Simple Network Management-Protokoll (SNMP)</nowiki>
* ein Communityname '''public''' ohne Passwort und mit Leserechten eingerichtet sein
<nowiki>Computerverwaltung -> Dienste und Anwendungen -> Dienste -> Eigenschaften von SNMP-Dienst
-> Sicherheit -> Hinzufügen... -> Communityrechte: NUR LESEN; Communityname: public</nowiki>
* in der Perl-Installation das Paket Net::SNMP installiert sein
<nowiki>ActivePerl: Perl Package Manager -> View all packages -> Net-SNMP -> Mark for install -> Run marked actions</nowiki>
* in fhem das Attribut '''snmp 1''' gesetzt sein
 
Beispielkonfiguration:
<nowiki>define sysstat SYSSTAT 60 600
attr sysstat filesystems 1,4,6,7
attr sysstat room System
attr sysstat showpercent 1
attr sysstat snmp 1
attr sysstat uptime 1</nowiki>
 
Anmerkung: die IDs der zu loggenden Datenspeicher bekommt man mit "get sysstat filesystems" heraus.
 
== Links ==
* Diskussion zum noch "inoffiziellen" Modul: {{Link2Forum|Topic=10573}}
* Ankündigung als offzielles Modul: {{Link2Forum|Topic=10888}}
 
[[Kategorie:Glossary]]
[[Kategorie:Glossary]]

Aktuelle Version vom 27. Januar 2017, 10:51 Uhr

SYSSTAT
Zweck / Funktion
Aufbereitung von Systemstatistiken
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Support (Forum) Unterstützende Dienste
Modulname 32_SYSSTAT.pm
Ersteller Andre/justme1968 (Forum / Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


SYSSTAT ermöglicht das Logging und die (grafische) Anzeige der Auslastung (load) ihres Linux-Systems, auf dem FHEM läuft. Daneben ermöglicht es auch die gleichen Auswertungsmöglichkeiten für die Belegung (in Bytes oder Prozent) einer von Ihnen anzugebenden Festplatten-Partition. Gleiches kann auch mit einem Remote-System durchgeführt werden (per SSH mittels Key).

Zudem lassen sich auch CPU Temperatur und Frequenz eines Raspberry Pi lokal und remote überwachen, die Systemtemperatur einer Synology Diskstation sowie per SNMP praktisch alle UNIX basierten Systeme, Windows und viele andere.

Anwendungsbeispiel

Die Definitionen und Eigenschaften (Attribute) müssen von Hand in der fhem.cfg eingetragen werden, da hier der autocreate-Mechanismus nicht greift (greifen kann).

Definition

Aus der fhem.cfg:

define BBxM SYSSTAT 120 600
attr BBxM filesystems /dev/mmcblk0p2
attr BBxM room <Ihr Raum>
attr BBxM showpercent 1

Anmerkungen

  • Die Load-Daten werden alle 120 (Default-Wert: 60) Sekunden gelesen und es wird dabei die Partition /dev/mmcblk0p2 alle 600 Sekunden überwacht. Die Belegung der Partition wird in Prozent angegeben. Wie die Partitionen auf ihrem Linux-System benannt sind erfahren Sie z.B. über den mount-Befehl.
  • Wird kein Auslese-Interval für die Partitionen angegeben, so wird dieses auf den ersten Wert mit 60 multipliziert gesetzt. So würde im o.a. Beispiel aus dem ersten Wert 120 (für das System-load) ein Auslesewert von 7.200 Sekunden, also 120 Minuten bzw. 2 Stunden.

Weitere Definitionen in der fhem.cfg:

define FileLog_BBxM FileLog /opt/fhem/log/BBxM-%Y-%m.log BBxM
attr FileLog_BBxM archivedir /opt/fhem/archive/
attr FileLog_BBxM logtype sysstat:Plot,text
attr FileLog_BBxM nrarchive 1
attr FileLog_BBxM room <Ihr Raum>
define Stats_BBxM weblink fileplot FileLog_BBxM:mysysstat:CURRENT       <<<==== siehe unten
attr Stats_BBxM alias Systemlast
attr Stats_BBxM label "Systemlast von BBxM Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
attr Stats_BBxM room <Ihr Raum>

Plot-Beispiel

Standard ist die Angabe von define Stats_BBxM weblink fileplot FileLog_BBxM:sysstat:CURRENT. Dadurch wird nur die Systemlast grafisch (Plot) dargestellt. Wenn Sie auch die Belegung einer Partition im Plot sehen wollen, können Sie folgende Datei (die Sie sich als mysysstat.gplotunterhalb von <Ihr-FHEM-Verzeichnis>/www/gplotspeichern müssten, damit die o.a. Konfiguration greift) verwenden

Definition

############################
# Display the sysload and diskusage values 
# Corresponding FileLog definition:
# define deviceLog FileLog ./log/device-%Y-%m.log device
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 '<L1>'
set ylabel "Load"
set y2label "/ belegt %"
set y2range [0:100]
#FileLog 4:load:0:
#FileLog 4:/\x3a:0:
plot "< awk '/load:/ {print $1, $4}' <IN>" using 1:2 ls l0 axes x1y1 title 'Load' with lines
plot "< awk '//:/ {print $1, $4}' <IN>" using 1:2 ls l2fill axes x1y2 title 'Disk' with lines

Anmerkungen

  • Die Zeile "#FileLog 4:/\x3a:0:" muss evtl. an ihre Gegebenheiten angepasst werden, wenn Sie nicht das root-Volume überwachen (wollen).
  • Beachten Sie, dass die Sequenz "\x3a" der vorgenannten Zeile den Filter auf "/:" legt. Eine Angabe wie "#FileLog 4:/::0:" funktioniert nicht, da der Doppelpunkt eine besondere Bedeutung hat. Er muss also "maskiert" werden. Die awk-Sequenz ("awk '//:/") ist für die Plot-Ausgabe nicht relevant.
  • Regulär würde ein "#FileLog 4:/:0:" für die root-Partition ausreichen (was den Filter auf "/" legt), aber spätestens, wenn Sie ein 2. Volume (z.B. "/mount/usb") im Plot anzeigen wollen, trifft der Filter "/" auf beide Volumes zu. Dies führt dann zu eigenartigen Effekten im Plot.


Einrichtung über SNMP unter Windows 7

Um SYSSTAT unter Windows verwenden zu können, muss

  • der SNMP-Dienst installiert und aktiviert sein
Systemsteuerung -> Programme -> Windows-Funktionen aktivieren oder deaktivieren -> Simple Network Management-Protokoll (SNMP)
  • ein Communityname public ohne Passwort und mit Leserechten eingerichtet sein
Computerverwaltung -> Dienste und Anwendungen -> Dienste -> Eigenschaften von SNMP-Dienst
-> Sicherheit -> Hinzufügen... -> Communityrechte: NUR LESEN; Communityname: public
  • in der Perl-Installation das Paket Net::SNMP installiert sein
ActivePerl: Perl Package Manager -> View all packages -> Net-SNMP -> Mark for install -> Run marked actions
  • in fhem das Attribut snmp 1 gesetzt sein

Beispielkonfiguration:

define sysstat SYSSTAT 60 600
attr sysstat filesystems 1,4,6,7
attr sysstat room System
attr sysstat showpercent 1
attr sysstat snmp 1
attr sysstat uptime 1

Anmerkung: die IDs der zu loggenden Datenspeicher bekommt man mit "get sysstat filesystems" heraus.

Links

  • Diskussion zum noch "inoffiziellen" Modul: Thema
  • Ankündigung als offzielles Modul: Thema