Monitorowanie routera za pomocą SNMP
Ostatnia zmiana: 2015-04-25 08:09

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.

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 set mini_snmpd.@mini_snmpd[0].disks=/mnt/sda1
    # uci set mini_snmpd.@mini_snmpd[0].interfaces=br-lan,wlan0
    # 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 czy perla umożliwia 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.