Mam 802.11an 5GHz WiFi spoj mezi dvema domy. Na jedne strane je UBNT NanoBeam M5 16 (AP) a na druhe UBNT NanoBridge M5 (klient).
Obcas se stava, ze TX/RX Rate spadne ze 130/130Mbps na 54/54Mbps. Pomuze jenom restart zarizeni (asi problem nejnovejsiho firmware). Proto jsem chtel logovat aktualni hodnoty TX/RX Rate do syslogu na linuxovem serveru.
Z UBNT zarizeni se daji skvele tahat data pres SNMP v1. SNMP se zapina na zalozce Services:
V linuxu (aktualni Debian 8.2) pouzivam na ziskavani informaci program snmpwalk.
Zde je airMAX MIB tabulka pro Ubiquity zarizeni (pro pripad, ze by tabulka zanikla jsem 19.1.2016 vygeneroval PDF).
Syntaxe je nasledujici:
snmpwalk -c public -v 1 10.123.66.4 .1.3.6.1.4.1.41112.1.4
SNMP komunita public, SNMP verze 1, IP a OID. Vystup pro NanoBeam M5 vypada nasledovne:
root@server:/# snmpwalk -c public -v 1 10.123.66.4 .1.3.6.1.4.1.41112.1.4 iso.3.6.1.4.1.41112.1.4.1.1.1.1 = INTEGER: 5 iso.3.6.1.4.1.41112.1.4.1.1.2.1 = INTEGER: 1 iso.3.6.1.4.1.41112.1.4.1.1.3.1 = INTEGER: 203 iso.3.6.1.4.1.41112.1.4.1.1.4.1 = INTEGER: 5520 iso.3.6.1.4.1.41112.1.4.1.1.5.1 = INTEGER: 1 iso.3.6.1.4.1.41112.1.4.1.1.6.1 = INTEGER: 5 iso.3.6.1.4.1.41112.1.4.1.1.7.1 = INTEGER: 150 iso.3.6.1.4.1.41112.1.4.1.1.8.1 = INTEGER: 3 iso.3.6.1.4.1.41112.1.4.1.1.9.1 = STRING: "300 - 22 dBi" iso.3.6.1.4.1.41112.1.4.2.1.1.1.1 = INTEGER: 1 iso.3.6.1.4.1.41112.1.4.2.1.1.1.2 = INTEGER: 2 iso.3.6.1.4.1.41112.1.4.2.1.2.1.1 = INTEGER: 46 iso.3.6.1.4.1.41112.1.4.2.1.2.1.2 = INTEGER: 47 iso.3.6.1.4.1.41112.1.4.2.1.3.1.1 = INTEGER: 47 iso.3.6.1.4.1.41112.1.4.2.1.3.1.2 = INTEGER: 47 iso.3.6.1.4.1.41112.1.4.2.1.4.1.1 = INTEGER: 46 iso.3.6.1.4.1.41112.1.4.2.1.4.1.2 = INTEGER: 47 iso.3.6.1.4.1.41112.1.4.3.1.1.1 = INTEGER: 5 iso.3.6.1.4.1.41112.1.4.3.1.2.1 = INTEGER: 0 iso.3.6.1.4.1.41112.1.4.3.1.3.1 = INTEGER: 0 iso.3.6.1.4.1.41112.1.4.3.1.4.1 = INTEGER: 0 iso.3.6.1.4.1.41112.1.4.3.1.5.1 = INTEGER: 0 iso.3.6.1.4.1.41112.1.4.4.1.1.1 = INTEGER: 5 iso.3.6.1.4.1.41112.1.4.4.1.2.1 = INTEGER: 2 iso.3.6.1.4.1.41112.1.4.4.1.3.1 = INTEGER: 1000 iso.3.6.1.4.1.41112.1.4.5.1.1.1 = INTEGER: 5 iso.3.6.1.4.1.41112.1.4.5.1.2.1 = STRING: "MV_1" iso.3.6.1.4.1.41112.1.4.5.1.3.1 = INTEGER: 2 iso.3.6.1.4.1.41112.1.4.5.1.4.1 = Hex-STRING: 44 D9 E7 5C 52 FE iso.3.6.1.4.1.41112.1.4.5.1.5.1 = INTEGER: -47 iso.3.6.1.4.1.41112.1.4.5.1.6.1 = INTEGER: 49 iso.3.6.1.4.1.41112.1.4.5.1.7.1 = INTEGER: 98 iso.3.6.1.4.1.41112.1.4.5.1.8.1 = INTEGER: -88 iso.3.6.1.4.1.41112.1.4.5.1.9.1 = INTEGER: 130000000 iso.3.6.1.4.1.41112.1.4.5.1.10.1 = INTEGER: 130000000 iso.3.6.1.4.1.41112.1.4.5.1.11.1 = STRING: "WPA2" iso.3.6.1.4.1.41112.1.4.5.1.12.1 = INTEGER: 1 iso.3.6.1.4.1.41112.1.4.5.1.13.1 = INTEGER: 2 iso.3.6.1.4.1.41112.1.4.5.1.14.1 = INTEGER: 20 iso.3.6.1.4.1.41112.1.4.5.1.15.1 = Gauge32: 1 iso.3.6.1.4.1.41112.1.4.6.1.1.1 = INTEGER: 5 iso.3.6.1.4.1.41112.1.4.6.1.2.1 = INTEGER: 1 iso.3.6.1.4.1.41112.1.4.6.1.3.1 = INTEGER: 98 iso.3.6.1.4.1.41112.1.4.6.1.4.1 = INTEGER: 94 iso.3.6.1.4.1.41112.1.4.6.1.5.1 = INTEGER: 0 iso.3.6.1.4.1.41112.1.4.6.1.6.1 = INTEGER: 2 iso.3.6.1.4.1.41112.1.4.7.1.1.1.68.217.231.92.82.254 = Hex-STRING: 44 D9 E7 5C 52 FE iso.3.6.1.4.1.41112.1.4.7.1.2.1.68.217.231.92.82.254 = STRING: "ubnt1082" iso.3.6.1.4.1.41112.1.4.7.1.3.1.68.217.231.92.82.254 = INTEGER: -47 iso.3.6.1.4.1.41112.1.4.7.1.4.1.68.217.231.92.82.254 = INTEGER: -88 iso.3.6.1.4.1.41112.1.4.7.1.5.1.68.217.231.92.82.254 = INTEGER: 150 iso.3.6.1.4.1.41112.1.4.7.1.6.1.68.217.231.92.82.254 = INTEGER: 98 iso.3.6.1.4.1.41112.1.4.7.1.7.1.68.217.231.92.82.254 = INTEGER: 3 iso.3.6.1.4.1.41112.1.4.7.1.8.1.68.217.231.92.82.254 = INTEGER: 0 iso.3.6.1.4.1.41112.1.4.7.1.9.1.68.217.231.92.82.254 = INTEGER: 0 iso.3.6.1.4.1.41112.1.4.7.1.10.1.68.217.231.92.82.254 = IpAddress: 10.123.66.3 iso.3.6.1.4.1.41112.1.4.7.1.11.1.68.217.231.92.82.254 = INTEGER: 130000000 iso.3.6.1.4.1.41112.1.4.7.1.12.1.68.217.231.92.82.254 = INTEGER: 130000000 iso.3.6.1.4.1.41112.1.4.7.1.13.1.68.217.231.92.82.254 = Counter64: 3370352 iso.3.6.1.4.1.41112.1.4.7.1.14.1.68.217.231.92.82.254 = Counter64: 1422660 iso.3.6.1.4.1.41112.1.4.7.1.15.1.68.217.231.92.82.254 = Timeticks: (208300) 0:34:43.00 End of MIB root@server:/#
Je take mozne se dotazat pouze na jednu hodnotu (ubntWlStatSsid = .1.3.6.1.4.1.41112.1.4.5.1.2):
martin@server:~$ snmpwalk -c public -v1 10.123.66.4 .1.3.6.1.4.1.41112.1.4.5.1.2 iso.3.6.1.4.1.41112.1.4.5.1.2.1 = STRING: "MV_1" martin@server:~$
Na serveru s Debianem ziskavam data a posilam je do syslogu pomoci skriptu /usr/local/bin/ubnt_snmp:
#!/bin/bash UBNT1082_TX=`snmpwalk -c public -v 1 10.123.66.3 .1.3.6.1.4.1.41112.1.4.5.1.9 | cut -c44- # ubntWlStatTxRate` UBNT1082_RX=`snmpwalk -c public -v 1 10.123.66.3 .1.3.6.1.4.1.41112.1.4.5.1.10 | cut -c45- # ubntWlStatRxRate` UBNT1082_UPTIME=`snmpwalk -c public -v 1 10.123.66.3 1.3.6.1.2.1.1.3.0 | cut -c43- # sysUpTime` UBNT66_TX=`snmpwalk -c public -v 1 10.123.66.4 .1.3.6.1.4.1.41112.1.4.5.1.9 | cut -c44- # ubntWlStatTxRate` UBNT66_RX=`snmpwalk -c public -v 1 10.123.66.4 .1.3.6.1.4.1.41112.1.4.5.1.10 | cut -c45- # ubntWlStatRxRate` UBNT66_UPTIME=`snmpwalk -c public -v 1 10.123.66.4 1.3.6.1.2.1.1.3.0 | cut -c43- # sysUpTime` logger "UBNT_RXTX UBNT66: TX: $UBNT66_TX, RX: $UBNT66_RX, UPTIME: $UBNT66_UPTIME" logger "UBNT_RXTX UBNT1082: TX: $UBNT1082_TX, RX: $UBNT1082_RX, UPTIME: $UBNT1082_UPTIME"
automaticke spousteni kazdou minutu resim cronem:
root@server:/# crontab -l # Edit this file to introduce tasks to be run by cron. # m h dom mon dow command */1 * * * * /usr/local/bin/ubnt_snmp > /dev/null 2>&1 root@server:/#
vystup se posila do /var/log/syslog. Pro prehlednost loguji jeste do samostatneho souboru pomoci pravidla pro rsyslog v souboru /etc/rsyslog.d/99-ubnt.conf (nazev libovolny, jenom musi byt pripona .conf) s obsahem:
:msg,contains,"UBNT_RXTX " /var/log/ubnt.log
v aktualnim case se da log sledovat pomoci tailu s follow parametrem:
root@server:/# tail -f /var/log/ubnt.log Jan 16 17:15:01 server root: UBNT_RXTX UBNT66: TX: 117000000, RX: 130000000, UPTIME: 0:50:35.00 Jan 16 17:15:01 server root: UBNT_RXTX UBNT1082: TX: 130000000, RX: 117000000, UPTIME: 0:50:24.00 Jan 16 17:16:01 server root: UBNT_RXTX UBNT66: TX: 117000000, RX: 130000000, UPTIME: 0:51:35.00 Jan 16 17:16:01 server root: UBNT_RXTX UBNT1082: TX: 130000000, RX: 117000000, UPTIME: 0:51:25.00 Jan 16 17:17:02 server root: UBNT_RXTX UBNT66: TX: 130000000, RX: 130000000, UPTIME: 0:52:36.00 Jan 16 17:17:02 server root: UBNT_RXTX UBNT1082: TX: 130000000, RX: 130000000, UPTIME: 0:52:25.00
Na vse jsem vytvoril GIST, ve kterem budu pripadne i delat aktualizace.