FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Thema gestartet von: Andy89 am 14 April 2020, 10:04:57

Titel: Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Andy89 am 14 April 2020, 10:04:57
Guten Tag,
da ich meine FritzBox gegen ein Draytek Vigor 165 Modem getauscht habe und als Router mein Unifi Security Gateway(USG) nutze, wollte ich auch die Download und Uploud Raten plotten. Da das USG SNMP kann, werte ich das WAN0 aus, um an diese Daten zu kommen. Ich hab das Sysstat Modul so eingerichtet:

defmod TrafficUnifiWan SYSSTAT 30 600 192.168.2.1
attr TrafficUnifiWan DbLogInclude Downstream_MBits,Upstream_MBits,RX_GB_WAN,TX_GB_WAN,ifHCInOctets,ifHCOutOctets,EmpfangenHeute,GesendetHeute,GesendetMonat,EmpfangenMonat
attr TrafficUnifiWan mibs .1.3.6.1.2.1.1.5.0:name\
.1.3.6.1.2.1.2.2.1.2.2:desc\
.1.3.6.1.2.1.2.2.1.5.2:ifSpeed\
.1.3.6.1.2.1.2.2.1.10.2:ifInOctets\
.1.3.6.1.2.1.2.2.1.16.2:ifOutOctets\
.1.3.6.1.2.1.31.1.1.1.6.2:ifHCInOctets\
.1.3.6.1.2.1.31.1.1.1.10.2:ifHCOutOctets\
.1.3.6.1.2.1.4.20.1.1.2.243.73.69:wanIP
attr TrafficUnifiWan room Unifi
attr TrafficUnifiWan snmp 1
attr TrafficUnifiWan snmpCommunity unifi
attr TrafficUnifiWan snmpVersion 2
attr TrafficUnifiWan stat 1
attr TrafficUnifiWan stateFormat Heute: Empfangen EmpfangenHeute GB;; Gesendet GesendetHeute
attr TrafficUnifiWan uptime 1
attr TrafficUnifiWan userReadings Downstream_MBits differential {sprintf("%.3f", ReadingsVal("TrafficUnifiWan","ifHCInOctets","-1")/1024/1024*8)},\
Upstream_MBits differential {sprintf("%.3f", ReadingsVal("TrafficUnifiWan","ifHCOutOctets","-1")/1024/1024*8)},\
RX_GB_WAN {sprintf("%.4f", ReadingsVal("TrafficUnifiWan","ifHCInOctets","-1")/1024/1024/1024)},\
TX_GB_WAN {sprintf("%.4f", ReadingsVal("TrafficUnifiWan","ifHCOutOctets","-1")/1024/1024/1024)},\
GesendetHeute monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
GesendetWoche monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
GesendetMonat monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
GesendetJahr  monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
GesendetTotal monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
\
EmpfangenHeute monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
EmpfangenWoche monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
EmpfangenMonat monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
EmpfangenJahr  monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
EmpfangenTotal monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
\
GesamtHeute monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
                        ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
GesamtWoche monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
                        ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
GesamtMonat monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
                        ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
GesamtJahr monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
                        ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
GesamtTotal monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
                        ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))}


Die Werte werden so auch ausgelesen, aber wenn ich FHEM neustarte, dann stoppt die Auswertung.
Wenn ich aber folgendes absetze:
attr TrafficUnifiWan snmp 1
Dann werden die Werte direkt wieder korrekt empfangen - zumindest bis zum nächsten Neustart. Wieso ist das so?

Ich hoffe, dass mir jemand helfen kann.

Vielen Dank und beste Grüße
Andy

P.s.: ob die Umrechnung mit Differential in MBits korrekt ist, weiß ich nicht. Es kommen aber ungefähr ähnliche Werte wie beim USG raus.
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Andy89 am 16 April 2020, 11:21:32
um das Problem zu umgehen, setzte ich nun einfach minütlich das SNMP Attribut neu
defmod di_zz_TIME_EveryMinute DOIF ([ +:01]) (attr TrafficUnifiWan snmp 1)

das funktioniert erstmal...
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Wernieman am 16 April 2020, 11:22:59
Du kannst auch auf "Neustart" Trickern und es setzen ...
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Gisbert am 19 April 2020, 21:34:54
Hallo Andy,

super Idee, die du umgesetzt hast.
Kann ich deine Definition copy/paste (bis auf die IP-Adresse) übernehmen?
Was bedeutet dieses Attribut, muss ich da was anpassen?
attr TrafficUnifiWan mibs .1.3.6.1.2.1.1.5.0:name\
.1.3.6.1.2.1.2.2.1.2.2:desc\
.1.3.6.1.2.1.2.2.1.5.2:ifSpeed\
.1.3.6.1.2.1.2.2.1.10.2:ifInOctets\
.1.3.6.1.2.1.2.2.1.16.2:ifOutOctets\
.1.3.6.1.2.1.31.1.1.1.6.2:ifHCInOctets\
.1.3.6.1.2.1.31.1.1.1.10.2:ifHCOutOctets\
.1.3.6.1.2.1.4.20.1.1.2.243.73.69:wanIP


Da du keine Fritzbox (anscheinend) hast, wie machst du die Telefonie, ohne Fritzbox, mit dem Draytek? Das würde mich interessieren, wenn ich gegen Jahresende einen neuen Internetvertrag aushandele.

Viele​ Grüße​ Gisbert​
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Eisix am 20 April 2020, 15:21:10
@Gisbert

die X.X.X.X auch mit deiner IP ersetzen.

.1.3.6.1.2.1.4.20.1.1.2.243.73.69:wanIP



.1.3.6.1.2.1.4.20.1.1.X.X.X.X:wanIP


Ich musste snmp Version 1 benutzen

attr TrafficUnifiWan snmpVersion 1


@Andy89

Danke wollte ich schon lange auch machen, aber das warten hat sich gelohnt  8)

Gruß
Eisix
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Andy89 am 20 April 2020, 17:24:37
Zitat von: Gisbert am 19 April 2020, 21:34:54
Kann ich deine Definition copy/paste (bis auf die IP-Adresse) übernehmen?
Was bedeutet dieses Attribut, muss ich da was anpassen?
ich habe gar nicht gesehen, dass die öffentliche IP auch Teil der Mibs wird. Das bringt mir natürlich auch nichts, da sich meine IP öfter ändert.
Du kannst es so übernehmen, wenn du ein USG hast. Beim USG Pro sind die Mibs anders.

Wie ich schon schrieb, bin ich mir bei den userreadings nicht ganz sicher, aber die passen grob.

Zitat von: Gisbert am 19 April 2020, 21:34:54
Da du keine Fritzbox (anscheinend) hast, wie machst du die Telefonie, ohne Fritzbox, mit dem Draytek? Das würde mich interessieren, wenn ich gegen Jahresende einen neuen Internetvertrag aushandele.
das mache ich ganz "einfach" - ich habe alle dazu erzogen, mich auf dem Handy anzurufen. Das habe ich sowieso meist griffbereit und ne Flat hab ich auch drin.
Das Haustelefon wurde in den letzten Jahren nur geladen und ich kann an zwei Händen abzählen, wie oft ich darauf angerufen wurde. Da kann ich dir leider nicht helfen.

Zitat von: Eisix am 20 April 2020, 15:21:10
Ich musste snmp Version 1 benutzen

attr TrafficUnifiWan snmpVersion 1

ich musste auf snmpVersion 2, weil ich glaube, dass ifHCInOctets und ifHCOutOctets dann nicht funktionierten (es könnte aber auch sein, dass es an dem Problem vom Auslesen lag).
Auf dem USG habe ich die aktuellste Version installiert.
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Eisix am 20 April 2020, 17:52:57
Das ist dann auch bei switches und APs aktiv.
Da könnte man ein schönes Modul draus bauen das alles Mögliche mit snmp abdeckt oder gibts das schon?

Gruß
Eisix
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Gisbert am 20 April 2020, 18:05:27
Hallo Eisix,
hallo Andy,

ich bin nicht so firm bei Netzwerken, wie ihr es wohl seid, vielleicht stehe ich aber auch nur etwas zu fest auf'm Schlauch.
In der Definition gibt es 2 IP-Adressen:
defmod TrafficUnifiWan SYSSTAT 30 600 192.168.2.1
attr TrafficUnifiWan DbLogInclude Downstream_MBits,Upstream_MBits,RX_GB_WAN,TX_GB_WAN,ifHCInOctets,ifHCOutOctets,EmpfangenHeute,GesendetHeute,GesendetMonat,EmpfangenMonat
attr TrafficUnifiWan mibs .1.3.6.1.2.1.1.5.0:name\
.1.3.6.1.2.1.2.2.1.2.2:desc\
.1.3.6.1.2.1.2.2.1.5.2:ifSpeed\
.1.3.6.1.2.1.2.2.1.10.2:ifInOctets\
.1.3.6.1.2.1.2.2.1.16.2:ifOutOctets\
.1.3.6.1.2.1.31.1.1.1.6.2:ifHCInOctets\
.1.3.6.1.2.1.31.1.1.1.10.2:ifHCOutOctets\
.1.3.6.1.2.1.4.20.1.1.2.243.73.69:wanIP


192.168.2.1: ist das die IP-Adresse des USG-3?
2.243.73.69: was ist das für eine IP-Adresse, die des UniFi-Controllers oder des Modems, oder ...

Das dürfte bei mir zu Problemen führen: DbLogInclude, da ich Filelog benutze. Wie müsste das dann aussehen?

Viele​ Grüße​ Gisbert​
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Eisix am 20 April 2020, 18:59:35
192.168.2.1. Interne USG ip
Die andere ist die externe.
Einfach ein Filelog für TrafficUnifiWan definieren. Dort kannst du dann auch wieder über regex filtern wenn du möchtest.

Gruß
Eisix
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Gisbert am 20 April 2020, 20:04:54
Zitat von: Eisix am 20 April 2020, 18:59:35
192.168.2.1. Interne USG ip
Die andere ist die externe.
Einfach ein Filelog für TrafficUnifiWan definieren. Dort kannst du dann auch wieder über regex filtern wenn du möchtest.

Gruß
Eisix

Hallo Eisix,

vielen Dank für die Erklärung - das kann ich umsetzen.
Leider gibt es kein Attribut edit: mbis mibs, das ich auswählen könnte. Wie bekomme ich dieses Attribut, bzw. wo muss ich es definieren?

Viele​ Grüße​ Gisbert​
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Gisbert am 20 April 2020, 20:17:30
Hallo Eisix,

commandref gibt folgendes preis:
ZitatIf <host> is given it has to be accessible by ssh without the need for a password.
Wie habt ihr das gelöst? Ich kann mich per ssh nur mit Passwort anmelden.

Viele​ Grüße​ Gisbert​
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Wernieman am 20 April 2020, 20:20:45
es gibt ssh key

https://heinz-otto.blogspot.com/2017/01/per-ssh-remote-befehle-direkt-ausfuhren.html (https://heinz-otto.blogspot.com/2017/01/per-ssh-remote-befehle-direkt-ausfuhren.html)
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Eisix am 20 April 2020, 20:23:52


define FileLog_TrafficUnifiWan FileLog ./log/TrafficUnifiWan-%Y.log TrafficUnifiWan


Das attr mibs gibt es bei sysstat, kannst aber einfach den code von Andy in die Befehlszeile Kopieren.

Am controller musst du snmp aktivieren wie im screenshot.
Bei mir heißt die Community "public" bei Andy "unifi"

Gruß
Eisix
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Eisix am 20 April 2020, 20:31:42
snmp ist ein eigener service der auf port 161 läuft. Dazu wird kein ssh benötigt. Snmp v1,2 gehen read dann ohne Authentifizierung. Write muss ich mal testen.

Gruß
Eisix
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Andy89 am 20 April 2020, 20:41:05
Zitat von: Eisix am 20 April 2020, 20:31:42
snmp ist ein eigener service der auf port 161 läuft. Dazu wird kein ssh benötigt. Snmp v1,2 gehen read dann ohne Authentifizierung
kann ich so bestätigen. Mein Raspberry hat keinen SSH Zugang zum USG. Ich habe wie Eisix es gezeigt hat, im Controller SNMP v1,2 aktivert.

Beste Grüße
Andy
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Gisbert am 20 April 2020, 21:00:46
So, ich hab jetzt snmp im UniFi-Controller aktiviert:
SNMPV1, SNMPV2C Enable
Community String public

Das Attribut mibs fehlt aber immer noch im Device. Ohne das Attribut kann ich die Definition nicht setzen ohne Gemecker, d.h. gar nicht. Es sollte da sein, ist es aber nicht, diehe Screenshot.

Viele​ Grüße​ Gisbert​
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Eisix am 20 April 2020, 21:05:13
schick mal ein list des sysstat
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Gisbert am 20 April 2020, 21:08:28

Internals:
   CFGFN     
   DEF        30 600 192.168.1.1
   FUUID      5e9de194-f33f-e986-11a7-5dc3a8ff5426d83c
   HAS_Net::SNMP 0
   HAS_Sys::Statistics 0
   HOST       192.168.1.1
   INTERVAL   60
   INTERVAL_FS 600
   NAME       TrafficUnifiWan
   NR         21620
   STATE      Initialized
   TYPE       SYSSTAT
   interval_fs 360
   READINGS:
   filesystems:
   helper:
     bm:
       SYSSTAT_Define:
         cnt        2
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        20.04. 19:54:44
         max        0.00151300430297852
         tot        0.00262618064880371
         mAr:
           HASH(0x56432134c398)
           TrafficUnifiWan SYSSTAT 30 600 192.168.1.1
       SYSSTAT_Get:
         cnt        12
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        20.04. 20:09:00
         max        0.000509023666381836
         tot        0.00172519683837891
         mAr:
           HASH(0x56432134c398)
           TrafficUnifiWan
           update
Attributes:

Wie gesagt, ich kann kein Attribut mibs setzen, weil es keins gibt.
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Gisbert am 20 April 2020, 21:30:32
Hier die Liste der Attribute:
TrafficUnifiWan: unknown attribute ?, choose one of alias comment eventMap group room suppressReading userReadings verbose disable disabledForIntervals raspberrycpufreq raspberrytemperature synologytemperature stat uptime ssh_user armbiantemperature filesystems showpercent event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat timestamp-on-change-reading babbleDevice cmdIcon devStateIcon devStateIcon devStateStyle icon sortby stateFormat valueStyle webCmd webCmdLabel widgetOverride userattr
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Eisix am 20 April 2020, 21:40:16
Glaube dir fehlt

   HAS_Net::SNMP 1
   HAS_Sys::Statistics 1

https://forum.fhem.de/index.php/topic,10573.0.html (https://forum.fhem.de/index.php/topic,10573.0.html)

Also Net::SNMP und Sys::Statistics installieren

https://wiki.fhem.de/wiki/Raspberry_Pi_/_Rasbian_und_SNMP (https://wiki.fhem.de/wiki/Raspberry_Pi_/_Rasbian_und_SNMP)

Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Gisbert am 21 April 2020, 03:46:32
Hallo Eisix,

snmp und snmpd konnte ich installieren, nicht aber folgendes auf Debian10:sudo apt-get install snmp-mibs-downloader
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package snmp-mibs-downloader is not available, but is referr
ed to by another package.
This may mean that the package is missing, has been obsolete
d, or
is only available from another source

E: Package 'snmp-mibs-downloader' has no installation candid
ate


Das list sieht nach einem shutdown restart wie folgt aus:
Internals:
   DEF        30 600 192.168.1.1
   FUUID      5e9de194-f33f-e986-11a7-5dc3a8ff5426d83c
   HAS_Net::SNMP 0
   HAS_Sys::Statistics 1
   HOST       192.168.1.1
   INTERVAL   60
   INTERVAL_FS 600
   NAME       TrafficUnifiWan
   NR         955
   STATE      Initialized
   TYPE       SYSSTAT
   interval_fs 600
   READINGS:
   filesystems:
Attributes:


Irgendeine Idee wie ich weiter komme?

Viele​ Grüße​ Gisbert​
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Eisix am 21 April 2020, 06:16:13
Hallo Gisbert,

Den mibs-Downloader brauchst du für sysstat nicht. Snmpd denke ich auch nicht, schadet aber erstmal nicht.
Dir fehlt noch Net::snmp.


apt install libnet-snmp-perl


Gruß
Eisix
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Gisbert am 21 April 2020, 10:16:34
Hallo Eisix,

vielen Dank, jetzt scheint das Device zu laufen.
Noch ein paar Fragen:
Ich hab das Attribut snmpVersion 2 gewählt, ist das so richtig?
Bzgl. der Installation von snmp und snmpd hatte ich auch den snmpd service auf meinem Fhemserver gestartet und enabled. Sollte ich diesen service disablen und stoppen?
Gleich als erste Werte bekomme ich für heute 13.99 GB download und 1.4 GB upload - das kann ich mir kaum erklären. Der Zuwachs der letzten Stunde sieht vernünftiger aus.

Noch ein list für alle Fälle:

Internals:
   DEF        300 900 192.168.1.1
   FUUID      5e9de194-f33f-e986-11a7-5dc3a8ff5426d83c
   HAS_Net::SNMP 1
   HAS_Sys::Statistics 1
   HOST       192.168.1.1
   INTERVAL   300
   INTERVAL_FS 900
   NAME       TrafficUnifiWan
   NR         955
   STATE      today down: 14.44 GB

today up: 1.46 GB
   TYPE       SYSSTAT
   USE_SNMP   1
   interval_fs 300
   snmpCommunity public
   snmpVersion 2
   READINGS:
     2020-04-21 10:05:13   Downstream_MBits 0.140395265047316
     2020-04-21 10:05:13   EmpfangenHeute  14.44
     2020-04-21 10:05:13   EmpfangenJahr   14.44
     2020-04-21 10:05:13   EmpfangenMonat  14.44
     2020-04-21 10:05:13   EmpfangenTotal  14.44
     2020-04-21 10:05:13   EmpfangenWoche  14.44
     2020-04-21 10:05:13   GesamtHeute     15.89
     2020-04-21 10:05:13   GesamtJahr      15.89
     2020-04-21 10:05:13   GesamtMonat     15.89
     2020-04-21 10:05:13   GesamtTotal     15.89
     2020-04-21 10:05:13   GesamtWoche     15.89
     2020-04-21 10:05:13   GesendetHeute   1.46
     2020-04-21 10:05:13   GesendetJahr    1.46
     2020-04-21 10:05:13   GesendetMonat   1.46
     2020-04-21 10:05:13   GesendetTotal   1.46
     2020-04-21 10:05:13   GesendetWoche   1.46
     2020-04-21 10:05:13   RX_GB_WAN       14.4384
     2020-04-21 10:05:13   TX_GB_WAN       1.4566
     2020-04-21 10:05:13   Upstream_MBits  0.172058282276678
     2020-04-21 10:05:13   desc            eth0
     2020-04-21 10:05:13   idle            96
     2020-04-21 10:05:13   ifHCInOctets    15503075125
     2020-04-21 10:05:13   ifHCOutOctets   1563963658
     2020-04-21 10:05:13   ifInOctets      2618173237
     2020-04-21 10:05:13   ifOutOctets     1563963658
     2020-04-21 10:05:13   ifSpeed         1000000000
     2020-04-21 10:05:13   load            0.05
     2020-04-21 10:05:13   name            USG-3
     2020-04-21 10:05:13   state           0.05 0.06 0.09
     2020-04-21 10:05:13   system          1
     2020-04-21 10:05:13   uptime          2 days, 14:13:37.98
     2020-04-21 10:05:13   user            1
     2020-04-21 10:05:13   wanIP           192.168.178.20
   filesystems:
   helper:
     bm:
       SYSSTAT_Attr:
         cnt        22
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        21.04. 08:41:30
         max        0.00361084938049316
         tot        0.0243136882781982
         mAr:
           set
           TrafficUnifiWan
           snmpVersion
           1
       SYSSTAT_Define:
         cnt        5
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        21.04. 09:04:01
         max        0.0390009880065918
         tot        0.186017036437988
         mAr:
           HASH(0x564edc554238)
           TrafficUnifiWan SYSSTAT 60 900 192.168.1.1
       SYSSTAT_Get:
         cnt        34
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        21.04. 08:42:44
         max        36.091325044632
         tot        72.312362909317
         mAr:
           HASH(0x564edc554238)
           TrafficUnifiWan
           update
Attributes:
   mibs       .1.3.6.1.2.1.1.5.0:name
.1.3.6.1.2.1.2.2.1.2.2:desc
.1.3.6.1.2.1.2.2.1.5.2:ifSpeed
.1.3.6.1.2.1.2.2.1.10.2:ifInOctets
.1.3.6.1.2.1.2.2.1.16.2:ifOutOctets
.1.3.6.1.2.1.31.1.1.1.6.2:ifHCInOctets
.1.3.6.1.2.1.31.1.1.1.10.2:ifHCOutOctets
.1.3.6.1.2.1.4.20.1.1.192.168.178.20:wanIP
   snmp       1
   snmpCommunity public
   snmpVersion 2
   stat       1
   stateFormat today down: EmpfangenHeute GB

today up: GesendetHeute GB
   uptime     1
   userReadings Downstream_MBits differential {sprintf("%.3f", ReadingsVal("TrafficUnifiWan","ifHCInOctets","-1")/1024/1024*8)},
Upstream_MBits differential {sprintf("%.3f", ReadingsVal("TrafficUnifiWan","ifHCOutOctets","-1")/1024/1024*8)},
RX_GB_WAN {sprintf("%.4f", ReadingsVal("TrafficUnifiWan","ifHCInOctets","-1")/1024/1024/1024)},
TX_GB_WAN {sprintf("%.4f", ReadingsVal("TrafficUnifiWan","ifHCOutOctets","-1")/1024/1024/1024)},
GesendetHeute monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},
GesendetWoche monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},
GesendetMonat monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},
GesendetJahr  monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},
GesendetTotal monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},
EmpfangenHeute monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
EmpfangenWoche monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
EmpfangenMonat monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
EmpfangenJahr  monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
EmpfangenTotal monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
GesamtHeute monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
GesamtWoche monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
GesamtMonat monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
GesamtJahr monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},
GesamtTotal monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))}


Viele​ Grüße​ Gisbert​
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Eisix am 21 April 2020, 10:27:48
Hallo,

wenn du mit snmpVersion 2 Werte kriegst ist das Ok, war bei mir nicht der Fall.
snmpd service würde ich stoppen und disablen wenn du deinen raspi nicht damit Monitoren willst.

Zu denn Werten kann ich noch nichts sagen, muss ich bei mir auch erstmal im Auge behalten.

Gruß
Eisix
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Andy89 am 21 April 2020, 10:46:24
Zitat von: Gisbert am 21 April 2020, 10:16:34
Gleich als erste Werte bekomme ich für heute 13.99 GB download und 1.4 GB upload - das kann ich mir kaum erklären. Der Zuwachs der letzten Stunde sieht vernünftiger aus.
die Werte sind steigende Werte, die nur zum Teil verloren gehen, wenn man das USG hart neustartet - also Stecker raus und wieder rein.

Die vielen Userreadings habe ich deswegen drin und diese "steuere" ich über eine Funktion in meiner myUtils:
#######################################################################################
#                                                                                     #
#   Unifi-Traffic                                                                     #
#                                                                                     #
#######################################################################################
sub resetUnifiTraffic(){
  my $name = "TrafficUnifiWan";
  my $up_traffic;
  my $down_traffic;
  my $traffic;

  my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);

  if( $wday == 1 ){
    $up_traffic = ReadingsVal($name,"GesendetWoche",0);
    setReading($name,"GesendetLetzteWoche",$up_traffic);
    setReading($name,"GesendetWoche",0);
    $down_traffic = ReadingsVal($name,"EmpfangenWoche",0);
    setReading($name,"EmpfangenLetzteWoche",$down_traffic);
    setReading($name,"EmpfangenWoche",0);
    $traffic = ReadingsVal($name,"GesamtWoche",0);
    setReading($name,"GesamtLetzteWoche",$traffic);
    setReading($name,"GesamtWoche",0);
  }
  if( $mday == 7 ){
    $up_traffic = ReadingsVal($name,"GesendetMonat",0);
    setReading($name,"GesendetLetzterMonat",$up_traffic);
    setReading($name,"GesendetMonat",0);
    $down_traffic = ReadingsVal($name,"EmpfangenMonat",0);
    setReading($name,"EmpfangenLetzterMonat",$down_traffic);
    setReading($name,"EmpfangenMonat",0);
    $traffic = ReadingsVal($name,"GesamtMonat",0);
    setReading($name,"GesamtLetzterMonat",$traffic);
    setReading($name,"GesamtMonat",0);
   
    my $fairuse = ReadingsVal($name,"FairUseCounter",0);;
    if($traffic > 300) {
        $fairuse += 1;
    } else {
        $fairuse = 0;
    }
    setReading($name,"FairUseCounter",$fairuse);
  }
  if( $yday == 1 ){
    $up_traffic = ReadingsVal($name,"GesendetJahr",0);
    setReading($name,"GesendetLetztesJahr",$up_traffic);
    setReading($name,"GesendetJahr",0);
    $down_traffic = ReadingsVal($name,"EmpfangenJahr",0);
    setReading($name,"EmpfangenLetztesJahr",$down_traffic);
    setReading($name,"EmpfangenJahr",0);
    $traffic = ReadingsVal($name,"GesamtJahr",0);
    setReading($name,"GesamtLetztesJahr",$traffic);
    setReading($name,"GesamtJahr",0);
  }

  $up_traffic = ReadingsVal($name,"GesendetHeute",0);
  setReading($name,"GesendetGestern",$up_traffic);
  setReading($name,"GesendetHeute",0);
  $down_traffic = ReadingsVal($name,"EmpfangenHeute",0);
  setReading($name,"EmpfangenGestern",$down_traffic);
  setReading($name,"EmpfangenHeute",0);
  $traffic = ReadingsVal($name,"GesamtHeute",0);
  setReading($name,"GesamtGestern",$traffic);
  setReading($name,"GesamtHeute",0);
  return;
}


in einem DOIF setze ich das dann jeden Tag um 0:01 zurück:
DOELSEIF   ([00:01]) ({resetUnifiTraffic()})

es gibt wahrscheinlich auch schönere Möglichkeiten, das umzusetzen. Aber da ich das irgendwann mal für die FritzBox eingerichtet habe, war es sehr einfach die paar Namen anzupassen...
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Gisbert am 22 April 2020, 09:04:02
Hallo Andy,

das Modul arbeitet jetzt bei mir; allerdings habe ich noch ein paar Fragen zu deiner Definition.

Gesendet bzw. EmpfangenHeute/Woche/Monat/Jahr hat jeweils die gleiche Definition, folglich erhalte ich die identischen Werte, die in meinem Fall vermutlich einer Datenmenge seit Neuststart des USGs vor 3 Tagen entsprechen.

Da ich auch noch mit einem anderen Modul die vor dem USG geschalteten Fritzbox auslese, würde ich erwarten, dass die gesendeten und empfangenen Daten pro Tag bei beiden Geräten in etwa gleich hoch sind. Dies ist aber nicht der Fall. Da ich im wesentlichen auf den täglichen Datenverkehr aus bin, welche Definition ist für das USG dafür notwendig?

Deine Definition:
defmod TrafficUnifiWan SYSSTAT 30 600 192.168.2.1
attr TrafficUnifiWan DbLogInclude Downstream_MBits,Upstream_MBits,RX_GB_WAN,TX_GB_WAN,ifHCInOctets,ifHCOutOctets,EmpfangenHeute,GesendetHeute,GesendetMonat,EmpfangenMonat
attr TrafficUnifiWan mibs .1.3.6.1.2.1.1.5.0:name\
.1.3.6.1.2.1.2.2.1.2.2:desc\
.1.3.6.1.2.1.2.2.1.5.2:ifSpeed\
.1.3.6.1.2.1.2.2.1.10.2:ifInOctets\
.1.3.6.1.2.1.2.2.1.16.2:ifOutOctets\
.1.3.6.1.2.1.31.1.1.1.6.2:ifHCInOctets\
.1.3.6.1.2.1.31.1.1.1.10.2:ifHCOutOctets\
.1.3.6.1.2.1.4.20.1.1.2.243.73.69:wanIP
attr TrafficUnifiWan room Unifi
attr TrafficUnifiWan snmp 1
attr TrafficUnifiWan snmpCommunity unifi
attr TrafficUnifiWan snmpVersion 2
attr TrafficUnifiWan stat 1
attr TrafficUnifiWan stateFormat Heute: Empfangen EmpfangenHeute GB;; Gesendet GesendetHeute
attr TrafficUnifiWan uptime 1
attr TrafficUnifiWan userReadings Downstream_MBits differential {sprintf("%.3f", ReadingsVal("TrafficUnifiWan","ifHCInOctets","-1")/1024/1024*8)},\
Upstream_MBits differential {sprintf("%.3f", ReadingsVal("TrafficUnifiWan","ifHCOutOctets","-1")/1024/1024*8)},\
RX_GB_WAN {sprintf("%.4f", ReadingsVal("TrafficUnifiWan","ifHCInOctets","-1")/1024/1024/1024)},\
TX_GB_WAN {sprintf("%.4f", ReadingsVal("TrafficUnifiWan","ifHCOutOctets","-1")/1024/1024/1024)},\
GesendetHeute monotonic {sprintf("%.2f", ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
GesendetWoche monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
GesendetMonat monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
GesendetJahr  monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
GesendetTotal monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0))},\
\
EmpfangenHeute monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
EmpfangenWoche monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
EmpfangenMonat monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
EmpfangenJahr  monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
EmpfangenTotal monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
\
GesamtHeute monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
                        ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
GesamtWoche monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
                        ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
GesamtMonat monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
                        ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
GesamtJahr monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
                        ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))},\
GesamtTotal monotonic {sprintf("%.2f",  ReadingsVal("TrafficUnifiWan","TX_GB_WAN",0) + \
                        ReadingsVal("TrafficUnifiWan","RX_GB_WAN",0))}


Viele​ Grüße​ Gisbert​
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Andy89 am 22 April 2020, 09:13:01
deswegen benötigst du die von mir (vor 2 Posts) angesprochene myUtils und eine at/doif Definition, welche die Tages-,Wochen-,Monats- und Jahreswerte an den ensprechenden Tagen kurz nach Mitternacht zurücksetzt.
Ob es sowas von Haus aus gibt, weiß ich nicht.
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Gisbert am 22 April 2020, 09:29:21
Zitat von: Andy89 am 22 April 2020, 09:13:01
deswegen benötigst du die von mir (vor 2 Posts) angesprochene myUtils und eine at/doif Definition, welche die Tages-,Wochen-,Monats- und Jahreswerte an den ensprechenden Tagen kurz nach Mitternacht zurücksetzt.
Ob es sowas von Haus aus gibt, weiß ich nicht.

Hallo Andy,

danke für die Erklärung; ich war zunächst mit der grundsätzlichen Inbetrienahme so sehr beschäftigt, dass ich deine Lösung gar nicht registriert hatte.

Dann muss ich mal sehen, welches der ausgespuckten Readings bzw. abgefragten Daten einem täglichen Verbrauch entspricht. Falls das jemand auf einfache Weise (ohne zusätzliche Definition in myUtils) gelöst haben sollte, dann bin ich daran interessiert.

Viele​ Grüße​ Gisbert​
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Gisbert am 23 April 2020, 10:57:28
Hallo Andy,

ich versuche dann den Tagesverbrauch (nur das interessiert mich) nach deiner Methode mit DOIF kurz nach Mitternacht und einer sub in myUtils umzusetzen.


Hallo Eisix,

du hattest vorgeschlagen das benötigte Attribut nach einem shutdown restart auf ebensolches zu triggern, anstatt Andys Lösung es jede Minute zu setzen. Hast du einen konkreten Vorschlag dazu, bevor ich das mit meiner trial-und-error-Methode hinbekomme?

Viele​ Grüße​ Gisbert​
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Eisix am 23 April 2020, 12:56:09
Das war Wernieman  :)

Wie es geht kann ich dir aus dem Stehgreif auch nicht sagen. Die Funktionalität gibt es auf jeden Fall.

Gruß
Eisix
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Eisix am 23 April 2020, 13:03:44

sowas in der Art nicht getestet

define SNMPinit notify global:INITIALIZED {attr TrafficUnifiWan snmp 1}
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Wernieman am 23 April 2020, 13:04:10
Weiß nur, das es geht .. aber aktuell nicht die Umsetzung ..

Da sollte "Doku lesen" helfen ... oder Forum suche ...

Edit:
Eisix war schneller ... das meinte ich
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Eisix am 23 April 2020, 13:51:53
Getestet


define SNMPinit notify global:INITIALIZED {fhem 'attr TrafficUnifiWan snmp 1'}


Gruß
Eisix
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Gisbert am 26 April 2020, 08:12:41
Hallo Andy,

da ich nur an dem tagesaktuellen Datenverkehr interessiert bin, habe ich das Zurücksetzen kurz nach Mitternacht durch folgende at-Definition gelöst:

defmod ResetUnifiTraffic at *00:00:05 {fhem ('setreading TrafficUnifiWan GesendetHeute 0;; setreading TrafficUnifiWan EmpfangenHeute 0')}

Eine eigene sub in 99_myUtils.pm hat sich dadurch erübrigt.

Viele​ Grüße​ Gisbert​
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Gisbert am 28 Juni 2020, 10:58:26
Hallo,

am Freitag, den 26.6. 23:30 hatte ich den UniFi-Controller geschrottet, was das Einspielen eines umfangreichen Backups, d.h. die root-Partition, auf meinem Fhem-Server, auf dem auch der UniFi-Controller läuft, nach sich gezogen hat.

Nach Einspielen eines aktuellen Fhem-Backups läuft anscheinend auch wieder alles rund, bis auf dieses Modul.
Ich habe diesen Thread rauf und runter gelesen und alles eingestellt, was es tun gibt, aber ich bekomme keine Daten rein, bzw. nicht die wesentlichen.
Das Attribut mibs fehlt, ich habe aber alle Pakete installiert.
Merkwürdig ist aber, dass einige Attribute beim Einspielen des Fhem-Backups verlorengegangen zu sein scheinen.

Kann jemand bitte drüber schauen, ich komme ohne Hilfe nicht mehr weiter.

Ein list:
Internals:
   CFGFN      ./FHEM/FritzboxUniFiAnwesenheit.cfg
   DEF        60 900 192.168.1.1
   FUUID      5e9de194-f33f-e986-11a7-5dc3a8ff5426d83c
   HAS_Net::SNMP 1
   HAS_Sys::Statistics 1
   HOST       192.168.1.1
   INTERVAL   60
   INTERVAL_FS 900
   NAME       TrafficUnifiWan
   NR         91
   STATE      download: 0.00 GB</br>
upload: 0.00 GB
   TYPE       SYSSTAT
   USE_SNMP   1
   interval_fs 540
   snmpCommunity public
   snmpVersion 2
   READINGS:
     2020-06-28 10:47:07   EmpfangenHeute  0
     2020-06-28 10:47:07   GesendetHeute   0
     2020-06-28 10:47:07   RX_GB_WAN       282.285074323416
     2020-06-28 10:47:07   TX_GB_WAN       25.2582701276988
     2020-06-26 23:30:23   desc            eth0
     2020-06-28 10:47:07   idle            95
     2020-06-26 23:30:23   ifHCInOctets    303101290592
     2020-06-26 23:30:23   ifHCOutOctets   27120861038
     2020-06-26 23:30:23   ifInOctets      2453579872
     2020-06-26 23:30:23   ifOutOctets     1351057262
     2020-06-26 23:30:23   ifSpeed         1000000000
     2020-06-28 10:47:07   load            0.03
     2020-06-26 23:30:23   name            ubnt
     2020-06-28 10:47:07   state           0.03 0.07 0.12
     2020-06-28 10:47:07   system          1
     2020-06-28 10:47:07   uptime          44 days, 12:56:39.87
     2020-06-28 10:47:07   user            1
     2020-06-26 23:30:23   wanIP           192.168.178.20
   filesystems:
   helper:
     bm:
       SYSSTAT_Attr:
         cnt        3
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        28.06. 10:42:55
         max        0.00328683853149414
         tot        0.00527596473693848
         mAr:
           set
           TrafficUnifiWan
           snmpCommunity
           public
       SYSSTAT_Get:
         cnt        23
         dmx        -1000
         dtot       0
         dtotcnt    0
         mTS        28.06. 10:29:56
         max        0.488898992538452
         tot        3.63300490379333
         mAr:
           HASH(0x558595dd9808)
           TrafficUnifiWan
           update
Attributes:
   armbiantemperature 1
   event-on-change-reading .*
   group      Performance
   icon       it_router
   room       Network
   snmp       1
   snmpCommunity public
   snmpVersion 2
   sortby     3
   stat       1
   stateFormat {'download: '.round(ReadingsVal($name,'EmpfangenHeute',''),2).' GB</br>
upload: '.round(ReadingsVal($name,'GesendetHeute',''),2).' GB'}
   uptime     1
   userReadings RX_GB_WAN {ReadingsVal($name,'ifHCInOctets','-1')/1024/1024/1024},
TX_GB_WAN {ReadingsVal($name,'ifHCOutOctets','-1')/1024/1024/1024},
GesendetHeute monotonic {ReadingsVal($name,'TX_GB_WAN',0)},
EmpfangenHeute monotonic {ReadingsVal($name,'RX_GB_WAN',0)}
   verbose    5


Viele Grüße Gisbert
Titel: Antw:Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP
Beitrag von: Gisbert am 28 Juni 2020, 14:40:08
Hallo zusammen,

mein Problem ist gelöst, wobei ich aber echt überfragt bin, warum es zu diesem "Aussetzer" beim Backup gekommen ist.

Ich hatte ein Fhem-Backup eingespielt mit einem Status, an dem der UniFi-Controller nicht lief.
Die Definition dieses Backups führte beim SYSSTAT-Modul zu Schwierigkeiten, die ich bei anderen Modulen nicht gesehen habe.
Ich hab mir dann ein etwas älteres Backup angeschaut, und die Definition von dort in mein laufendes Fhem übernommen.
Damit läuft das Modul und das Atrribut mibs ist auch wieder vorhanden.

Problem gelöst, aber warum die Definition des Devices sich bei ausgestiegenem Controller geändert hat - keine Ahnung.

Viele Grüße Gisbert