Monitorowanie routera za pomocą SNMP
Ostatnia zmiana: 2020-08-05 20:18
SNMP jest uniwersalnym sposobem do nadzoru i monitorowania m.in urządzeń sieciowych. Wiele routerów, przełączników czy urządzeń przemysłowych umożliwia odczyt parametrów korzystając właśnie z dobrodziejstw SNMP. W OpenWrt oczywiście dostępny jest odpowiedni demon. Dokument wyjaśnia jak można nadzorować pracę routera przy wykorzystaniu właśnie tego protokołu.
Poradnik sprawdzono na OpenWrt 19.07.
Instalacja
# opkg update
# opkg install mini_snmpd
Konfiguracja
Standardowo przez
uci lub w pliku /etc/config/mini_snmpd. Do ustawienia np.
# uci set mini_snmpd.@mini_snmpd[0].enabled=1
# uci add_list mini_snmpd.@mini_snmpd[0].disks=/mnt/sda1
# uci commit mini_snmpd
Uruchomienie
Zostaje jeszcze uruchomienie procesu
# /etc/init.d/mini_snmpd enable
# /etc/init.d/mini_snmpd start
To wszystko. Demon jest uruchomiony i zbiera statystyki, można więc przetestować jego działanie.
Odczyt parametrów routera
Aplikacji zbierających dane z SNMP jest bardzo dużo - zarówno pod systemy Windows jak i Linux. Nagois, Cacti, OpenNMS, collectd, mrtg, gkrellm czy chociaż by porty snmp dla php, pythona lub perla umożliwiają zintegrowanie monitoringu w istniejących systemach czy stworzenie nowego. Aby zaprezentować listę parametrów jakie można odczytać został użyty standardowy program
snmpwalk (dostępny w systemach linuksowych)
# snmpwalk -v 2c -c public 192.168.1.1 .iso
iso.3.6.1.2.1.1.1.0 = ""
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1
iso.3.6.1.2.1.1.3.0 = Timeticks: (4294947170) 497 days, 2:24:31.70
iso.3.6.1.2.1.1.4.0 = ""
iso.3.6.1.2.1.1.5.0 = STRING: "Gargoyle"
iso.3.6.1.2.1.1.6.0 = ""
iso.3.6.1.2.1.2.1.0 = INTEGER: 2
iso.3.6.1.2.1.2.2.1.1.1 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.1.2 = INTEGER: 2
iso.3.6.1.2.1.2.2.1.2.1 = STRING: "br-lan"
iso.3.6.1.2.1.2.2.1.2.2 = STRING: "wlan0"
iso.3.6.1.2.1.2.2.1.8.1 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.8.2 = INTEGER: 1
iso.3.6.1.2.1.2.2.1.10.1 = Counter32: 228264
iso.3.6.1.2.1.2.2.1.10.2 = Counter32: 5353571
iso.3.6.1.2.1.2.2.1.11.1 = Counter32: 3972
iso.3.6.1.2.1.2.2.1.11.2 = Counter32: 4193
iso.3.6.1.2.1.2.2.1.13.1 = Counter32: 0
iso.3.6.1.2.1.2.2.1.13.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.14.1 = Counter32: 0
iso.3.6.1.2.1.2.2.1.14.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.16.1 = Counter32: 4669698
iso.3.6.1.2.1.2.2.1.16.2 = Counter32: 146600
iso.3.6.1.2.1.2.2.1.17.1 = Counter32: 4313
iso.3.6.1.2.1.2.2.1.17.2 = Counter32: 1926
iso.3.6.1.2.1.2.2.1.19.1 = Counter32: 0
iso.3.6.1.2.1.2.2.1.19.2 = Counter32: 0
iso.3.6.1.2.1.2.2.1.20.1 = Counter32: 0
iso.3.6.1.2.1.2.2.1.20.2 = Counter32: 0
iso.3.6.1.2.1.25.1.1.0 = Timeticks: (1089720) 3:01:37.20
iso.3.6.1.4.1.2021.4.5.0 = INTEGER: 29500
iso.3.6.1.4.1.2021.4.6.0 = INTEGER: 3560
iso.3.6.1.4.1.2021.4.13.0 = INTEGER: 0
iso.3.6.1.4.1.2021.4.14.0 = INTEGER: 5620
iso.3.6.1.4.1.2021.4.15.0 = INTEGER: 3936
iso.3.6.1.4.1.2021.9.1.1.1 = INTEGER: 1
iso.3.6.1.4.1.2021.9.1.1.2 = INTEGER: 2
iso.3.6.1.4.1.2021.9.1.2.1 = STRING: "/tmp"
iso.3.6.1.4.1.2021.9.1.2.2 = STRING: "/tmp/usb_storage"
iso.3.6.1.4.1.2021.9.1.6.1 = INTEGER: 14752
iso.3.6.1.4.1.2021.9.1.6.2 = INTEGER: 0
iso.3.6.1.4.1.2021.9.1.7.1 = INTEGER: 14436
iso.3.6.1.4.1.2021.9.1.7.2 = INTEGER: 0
iso.3.6.1.4.1.2021.9.1.8.1 = INTEGER: 316
iso.3.6.1.4.1.2021.9.1.8.2 = INTEGER: 0
iso.3.6.1.4.1.2021.9.1.9.1 = INTEGER: 3
iso.3.6.1.4.1.2021.9.1.9.2 = INTEGER: 0
iso.3.6.1.4.1.2021.9.1.10.1 = INTEGER: 3
iso.3.6.1.4.1.2021.9.1.10.2 = INTEGER: 0
iso.3.6.1.4.1.2021.10.1.1.1 = INTEGER: 1
iso.3.6.1.4.1.2021.10.1.1.2 = INTEGER: 2
iso.3.6.1.4.1.2021.10.1.1.3 = INTEGER: 3
iso.3.6.1.4.1.2021.10.1.2.1 = STRING: "Load-1"
iso.3.6.1.4.1.2021.10.1.2.2 = STRING: "Load-5"
iso.3.6.1.4.1.2021.10.1.2.3 = STRING: "Load-15"
iso.3.6.1.4.1.2021.10.1.3.1 = STRING: "0.00"
iso.3.6.1.4.1.2021.10.1.3.2 = STRING: "0.00"
iso.3.6.1.4.1.2021.10.1.3.3 = STRING: "0.00"
iso.3.6.1.4.1.2021.10.1.4.1 = STRING: "1"
iso.3.6.1.4.1.2021.10.1.4.2 = STRING: "5"
iso.3.6.1.4.1.2021.10.1.4.3 = STRING: "15"
iso.3.6.1.4.1.2021.10.1.5.1 = INTEGER: 0
iso.3.6.1.4.1.2021.10.1.5.2 = INTEGER: 0
iso.3.6.1.4.1.2021.10.1.5.3 = INTEGER: 0
iso.3.6.1.4.1.2021.11.50.0 = Counter32: 2671
iso.3.6.1.4.1.2021.11.51.0 = Counter32: 1812
iso.3.6.1.4.1.2021.11.52.0 = Counter32: 7641
iso.3.6.1.4.1.2021.11.53.0 = Counter32: 1075492
iso.3.6.1.4.1.2021.11.59.0 = Counter32: 1667268
iso.3.6.1.4.1.2021.11.60.0 = Counter32: 1527741
iso.3.6.1.4.1.2021.11.60.0 = No more variables left in this MIB View (It is past the end of the MIB tree)
Zakończenie
Standardowym portem komunikacyjnym dla protokołu SNMP jest 161, więc jeżeli chcemy monitorować router "z internetu" należy pamiętać o otworzeniu tego portu od strony wan.