Problem mit SYSSTAT beim Auslesen von Mibs Werten über SNMP

Begonnen von Andy89, 14 April 2020, 10:04:57

Vorheriges Thema - Nächstes Thema

Andy89

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.
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Andy89

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...
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Wernieman

Du kannst auch auf "Neustart" Trickern und es setzen ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Gisbert

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​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Eisix

@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

Andy89

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.
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

Eisix

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

Gisbert

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​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Eisix

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

Gisbert

#9
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​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Gisbert

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​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

Wernieman

- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Eisix



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

Eisix

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

Andy89

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
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD