Autor Thema: sysstat  (Gelesen 59558 mal)

Offline Kai-Alfonso

  • Sr. Member
  • ****
  • Beiträge: 744
Antw:sysstat
« Antwort #135 am: 05 Juli 2015, 12:55:18 »
probier mal die angehängte version. es gibt ein neues attribut mibs. hier kannst du eine liste aus mit leerzeichen getrennten <mib>:<reading> werten hinterlegen die dann gepollt werden.

was damit nicht geht sind indirekte mibs abfragen. d.h. nur mibs in denen direkt der anzuzeigende wert steht funktionieren damit. wenn der wert noch aufbereitet oder formatiert werden muss würde ich das über ein user reading machen.

vermutlich wäre es bei mehr als ein paar wenigen reading sinnvoll das ganze asynchron im hintergrund zu machen. das mache ich wenn es doch genug anwender gibt.

gruss
  andre


Hi, erstmal vielen Dank für die Änderung. Leider hab ich nach Upload und reload des Moduls noch kein Mib Attribut...
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20150
Antw:sysstat
« Antwort #136 am: 05 Juli 2015, 12:59:58 »
das hast du nur wenn das das perl Net::SNMP modul installiert ist (z.b. per cpan install Net::SNMP) und in den internals auch HAS_Net::SNMP 1 siehst.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline Kai-Alfonso

  • Sr. Member
  • ****
  • Beiträge: 744
Antw:sysstat
« Antwort #137 am: 05 Juli 2015, 14:34:06 »
das hast du nur wenn das das perl Net::SNMP modul installiert ist (z.b. per cpan install Net::SNMP) und in den internals auch HAS_Net::SNMP 1 siehst.

gruss
  andre

Ja, hatte ich installiert - dachte ich zumindest, weil ich Perl Module meistens eher mit apt-get installiere und libsnmp-perl war installiert - reichte aber wohl nicht, mit der Nachinstallation per CPAN erkennt jetzt das Modul auch das Perl SNMP Modul und das mibs Attribut ist jetzt da.Mal weiter testen :)
Raspi2|nanoCul433|nanoCul868|CCU2
Energie-USBZähler|homebrew HM Devices
DBLog|DBRep|Homematic|Baumarktsteckdosen
Hue|Webcams mit DS-Station (Synology)|Bewegungsmelder|Rollladen|Schalter (IT|HM)

Offline Spiff

  • Full Member
  • ***
  • Beiträge: 255
Antw:sysstat
« Antwort #138 am: 06 Juli 2015, 18:27:22 »
Hi Andre,

bitte bau mal vor zeile 305 das hier ein: $name =~ s.\\./.g;damit werden die \ zu / und es sollte gehen.

wenn das funktioniert baue ich es ein.

Habe ich gemacht, damit ist das Problem mit dem "\" anscheinend behoben. Es lief lange durch und auch das automatische Update per Longpoll bei den entsprechenden Readings wird durchgeführt.

Ich habe allerdings einen neuen Fehler (der damit eventuell gar nichts zu tun hat), der aber mein FHEM abschießt:

2015.07.06 01:11:31.282 1: PERL WARNING: Use of uninitialized value in subtraction (-) at ./FHEM/32_SYSSTAT.pm line 290.
2015.07.06 01:11:31.282 1: PERL WARNING: Use of uninitialized value in multiplication (*) at ./FHEM/32_SYSSTAT.pm line 293.
2015.07.06 01:11:31.282 1: PERL WARNING: Use of uninitialized value in division (/) at ./FHEM/32_SYSSTAT.pm line 293.
Illegal division by zero at ./FHEM/32_SYSSTAT.pm line 293.

Kann es sein, dass dieser Fehler kommt, wenn der auszulesende PC nicht eingeschaltet ist?
Ansonsten wenns hilft, lass ich verbose 5 nochmal bis zum Absturz mitlaufen.

Gruß
Spiff

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20150
Antw:sysstat
« Antwort #139 am: 06 Juli 2015, 18:52:00 »
mit einem nicht erreichbaren rechner kommt SYSSTAT zur zeit nicht besonders gut klar. vor allem aber weil alles blockierend gepollt wird und vor allem die snmp lib in einen timeout läuft.

wenn die rechner zu definierten zeiten aus sind solltest du disabledForIntervals setzen, wenn die zeiten nicht fest liegen solltest du SYSTAT über ein PRESENCE notify für diese zeit per disable deaktivieren.

den absturz habe ich jetzt glaube ich abgefangen.

ich habe eine version mit dem mibs attribut und dem ersetzen der \ durch / eben eingecheckt.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline Spiff

  • Full Member
  • ***
  • Beiträge: 255
Antw:sysstat
« Antwort #140 am: 06 Juli 2015, 19:02:15 »
Hi Andre,

Zeiten sind leider nicht definiert und PRESENCE läuft bei mir nicht, weil es keine Windows-fähige Version dafür gibt.
den absturz habe ich jetzt glaube ich abgefangen.
d.H. ich kann es so lassen, muss aber mit Fehlern im Log leben, wenn der Rechner aus ist?

Danke auf jeden Fall für den Fix.

Gruß
Spiff

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20150
Antw:sysstat
« Antwort #141 am: 06 Juli 2015, 19:11:05 »
es sollte auch keine fehler mehr geben. nur das blockieren kann ich nicht so einfach verhindern.

hier scheint es eine möglichkeit zu geben PRESENCE auch unter windows zu nutzen: http://forum.fhem.de/index.php/topic,10810.msg285238.html#msg285238

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline Spiff

  • Full Member
  • ***
  • Beiträge: 255
Antw:sysstat
« Antwort #142 am: 07 Juli 2015, 18:47:26 »
Hi Andre,

ich habe eine version mit dem mibs attribut und dem ersetzen der \ durch / eben eingecheckt.
Wohin denn? :) Ich sehe nur die Version vom 1.7. im trunk.

hier scheint es eine möglichkeit zu geben PRESENCE auch unter windows zu nutzen: http://forum.fhem.de/index.php/topic,10810.msg285238.html#msg285238
Super Tipp, danke! Ich hatte hin und wieder mal etwas ausprobiert, aber nie Erfolg gehabt. Diese Lösung funktioniert sehr gut.

Gruß
Spiff

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20150
Antw:sysstat
« Antwort #143 am: 07 Juli 2015, 19:01:54 »
ups. da ist mit dem einchecken was schief gegangen. jetzt aber...

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 2393
Antw:sysstat
« Antwort #144 am: 15 September 2015, 12:39:13 »
Ich hab mal eine Frage zu einer Art "Best Practice". Ich frage per SNMP die CPU-Auslastung meiner 4 Kerne ab (handelt sich um einen Remote-Windows-PC mit Windows-SNMP-Agent):
mibs .1.3.6.1.2.1.25.3.3.1.2.7:cpuUsage0 ,.1.3.6.1.2.1.25.3.3.1.2.8:cpuUsage1 ,.1.3.6.1.2.1.25.3.3.1.2.9:cpuUsage2 ,.1.3.6.1.2.1.25.3.3.1.2.10:cpuUsage3

Nun würde ich jedoch daraus gerne eine Durschnittsauslastung "cpuUsageOverall" generieren. Wie würde ich das am besten machen? Im Moment nutze ich ein userReading:
userReadings cpuUsageOverall:cpuUsage. { GetUsageCpuOverall() }
Also die Funktion "GetUsageCpuOverall" liest alle 4 CPU-Readings und liefert den Durchschnitt zurück. Nun es es ja so, dass das Reading bei allen vier MIBs getriggert wird und Overall dementsprechend 4mal gebildet wird, wobei nur der letzte Wert gewünscht ist (wobei die ersten drei sogar falsch sind, da sie mit nicht zusammen gehörenden Werten gebildet werden).
Wie kann ich es hinbekommen, dass Overall für jeden SNMP-Poll nur einmal gebildet wird (über alle 4 Kerne)? Ich hatte schon verschiedene Ideen, die aber alle irgendwelche Pferdefüße hatten. Habt ihr da einen Tipp für mich?

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20150
Antw:sysstat
« Antwort #145 am: 15 September 2015, 13:42:17 »
das könnte gehen wenn du das user reading mit :cpuUsage3 auf das letzte der vieru readings festlegst.

aber schau dir noch mal die mibs an die es unter windows gibt. ich glaube da war auch eine dabei die direkt so einen wert über alle CPUs ausspuckt

gruß
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 2393
Antw:sysstat
« Antwort #146 am: 15 September 2015, 18:33:50 »
Hi Andre,

danke für die Antwort!
das könnte gehen wenn du das user reading mit :cpuUsage3 auf das letzte der vieru readings festlegst.
Die Idee kam mir auch und wäre auch eine gute Lösung. Setzt aber eben jedoch vorraus, dass die Readings in einer definierten Reihenfolge gesetzt werden (also alphabetisch). Ist das so?

aber schau dir noch mal die mibs an die es unter windows gibt. ich glaube da war auch eine dabei die direkt so einen wert über alle CPUs ausspuckt
Ich hatte nach sowas gesucht, jedoch konnte ich nichts finden. Ich habe jedoch keine ordentliche Doku zu der Windows-MIB finden können und hab mich dann mit snmpwalk und Lesen der MIBs begnügt. Ich werde aber nochmals suchen, da du mir Hoffnung machst ;)

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20150
Antw:sysstat
« Antwort #147 am: 15 September 2015, 19:10:11 »
die mibs werden genau in der reihenfolge in der sie im mibs attribut stehen abgearbeitet. die readings werden auf einen schlag aktualisiert. d.h. du kannst du an das letzte reading hängen und alle vorher sind dann aktuell.

ich meine bei der implementierung des windows load ist mir einen solche min über den weg gelaufen. ich erinnere mich aber nicht mehr genau.

die windows Perser load min (1.3.6.1.2.1.25.3.3.1.2) musst du aber eigentlich sowieso nicht selber abfragen. das ist das was systat für einen windows rechner sowieso verwendet.
in state steht die liste der einzelnen cpu werte drin, in avg_1 die summe geteilt durch 100. du kannst du einfach noch mal durch die anzahl der cpus teilen dann hast du deinen wert eigentlich.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline vbs

  • Hero Member
  • *****
  • Beiträge: 2393
Antw:sysstat
« Antwort #148 am: 15 September 2015, 23:06:13 »
die mibs werden genau in der reihenfolge in der sie im mibs attribut stehen abgearbeitet. die readings werden auf einen schlag aktualisiert. d.h. du kannst du an das letzte reading hängen und alle vorher sind dann aktuell.
Ah danke, das ist generell gut zu wissen.

ich meine bei der implementierung des windows load ist mir einen solche min über den weg gelaufen. ich erinnere mich aber nicht mehr genau.

die windows Perser load min (1.3.6.1.2.1.25.3.3.1.2) musst du aber eigentlich sowieso nicht selber abfragen. das ist das was systat für einen windows rechner sowieso verwendet.
in state steht die liste der einzelnen cpu werte drin, in avg_1 die summe geteilt durch 100. du kannst du einfach noch mal durch die anzahl der cpus teilen dann hast du deinen wert eigentlich.
Ok, state hatte ich mißverstanden in der Commandref. Aber ist super, deckt sich, genau wie du sagst, mit den einzelnen Werten, die ich abfrage. Also im Prinzip kann ich mein userReading durch "state" triggern und dann den String in "state" parsen (falls ich nicht noch eine eigene OID dafür CpuSummary finde).
"avg_1" wiederum hab ich bei mir nicht. Dem Quellcode nach, handelt es sich dabei um oid ".1.3.6.1.4.1.2021.10.1.3.1". Die scheint es bei mir jedoch nicht zu geben:
C:\usr\bin>snmpget.exe -c public -v2c localhost .1.3.6.1.4.1.2021.10.1.3.1.343
UCD-SNMP-MIB::laLoad.1.343 = No Such Object available on this agent at this OID
Könnte daran liegen, dass ich ja den Windows-SNMP-Agent nutze. Wäre es deiner Meinung nach besser, auf NET-SNMP unter Windows zu wechseln? Gibt es da mehr/andere OIDs?

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20150
Antw:sysstat
« Antwort #149 am: 15 September 2015, 23:48:39 »
mein fehler. das reading heisst load. nicht avg_1.

unter linux wird 1.3.6.1.4.1.2021.10.1.3.1, 1.3.6.1.4.1.2021.10.1.3.2 und 1.3.6.1.4.1.2021.10.1.3.3 verwendet. das sind die avg_1, avg_5 und avg_15 load werte.

unter windows wird 1.3.6.1.2.1.25.3.3.1.2 verwendet und alles zum avg_1 wert zusammengerechnet.

der avg_1 wert landet dann im load reading. state ist unter linux die drei avg werte und unter die pro cpu werte in state.

die oids sollten immer gleich sein.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

 

decade-submarginal