überarbeitet SYSSTAT modul: non-blocking, remote kommandos, beliebige readings

Begonnen von justme1968, 23 Oktober 2015, 00:09:34

Vorheriges Thema - Nächstes Thema

JohnDenver0815

@Internals: meine Vermutung war, dass es hier irgendwo zum mismatch kommt (Stichwort CaseSensitive). Aber wenn das so seine Richtigkeit hat, dann ist alles gut.

@Readings löschen: me->Kopf->Tisch. Danke für den Hinweis ;-)

@Telnet: Hätte vermutet, dass es über telnet (manuell) aktualisiert wird, sobald noSSH gesetzt ist. Das erklärt dann auch, warum hier garnichts mehr passiert ist.

@CPU-Auslastung: Habe ich in den MIBs nichts gefunden. Von meinem Verständnis her dürfte da auch nicht wirklich was anfallen, da lediglich der Webserver im IDLE hängt und ab und an ein Relais geschalten wird.

In diesem Sinne erstmal Danke für die rasche Reaktion und Auflösung der Fragezeichen. Ich werd das dann nochmal per SSH probieren und schauen, ob dann noch was auffällt.

LG und guats nächtle
John

JohnDenver0815

Nach einer haarsträubenden Nacht gebe ich es hiermit auf. SSH ist auf der AP7921 zwar möglich, aber login per Public/Private-Keys scheinbar nicht. Wenn jemand andere Erfahrungen hat, ich bin für Tipps offen.

Edit: Mit dem originalen SYSSTAT funktionieren die Abfragen auch ohne Angabe von ssh_user per SNMP. Das sollte für meine Zwecke erstmal reichen. Um das "blockierend" zu umgehen wird mir auch noch was einfallen. Bisher war die PDU aber immer erreichbar, daher für mich für's Erste uninteressant.

LG
John

justme1968

ssh brauchst du doch garnicht. du willst doch nur per snmp etwas abfragen. no noSSH zu setzen ist also völlig ok.

ich schaue mir die probleme noch an sobald ich dazu komme, bis dahin kannst du die normale version verwenden. alles andre ans dem anderen post gilt ja trotzdem.

vielleicht kannst do noch mal ein list des normalen sysstat devices zeigen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

JohnDenver0815

Mein Problem war, dass im "Custom"-SYSSTAT mit dem Attribut noSSH auch keine (automatische) Aktualisierung mehr stattgefunden hat, lediglich nach manuellem GET Update. Ohne noSSH wurde alle 5 Sekunden ein Verbindungsaufbau eingeleitet und wieder abgebrochen (logisch, ohne Public-Key) und das Logfile aufgebläht.

Anbei mein <list> des normalen SYSSTAT-Device:
Internals:
   DEF        60 600 [IP-ADDR]
   HAS_Net::SNMP 1
   HAS_Sys::Statistics 0
   HOST       [IP-ADDR]
   INTERVAL   60
   INTERVAL_FS 600
   NAME       WHG_AZ_PowSW_State
   NR         24
   STATE      Initialized
   TYPE       SYSSTAT
   USE_SNMP   1
   interval_fs 120
   snmpCommunity [COMMUNITY]
   snmpVersion 1
   Readings:
     2016-10-19 11:42:39   Port01_name     Schaukasten
     2016-10-19 11:42:39   Port01_state    1
     2016-10-19 11:42:39   Port02_name     Anlage
     2016-10-19 11:42:39   Port02_state    1
     2016-10-19 11:42:39   Port03_name     Monitor rechts
     2016-10-19 11:42:39   Port03_state    1
     2016-10-19 11:42:39   Port04_name     USB 3.0 Hub
     2016-10-19 11:42:39   Port04_state    1
     2016-10-19 11:42:39   Port05_name     Drucker
     2016-10-19 11:42:39   Port05_state    2
     2016-10-19 11:42:39   Port06_name     Festplatte
     2016-10-19 11:42:39   Port06_state    2
     2016-10-19 11:42:39   Port07_name     Tischleiste
     2016-10-19 11:42:39   Port07_state    1
     2016-10-19 11:42:39   Port08_name     Monitor links
     2016-10-19 11:42:39   Port08_state    2
   filesystems:
Attributes:
   mibs       .1.3.6.1.4.1.318.1.1.4.4.2.1.3.1:Port01_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.1:Port01_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.2:Port02_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.2:Port02_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.3:Port03_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.3:Port03_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.4:Port04_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.4:Port04_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.5:Port05_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.5:Port05_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.6:Port06_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.6:Port06_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.7:Port07_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.7:Port07_name ,.1.3.6.1.4.1.318.1.1.4.4.2.1.3.8:Port08_state ,.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2.8:Port08_name
   room       Arbeitszimmer
   snmp       1
   snmpCommunity [COMMUNITY]
   snmpVersion 1


vbs

Habe auch gerade mal das Modul aus dem ersten Post installiert und bei mir scheint es auch so zu sein, dass keine automatischen Updates funktionieren. Nur wenn ich es händisch anstoße per get update. Ich benutze kein SSH (hab nossh gesetzt) und möchte nur SNMP abfragen.

Sieht dann so aus:
Internals:
   DEF        120 600 ben
   HAS_Net::SNMP 1
   HOST       ben
   INTERVAL   120
   INTERVAL_FS 600
   NAME       fl_benStats
   NR         476
   NTFY_ORDER 50-fl_benStats
   STATE      CPU: 8.5 % (93.4 GB/47.2 GB/204.3 GB/5037.2 GB)
   SystemDescription Hardware: Intel64 Family 6 Model 58 Stepping 9 AT/AT COMPATIBLE - Software: Windows Version 6.3 (Build 14393 Multiprocessor Free)
   SystemName Ben
   TYPE       SYSSTAT
   USE_SNMP   1
   interval_fs 240
   Helper:
     Dblog:
       Loadavg:
         Bendblog:
           TIME       1479134688.63544
           VALUE      8.5
       Numprocesses:
         Bendblog:
           TIME       1479134013.96408
           VALUE      108
       Stormass1free:
         Bendblog:
           TIME       1479134013.96408
           VALUE      47.2
       Stormass1size:
         Bendblog:
           TIME       1479134013.96408
           VALUE      239.9
       Stormass2free:
         Bendblog:
           TIME       1479134013.96408
           VALUE      204.3
       Stormass3free:
         Bendblog:
           TIME       1479134013.96408
           VALUE      5037.2
       Storramfree:
         Bendblog:
           TIME       1479134688.63544
           VALUE      15.7
       Storramsize:
         Bendblog:
           TIME       1479134688.63544
           VALUE      29.4
       Storsystemfree:
         Bendblog:
           TIME       1479134688.63544
           VALUE      93.4
       Storsystemsize:
         Bendblog:
           TIME       1479134688.63544
           VALUE      119.5
   Readings:
     2016-11-14 15:28:31   connection      disconnected
     2016-11-14 15:44:48   load            0.34
     2016-11-14 15:44:48   loadAvg         8.5
     2016-11-14 15:44:48   numProcesses    108
     2016-11-14 15:44:48   state           13,6,6,9
     2016-11-14 15:33:33   storMass1Free   47.2
     2016-11-14 15:33:33   storMass1Size   239.9
     2016-11-14 15:33:33   storMass1Used   192.7
     2016-11-14 15:33:33   storMass2Free   204.3
     2016-11-14 15:04:03   storMass2Size   6001.0
     2016-11-14 15:04:03   storMass2Used   5796.7
     2016-11-14 15:33:33   storMass3Free   5037.2
     2016-11-13 23:34:03   storMass3Size   8001.4
     2016-11-13 23:34:03   storMass3Used   2964.2
     2016-11-14 15:44:48   storRamFree     15.7
     2016-11-14 15:44:48   storRamSize     29.4
     2016-11-14 15:44:48   storRamUsed     13.7
     2016-11-14 15:44:48   storSystemFree  93.4
     2016-11-14 15:44:48   storSystemSize  119.5
     2016-11-14 15:44:48   storSystemUsed  26.1
     2016-11-14 15:44:48   storageAllocUnits0 4096
     2016-11-14 15:44:48   storageAllocUnits1 4096
     2016-11-14 15:44:48   storageAllocUnits2 4096
     2016-11-14 15:44:48   storageAllocUnits3 4096
     2016-11-14 15:44:48   storageAllocUnits4 4096
     2016-11-14 15:44:48   storageAllocUnits5 65536
     2016-11-14 15:44:48   storageSize0    29176575
     2016-11-14 15:44:48   storageSize1    58574591
     2016-11-14 15:44:48   storageSize2    1465097471
     2016-11-14 15:44:48   storageSize3    1953473535
     2016-11-14 15:44:48   storageSize4    1465097471
     2016-11-14 15:44:48   storageSize5    448646
     2016-11-14 15:44:48   storageUsed0    6372492
     2016-11-14 15:44:48   storageUsed1    47038033
     2016-11-14 15:44:48   storageUsed2    1415221436
     2016-11-14 15:44:48   storageUsed3    723691231
     2016-11-14 15:44:48   storageUsed4    877375734
     2016-11-14 15:44:48   storageUsed5    209576
     2016-11-14 15:24:03   uptime          23 hours, 18:13.71
   Helper:
Attributes:
   alias      Ben - Status
   event-on-change-reading .*
   event-on-update-reading (stor.*Size|stor.*Free|stor.*Used)
   group      Server
   icon       time_graph
   mibs       .1.3.6.1.2.1.25.1.6.0:numProcesses ,.1.3.6.1.2.1.25.2.3.1.4.1:storageAllocUnits0 ,.1.3.6.1.2.1.25.2.3.1.4.2:storageAllocUnits1 ,.1.3.6.1.2.1.25.2.3.1.4.3:storageAllocUnits2 ,.1.3.6.1.2.1.25.2.3.1.4.4:storageAllocUnits3 ,.1.3.6.1.2.1.25.2.3.1.4.5:storageAllocUnits4 ,.1.3.6.1.2.1.25.2.3.1.4.6:storageAllocUnits5 ,.1.3.6.1.2.1.25.2.3.1.5.1:storageSize0 ,.1.3.6.1.2.1.25.2.3.1.5.2:storageSize1 ,.1.3.6.1.2.1.25.2.3.1.5.3:storageSize2 ,.1.3.6.1.2.1.25.2.3.1.5.4:storageSize3 ,.1.3.6.1.2.1.25.2.3.1.5.5:storageSize4 ,.1.3.6.1.2.1.25.2.3.1.5.6:storageSize5 ,.1.3.6.1.2.1.25.2.3.1.6.1:storageUsed0 ,.1.3.6.1.2.1.25.2.3.1.6.2:storageUsed1 ,.1.3.6.1.2.1.25.2.3.1.6.3:storageUsed2 ,.1.3.6.1.2.1.25.2.3.1.6.4:storageUsed3 ,.1.3.6.1.2.1.25.2.3.1.6.5:storageUsed4 ,.1.3.6.1.2.1.25.2.3.1.6.6:storageUsed5
   noSSH      1
   room       Flur
   snmp       1
   stateFormat CPU: loadAvg % (storSystemFree GB/storMass1Free GB/storMass2Free GB/storMass3Free GB)
   uptime     1
   userReadings loadAvg:load.* { ReadingsVal($name,"load",0) * 25 },storRamFree:storageUsed5.* { VBSUtils_SnmpGetStorageFree($name, 5)},storRamSize:storageUsed5.* { VBSUtils_SnmpGetStorageSize($name, 5)},storRamUsed:storageUsed5.* { VBSUtils_SnmpGetStorageUsed($name, 5)},storMass1Size:storageUsed1.* { VBSUtils_SnmpGetStorageSize($name, 1)},storMass1Used:storageUsed1.* { VBSUtils_SnmpGetStorageUsed($name, 1)},storMass1Free:storageUsed1.* { VBSUtils_SnmpGetStorageFree($name, 1)},storMass2Size:storageUsed2.* { VBSUtils_SnmpGetStorageSize($name, 2)},storMass2Used:storageUsed2.* { VBSUtils_SnmpGetStorageUsed($name, 2)},storMass2Free:storageUsed1.* { VBSUtils_SnmpGetStorageFree($name, 2)},storMass3Size:storageUsed3.* { VBSUtils_SnmpGetStorageSize($name, 3)},storMass3Used:storageUsed3.* { VBSUtils_SnmpGetStorageUsed($name, 3)},storMass3Free:storageUsed1.* { VBSUtils_SnmpGetStorageFree($name, 3)},storSystemSize:storageUsed0.* { VBSUtils_SnmpGetStorageSize($name, 0)},storSystemUsed:storageUsed0.* { VBSUtils_SnmpGetStorageUsed($name, 0)},storSystemFree:storageUsed0.* { VBSUtils_SnmpGetStorageFree($name, 0)}


Ich hab bisher immer die original Version benutzt, doch jetzt immer öfter das Problem gehabt, das SYSSTATS gelegentlich stark blockiert hat (>10 s). Normalerweise sollen sich meine HDDs schlafen legen und ich vermute, dass manchmal eine SNMP-Anfrage ein Aufwecken bewirkt und daher die Hänger. Ist das normal, dass SNMP-Anfragen die Festplatten wecken? Wäre für mich ja generell ein Problem, da die ja schlafen sollen. Das Aufwecken passiert aber offenbar auch nicht bei jeder Anfrage.

alexus

Hallo,

erstmal vielen Dank für dieses Modul. Da steckt viel Arbeit drin!
Ich habe allerdings noch eine spezielle Frage:

Ist es möglich, die SNMP-Abfragen komplett zu deaktivieren und den "Füllstand" der Festplatten manuell mit "get <name> update" abzufragen?
Hintergrund: Ich möchte die Volumes meiner alte Synology nur während der Sicherung überwachen, ansonsten werden die Festplatten immer wieder "aufgeweckt".

Viele Grüße
alexus

justme1968

@JohnDenver0815 , vbs: das mit dem fehlenden update habe ich bei mir noch nicht beobachten können. sobald ich das problem gefunden habe checke ich die neue version ein.

@alexus: du kannst das snmp attrubut setzen und löschen oder das intervall für den platten check sehr sehr gross setzen.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ulli

Hallo,
ich wollte gerade meine DS212+ mit SYSSTAT in FHEM einbinden. Da ich diese auch herunterfahren können möchte muss ich über ssh gehen, soweit ich das verstanden habe?
Jetzt ist mir nur nicht klar wie ich über ssh Zugriff bekomme ohne das ich irgendwo das user passwort eingeben kann. Wie ist das gedacht?
Geschickt wäre natürlich wenn ich über ein SSH Zertifikat Zugriff bekomme.
Dazu müsste ich aber an das ssh Kommando die notwendigen Parameter anhängen können.
z.B. /usr/bin/ssh -i /opt/fhem/tools/id_rsa <user@host> <cmd>


Am Rande noch...kann ich über Sysstat auch ein WOL auslösen?

justme1968

der user unter dem fhem läuft muss per ssh und ohne eingabe von user oder password zugriff auf das entfernte system bekommen. dazu ist nichts weiter anzuhängen sondern das .ssh verzeichniss passend zu nutzen.

d.h. normalerweise macht man das über das .ssh verzeichniss des fhem users (~/.ssh/id_rsa), dem ssh_user attribut und eintragen des keys auf der gegenseite in ~/.ssh/authorized_keys bei diesem user.

statt dem SYSSTAT modul kannst du auch das PRESENCE modul mit passend gesetzem powerCmd attribut verwenden um ein device per ssh runter zu fahren.

WOL kannst du über das WOL modul umsetzen (und ebenfalls über powerCmd in PRESENCE triggern).

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

mischu860

Hallo zusammen.

Ich habe soeben ein update von fhem gemacht und habe seither keine Aufzeichnung mehr mittels sysstat in meine Plots.

2016.11.22 19:11:32 1: PERL WARNING: Use of uninitialized value $freq in division (/) at ./FHEM/32_SYSSTAT.pm line 604.
2016.11.22 19:11:31 1: PERL WARNING: Use of uninitialized value $temp in division (/) at ./FHEM/32_SYSSTAT.pm line 578.
2016.11.22 19:11:30 1: PERL WARNING: Argument "/dev/.*" isn't numeric in sprintf at ./FHEM/32_SYSSTAT.pm line 292.
2016.11.22 19:11:30 1: PERL WARNING: Argument "/dev/md2" isn't numeric in sprintf at ./FHEM/32_SYSSTAT.pm line 292.
2016.11.22 19:11:30 1: PERL WARNING: Argument "/dev/md1" isn't numeric in sprintf at ./FHEM/32_SYSSTAT.pm line 292.
2016.11.22 19:11:30 1: PERL WARNING: Argument "/dev/md0" isn't numeric in sprintf at ./FHEM/32_SYSSTAT.pm line 292.


Ist da jemand das selbe bekannt? Ich habe nichts am rest geändert...

mrbreil

Ist es eigentlich auch möglich mit Sysstat an den Ram Verbrauch eines per ssh abgefragten Remote Servers zu kommen?

Gruß Christian

justme1968

@mischu860: an der eingecheckten version hat sich seit dem 18.01.2016 nichts geändert.

@mrbreil: über das readings und readingsFormat attribut kannst du dir das konfigurieren.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

mrbreil

Danke justme1968.

Also so richtig verstanden habe ich das mit den SNMP Dienst nicht verstanden.
Ich weiß jetzt das der total verbrauchte Ram diese "Nummer" hat: .1.3.6.1.4.1.2021.4.6.0  .
Erstellt habe ich folgendes Attribut attr sysstat_Breilnet mibs 1.3.6.1.4.1.2021.4.6.0:ram\
1.3.6.1.4.1.2021.4.5.0:ramtotal


Aber ich bekomme leider kein Reading.
Kannst du mir bitte einen Tip geben. Danke

Grüße Christian

mrbreil

Ich habe einen kleinen Wunsch.
Könnte man noch ein Attribut einbauen, welches den Timeout festlegt.
Ich habe einen PC der über ein VPN abgefragt werden soll. Leider wird dieser immer als disconnected angezeigt, obwohl ich als fhem user Verbindung zu ihm aufbauen kann. Der Verbindungsaufbau dauert aber manchmal recht lange, möchte ausschließen das es am festen Timeout liegt.

Gruß Christian 

JoeALLb

Zitat von: mrbreil am 28 November 2016, 13:04:26
Aber ich bekomme leider kein Reading.

Hast Du das geschafft? Ich hänge hier gerade ebendalls, vielleicht, weil ich es nicht auf einem RPI nutze?
Ich würde es gerne ohne SSH, nur zum Abfragen von snmp nutzen. ...
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270