Kategoria: The Dude

The Dude + Ubiquity SNMP

Ostatnio upiększałem Dude aby pokazywał trochę więcej informacji niż standardowo jest widoczne dla urządzeń Ubiquity. Efekt widać na załączonym obrazku:

Informacje wyciągane po SNMP z urządzeń z firmware 6.x jednak większość OIDów jest dostępna na urządzeniach z serii A/B,G/AC. Potrzebujemy dodać MIB od Ubiquity do Dude, znaleźć go można na stronie ubnt.com.

Za każdą linijkę odpowiada inna funkcja. Funkcje dodajemy do etykiety urządzenia, lokalnie dla danej mapy w jej ustawieniach albo globalnie dla wszystkich etykiet.

Kolejno zamieszczam zawartość Code.

ubnt_airmax

if (oid_raw("1.3.6.1.4.1.41112.1.4.6.1.3.1")>1,
concatenate("AirMaxQ: ", oid("1.3.6.1.4.1.41112.1.4.6.1.3.1"),"%","/ AirMaxC: ", oid("1.3.6.1.4.1.41112.1.4.6.1.4.1"),"%"),"")
ubnt_cpuload

if (string_size(oid("1.3.6.1.4.1.10002.1.1.1.4.2.1.3.1")),
concatenate("CPU Load: ", oid("1.3.6.1.4.1.10002.1.1.1.4.2.1.3.1"),"%"),"")
ubnt_dfs

if (oid_raw("1.3.6.1.4.1.41112.1.4.1.1.5.1")=1,
"DFS: ON   ","DFS: OFF")
ubnt_kanal

if (string_size(oid("1.3.6.1.4.1.41112.1.4.1.1.4.1")),
concatenate("Kanał: ", oid("1.3.6.1.4.1.41112.1.4.1.1.4.1"),"/", oid("1.3.6.1.4.1.41112.1.4.5.1.14.1"),"MHz", " CC",oid("1.3.6.1.4.1.41112.1.4.1.1.3.1"),""),"")
ubnt_modulacje

if (string_size(oid("1.3.6.1.4.1.41112.1.4.5.1.9.1")),
concatenate("RX/TX: ", string_substring(oid("1.3.6.1.4.1.41112.1.4.5.1.9.1")/1000000,0,4),"Mbps","/", string_substring(oid("1.3.6.1.4.1.41112.1.4.5.1.10.1")/1000000,0,4),"Mbps"),"")
ubnt_sygnaly

if (string_size(oid("1.3.6.1.4.1.41112.1.4.5.1.5.1")),
concatenate("Sygnał: ", oid("1.3.6.1.4.1.41112.1.4.5.1.5.1"), "(", oid("1.3.6.1.4.1.41112.1.4.1.1.6.1"), "dBm)", "/", oid("1.3.6.1.4.1.41112.1.4.5.1.8.1"),"dBm", ""),"")
ubnt_eth0

if (oid_raw("1.3.6.1.2.1.2.2.1.5.2")=10000000,
"LAN Speed:   10MBit/s",if (oid_raw("1.3.6.1.2.1.2.2.1.5.2")=100000000,
"LAN Speed:   100MBit/s",if (oid_raw("1.3.6.1.2.1.2.2.1.5.2")=1000000000,
"LAN Speed:   1GBit/s","unknown")))
ubnt_ssid

if (string_size(oid("1.3.6.1.4.1.41112.1.4.5.1.2.1")),
concatenate("SSID: ", oid("1.3.6.1.4.1.41112.1.4.5.1.2.1"),""),"")
ubnt_stacje

if (string_size(oid("1.3.6.1.4.1.41112.1.4.5.1.15.1")),
concatenate("Stations: ", oid("1.3.6.1.4.1.41112.1.4.5.1.15.1")),"")

 

DudeRC i backup codzienny

Są admini którzy robią backup, i tacy którzy zaczną robić. Bardzo prawdziwe słowa, doceni je admin z tej drugiej grupy. Straciłem kiedyś bazę danych Mikrotikowego The Dude, normalna w świecie awaria sprzętu, dysk odmówił działania. Monitorowana sieć jest rozmiaru 300 hostów, syslog z kilkunastu urządzeń. Teraz The Dude stoi na maszynie wirtualnej, dysk jest na macierzy. Jednak przezorny zawsze ubezpieczony, w chwili wolnego czasu wolałem zabezpieczyć się przed jakimś błędem, który skasuje mi dane w programie. Zabezpieczenie przez awarią sprzętu to jedno, awaria przed utratą danych to drugie.

/system script
add name=Dude_backup owner=admin policy=\
 ftp,reboot,read,write,policy,test,password,sniff,sensitive source=":log in\
 fo \"Dude Backup Script by Marcin Morawiec\"\r\
 \n:global thisdate [/system clock get date]\r\
 \n:global datetimestring ([:pick \$thisdate 4 6] .\"-\" . [:pick \$thisdat\
 e 0 3] .\"-\" . [:pick \$thisdate 7 11])\r\
 \n\r\
 \n/dude export-db backup-file=\"Dude_\$datetimestring.backup\" \r\
 \n:log info \"Backup Please wait...!!!\"\r\
 \n:delay 30s\r\
 \n:log info \"Sending Dude Backup to FTP Server.............\"\r\
 \n/tool fetch address=10.0.0.10 src-path=\"Dude_\$datetimestring.backup\
 \" user=Dude password=zaq12wsxcde3 port=21 upload=yes ascii=no mode=ftp ds\
 t-path=\"Dude_\$datetimestring.backup\"\r\
 \n:delay 5s\r\
 \n:log info \"Deleting Backup Files\"\r\
 \n/file remove \"Dude_\$datetimestring.backup\"\r\
 \n:log info message=\"Successfully removed Temporary Backup Files\"\r\
 \n:delay 1\r\
 \n:log info \"Finished Backup Script...!!!!\""

Bazę danych na nowym The Dude w wersji na platformę ROS można optymalizować z racji tego, że jest to baza danych SQLite3, codziennie przed północą mam zaplanowaną optymalizację, a 30min później robiony jest export.

/system scheduler
add interval=1d name=Dude_vacuum-db on-event="/dude vacuum-db" policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive start-date=\
    apr/01/2016 start-time=23:00:00
add interval=1d name=Dude_Backup on-event="/system script run Dude_backup" \
    policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive \
    start-date=apr/01/2016 start-time=23:30:00

Wyedytować trzeba sobie tylko skrypt aby łączyć się do swojego serwera FTP, podać IP, użytkownika i hasło. Oraz do jakiego katalogu ma być wrzucany plik.