openwrt mini snmpd cacti
Тъй като използвам cacti за мониторинг на сървърите ми, исках да добавя и домашния рутер TP-LINK TL-WR841N/ND v7 който има инсталиран OpenWRT, да мога да следя трафика му. За целта инсталирах пакета mini-snmpd тъй като е доста малък на размери (сравнение със snmpd) а TP-Link-a като цяло няма кой знае колко място :
root@OpenWrt:~# df -h Filesystem Size Used Available Use% Mounted on rootfs 1.1M 632.0K 456.0K 58% /
Използвах стандартния конфигурационен файл намиращ се в /etc/config/mini_snmpd като промених community, contact и location-a.
До тук всичко добре, обаче открих че през сървъра не виждам да е отворен порт-а на snmp-то (UDP 161), а през локалната мрежа си е ок.
Тук се досетих че имах наскоро подобен проблем със SSH демона, и тогава го оправих, като добавих SSH в /etc/config/firewall.
Ето как изглеждаха нещата на практика:
nmap от сървъра:
alpha:~# nmap -sU -p 161 192.168.168.101 Starting Nmap 6.00 ( http://nmap.org ) at 2014-01-26 12:02 EET Nmap scan report for wifi (192.168.168.101) Host is up (0.00050s latency). PORT STATE SERVICE 161/udp closed snmp
nmap от вътрешната мрежа:
laptop ~ # nmap -sU -p 161 10.0.2.1 Starting Nmap 6.40 ( http://nmap.org ) at 2014-01-26 12:03 EET Nmap scan report for 10.0.2.1 Host is up (0.0012s latency). PORT STATE SERVICE 161/udp open|filtered snmp
Ето и какво промених за да оправя проблема:
добавих това в /etc/config/firewall:
#Allow snmp config rule option src wan option proto udp option dest_port 161 option target ACCEPT
И така в крайна сметка от сървъра нещата изглеждат вече така:
alpha:~# nmap -sU -p 161 192.168.168.101 Starting Nmap 6.00 ( http://nmap.org ) at 2014-01-26 12:18 EET Nmap scan report for wifi (192.168.168.101) Host is up (0.00061s latency). PORT STATE SERVICE 161/udp open|filtered snmp
Тук идва и момента в настройката на cacti-то. Нямам идея дали това е от самия демон mini-snmp или от нещо друго, но при стандартни настройки за Downed Device Detection да бъде SNMP Uptime, Cacti-то казва : SNMP Information SNMP error.
Четох в нета че този проблем се оправя като се сменя от SNMP Uptime на Ping, и Ping Method се слага на ICMP Ping.
Така при пуснато Verbose Query, резултата е следния:
Data Query Debug Information
+ Running data query [1]. + Found type = '3' [SNMP Query]. + Found data query XML file at '/usr/share/cacti/site/resource/snmp_queries/interface.xml' + XML file parsed ok. + Executing SNMP get for num of indexes @ '.1.3.6.1.2.1.2.1.0' Index Count: 3 + Executing SNMP walk for list of indexes @ '.1.3.6.1.2.1.2.2.1.1' Index Count: 3 + Index found at OID: 'iso.3.6.1.2.1.2.2.1.1.1' value: '1' + Index found at OID: 'iso.3.6.1.2.1.2.2.1.1.2' value: '2' + Index found at OID: 'iso.3.6.1.2.1.2.2.1.1.3' value: '3' + Located input field 'ifIndex' [walk] + Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.1' + Found item [ifIndex='1'] index: 1 [from value] + Found item [ifIndex='2'] index: 2 [from value] + Found item [ifIndex='3'] index: 3 [from value] + Located input field 'ifOperStatus' [walk] + Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.8' + Found item [ifOperStatus='Up'] index: 1 [from value] + Found item [ifOperStatus='Up'] index: 2 [from value] + Found item [ifOperStatus='Up'] index: 3 [from value] + Located input field 'ifDescr' [walk] + Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.2' + Found item [ifDescr='lo'] index: 1 [from value] + Found item [ifDescr='br-lan'] index: 2 [from value] + Found item [ifDescr='eth1'] index: 3 [from value] + Located input field 'ifName' [walk] + Executing SNMP walk for data @ '.1.3.6.1.2.1.31.1.1.1.1' + Located input field 'ifAlias' [walk] + Executing SNMP walk for data @ '.1.3.6.1.2.1.31.1.1.1.18' + Located input field 'ifType' [walk] + Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.3' + Located input field 'ifSpeed' [walk] + Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.5' + Located input field 'ifHighSpeed' [walk] + Executing SNMP walk for data @ '.1.3.6.1.2.1.31.1.1.1.15' + Located input field 'ifHwAddr' [walk] + Executing SNMP walk for data @ '.1.3.6.1.2.1.2.2.1.6' + Located input field 'ifIP' [walk] + Executing SNMP walk for data @ '.1.3.6.1.2.1.4.20.1.2'
Тоест всичко е ок! 🙂