FHEM - Hausautomations-Systeme > Unterstützende Dienste
überarbeitet SYSSTAT modul: non-blocking, remote kommandos, beliebige readings
mrbreil:
Ich wollte das neue SYSSTAT nur auch lokal nutzen und denke ich habe einen Bug gefunden
--- Code: ---Internals:
DEF 60 600
HAS_Net::SNMP 1
INTERVAL 60
INTERVAL_FS 600
NAME sysstat_Server
NR 222
NTFY_ORDER 50-sysstat_Server
STATE 1.45. 1.16. 1.15
SystemDescription Linux Server-9000 3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u6 x86_64
SystemName Server-9000
TYPE SYSSTAT
interval_fs 480
CHANGETIME:
Readings:
2015-12-03 20:38:15 / 4
2015-12-02 08:59:28 /media/daten 57
2015-12-03 20:38:15 load 1.45.
2015-12-03 20:38:15 state 1.45. 1.16. 1.15
2015-12-03 20:38:15 uptime 8 days, 21:05
filesystems:
/media/daten
/dev/disk/by-uuid/ebe2ea73-3aaf-4a8f-8f3a-7a0d00d2b5b9
Helper:
Filesystems:
/dev/disk/by-uuid/ebe2ea73-3aaf-4a8f-8f3a-7a0d00d2b5b9:
free 431971476
mountpoint /
total 473625808
usageper 4
used 17595452
/dev/sdb1:
free 575635468
mountpoint /media/daten
total 1442145340
usageper 58
used 793253068
/dev/sdc1:
free 594968116
mountpoint /media/daten_backup
total 1442146708
usageper 57
used 773921720
Rootfs:
free 431971476
mountpoint /
total 473625808
usageper 4
used 17595452
Tmpfs:
free 2214960
mountpoint /run/shm
total 2214960
usageper 0
used 0
Udev:
free 10240
mountpoint /dev
total 10240
usageper 0
used 0
Attributes:
filesystems /media/daten,/dev/disk/by-uuid/ebe2ea73-3aaf-4a8f-8f3a-7a0d00d2b5b9
room IT
showpercent 1
stat 1
uptime 1
--- Ende Code ---
in dem load reading ist doch ein Punkt zuviel, oder?
--- Code: ---2015-12-03 20:38:15 load 1.45.
--- Ende Code ---
Gruß Christian
justme1968:
ich habe die version im ersten post aktualisiert.
die änderungen sind:
- die snmp abfragen sind jetzt auch non-blocking
- auf manchen systemen konnten zu viele punkte in den load und state readings auftauchen. das ist behoben.
wenn es keine (negativen) rückmeldungen gibt checke ich diese Version demnächst ein.
gruss
andre
mrbreil:
Mh! Irgendwie habe ich es nicht angezeigt bekommen das du geantwortet hast.
Habe es jetzt ausprobiert und es funktioniert.
Vielen Dank, schönes WE.
hoods:
Hallo zusammen,
erst einmal vielen Dank für das Modul!
Ich habe heute auf die hier verlinkte Modul Version aktualisiert und hatte bisher die offizielle version im Einsatz um mein Synology ds214play zu überwachen.
Leider bekomme ich im fhem Log die Meldung "snmp filesystems error", vermutlich wegen dem "@" Zeichen im Filesystem Namen (?)
--- Code: ---2015.12.26 22:44:06 2: ds214play: unanswered query in queue, reconnecting
2015.12.26 22:44:06 2: ds214play: starting: /usr/bin/ssh -q 192.168.178.30
2015.12.26 22:44:06 2: ds214play: unanswered query in queue, reconnecting
2015.12.26 22:44:06 2: ds214play: starting: /usr/bin/ssh -q 192.168.178.30
2015.12.26 22:44:11 2: ds214play: snmp filesystems error
--- Ende Code ---
Was muss ich tun damit das Filesystem richtig erkannt wird und die Fehlermeldung verschwindet?
Des weiteren verzweifle ich gerade an den MIBs. Die wollen einfach nicht in der Liste der Readings auftauchen ...
Hier meine Config:
--- Code: ---Internals:
CONNECTS 12
DEF 300 600 192.168.178.30
FD 4
HAS_Net::SNMP 1
HOST 192.168.178.30
INTERVAL 300
INTERVAL_FS 600
NAME ds214play
NR 471
NTFY_ORDER 50-ds214play
PARSED 5
PARTIAL
PID 19306
SENT 6
STARTED 1
STATE 5.38 5.51 5.61
SystemDescription Linux diskstation 3.2.40 #5644 SMP PREEMPT Wed Oct 28 12:35:52 CST 2015 i686
SystemName diskstation
TYPE SYSSTAT
USE_SNMP 1
interval_fs 300
snmpCommunity public
snmpVersion 1
uname Linux diskstation 3.2.40 #5644 SMP PREEMPT Wed Oct 28 12:35:52 CST 2015 i686 GNU/Linux synology_evansport_214play
QUEUE:
HASH(0x3499060)
HASH(0x2eb65b8)
Readings:
2015-12-26 22:44:09 /opt 74
2015-12-26 22:44:09 /volumeUSB1/usbshare 93
2015-12-26 22:49:12 connection connected
2015-12-26 22:49:16 load 5.38
2015-12-26 22:49:16 state 5.38 5.51 5.61
2015-12-26 22:49:16 temperature 35
filesystems:
/dev/sdq1
/volume1/@optware
Helper:
has_proc_loadavg 1
has_proc_stat 1
has_proc_uptime 1
Filesystems:
/dev/sdq1:
free 148961280
mountpoint /volumeUSB1/usbshare
total 1922828180
usageper 93
used 1773764500
/dev/shm:
free 358080
mountpoint /dev/shm
total 358080
usageper 0
used 0
/run:
free 355376
mountpoint /run
total 358080
usageper 1
used 2704
/tmp:
free 357856
mountpoint /tmp
total 358080
usageper 1
used 224
/var:
free 1304876
mountpoint /usr/local/zarafa-licensed/var
total 2451064
usageper 45
used 1043788
/volume1/@optware:
free 761216560
mountpoint /opt
total 2879527424
usageper 74
used 2118208464
Attributes:
filesystems /dev/sdq1,/volume1/@optware
mibs .1.3.6.1.4.1.6574.4.2.12.1:upsInfoLoadValue0
.1.3.6.1.4.1.6574.1.2:temperature0
room Monitoring
showpercent 1
snmp 1
snmpCommunity public
snmpVersion 1
stat 1
synologytemperature 1
uptime 1
--- Ende Code ---
Ist das Format für die MIBs korrekt? Also MIB:Reading <NL> MIB:Reading ? Oder muss hier noch ein Komma dazwischen?
Direkt auf der Synology als auch auf dem Pi2 (FHEM Server) liefert snmpwalk das gewünscht Ergebnis.
--- Code: ---root@raspberrypi2:/opt/fhem# snmpwalk -c public -v 1 192.168.178.30 .1.3.6.1.4.1.6574.4.2.12.1
iso.3.6.1.4.1.6574.4.2.12.1.0 = Opaque: Float: 7.000000
--- Ende Code ---
Gruss Sven
hoods:
Anbei ein paar learnings und Updates:
1. die beiden relevanten Filesysteme konnte ich bisher nicht erfolgreich einbinden wegen besagter Fehlermeldung.
Habt versucht mit:
--- Code: ---"/volume1/@optware"
'/volume1/@optware'
/volume1/\@optware
--- Ende Code ---
@andre: wie sollte ich den FS übergeben damit das Modul damit umgehen kann?
2a. Meine learnings zum Thema snmp und mibs
snmpwalk ist gut zur Identifizierung der gewünschten OIDs, mit snmpget ist zu prüfen ob die OID auch wirklich das gewünschte Resultat liefert. Der Teufel steckt im Detail, siehe Beispiel Output ...
--- Code: ---root@raspberrypi2:~# snmpwalk -c public -v 2c 192.168.178.30 iso.3.6.1.4.1.6574.1.2
iso.3.6.1.4.1.6574.1.2.0 = INTEGER: 35
root@raspberrypi2:~# snmpget -c public -v 2c 192.168.178.30 iso.3.6.1.4.1.6574.1.2
iso.3.6.1.4.1.6574.1.2 = No Such Instance currently exists at this OID
root@raspberrypi2:~# snmpget -c public -v 2c 192.168.178.30 iso.3.6.1.4.1.6574.1.2.0 <= die vollständige OID enthält .0 am Ende
iso.3.6.1.4.1.6574.1.2.0 = INTEGER: 35
--- Ende Code ---
Am besten die Hersteller Doku konsultieren und die passenden OIDs raussuchen und prüfen. Für Synology gibts die hier:
http://global.download.synology.com/download/Document/MIBGuide/Synology_DiskStation_MIB_Guide.pdf
2b. Verarbeitung von OIDs vom Datentyp "float"
Die Auslastung der USV zeigt aktuell 7% (übers Webinterface).
Via snmpget sieht das so aus:
root@raspberrypi2:~# snmpget -c public -v 2c 192.168.178.30 .1.3.6.1.4.1.6574.4.2.12.1.0
iso.3.6.1.4.1.6574.4.2.12.1.0 = Opaque: Float: 7.000000
Und in FHEM wird der Datentyp nun anders dargestellt oder sogar konvertiert? Leider bin ich noch blutiger Anfänger, daher hänge ich hier nun. Wie kann ich den Wert weiterverarbeiten?
--- Code: --- 2015-12-29 16:39:19 upsBatteryChargeValue 0x9f780442c80000
2015-12-29 16:39:19 upsInfoLoadValue0 0x9f780440e00000
--- Ende Code ---
Im Moment habe ich mir damit beholfen ein reading einzurichten, dass einfach den snmpget Befehl absetzt und hier wird das Resultat 1:1 in FHEM übernommen. Allerdings laufe ich hier in das nächste Problem :).
Readings halten sich scheinbar nicht an die konfigurierten Intervalle (INTERVAL, INTERVAL_FS).
Test1 und UpsLoadInPct sollten eigentlich regelmäßig aktualisiert werden (alle 5 bzw. 10min) aber lt. list wurden sie das letzte Mal von 3 Std. aktualisiert. Beim reading Test0 handelt es sich um einen Fehlversuch.
--- Code: ---Internals:
CONNECTS 335
DEF 300 600 192.168.178.30
FD 61
HAS_Net::SNMP 1
HOST 192.168.178.30
INTERVAL 300
INTERVAL_FS 600
LAST_DISCONNECT 2015-12-28 16:29:00
NAME ds214play
NR 462
NTFY_ORDER 50-ds214play
PARSED 5
PARTIAL
PID 28832
SENT 6
STARTED 1
STATE 5.75 5.63 5.56
SystemDescription Linux diskstation 3.2.40 #5644 SMP PREEMPT Wed Oct 28 12:35:52 CST 2015 i686
SystemName diskstation
TYPE SYSSTAT
USE_SNMP 1
interval_fs 600
snmpCommunity public
snmpVersion 2
uname Linux diskstation 3.2.40 #5644 SMP PREEMPT Wed Oct 28 12:35:52 CST 2015 i686 GNU/Linux synology_evansport_214play
QUEUE:
HASH(0x49a7680)
HASH(0x42b85b8)
HASH(0x42c0840)
HASH(0x485b038)
Readings:
2015-12-28 11:29:18 Test0 SNMPv2-SMI::enterprises.6574.4.2.12.1.0 = Opaque: Float: 7.000000
2015-12-29 14:00:36 Test1 Linux diskstation 3.2.40 #5644 SMP PREEMPT Wed Oct 28 12:35:52 CST 2015 i686 GNU/Linux synology_evansport_214play
2015-12-29 14:00:36 UpsLoadInPct 7.000000
2015-12-29 17:04:40 connection connected
2015-12-29 17:04:44 load 5.75
2015-12-29 17:04:44 state 5.75 5.63 5.56
2015-12-29 17:04:44 temperature 35
2015-12-29 17:04:44 temperature0 35
2015-12-29 17:04:44 upsBatteryChargeValue 0x9f780442c80000
2015-12-29 17:04:44 upsInfoLoadValue0 0x9f780440e00000
2015-12-28 11:29:17 uptime 1 days, 14:21
filesystems:
Helper:
has_proc_loadavg 1
has_proc_stat 1
has_proc_uptime 1
proc_stat_old:
691555
1582
667758
90242674
1751979
0
83925
0
0
0
Attributes:
mibs .1.3.6.1.4.1.6574.4.2.12.1.0:upsInfoLoadValue0,.1.3.6.1.4.1.6574.1.2.0:temperature0,.1.3.6.1.4.1.6574.4.3.1.1.0:upsBatteryChargeValue
readings UpsLoadInPct:snmpget -c public -v 2c -Oqv 192.168.178.30 .1.3.6.1.4.1.6574.4.2.12.1.0
Test1:uname -a
room Monitoring
showpercent 1
snmp 1
snmpCommunity public
snmpVersion 2
stat 1
synologytemperature 1
uptime 1
verbose 5
--- Ende Code ---
Wie kann ich einen Interval setzen für readings?
Vielen Dank im Voraus.
Gruß Sven
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln