Openwrt : extensions SNMPD
Sur un routeur sous Openwrt WhiteRussian RC6, en mode client (l’interface wifi est l’accès vers internet).
Installer le package snmpd
ipkg install snmpd
Autoriser l’accès au serveur snmp depuis l’interface wifi, dans /etc/firewall.user
WAN=$(nvram get wan_ifname)
…
# Allow snmp queries
iptables -t nat -A prerouting_rule -i $WAN -p udp –dport 161 -j ACCEPT
iptables -A input_rule -i $WAN -p udp –dport 161 -j ACCEPT
…
Déclarer les extensions dans le fichier /etc/snmp/snmpd.conf, le choix des OID .1.3.6.1.2.1.2.2.1.50. à .1.3.6.1.2.1.2.2.1.55. est totalement arbitraire, ce sont des OID libres dans le snmpd d’origine d’Openwrt (évolution à prévoir : aligner sur les OID utilisés dans RouterOS par souci de cohérence) :
…
exec .1.3.6.1.2.1.2.2.1.50. rssi_noise /usr/local/bin/snmpradio.sh 50
exec .1.3.6.1.2.1.2.2.1.51. txpower_db /usr/local/bin/snmpradio.sh 51
exec .1.3.6.1.2.1.2.2.1.52. txpower_qdb /usr/local/bin/snmpradio.sh 52
exec .1.3.6.1.2.1.2.2.1.53. rssi /usr/local/bin/snmpradio.sh 53
exec .1.3.6.1.2.1.2.2.1.54. noise /usr/local/bin/snmpradio.sh 54
exec .1.3.6.1.2.1.2.2.1.55. rate /usr/local/bin/snmpradio.sh 55
# Stats CPU et nombre de connexions (conntrack)
exec .1.3.6.1.2.1.1.9.1.5. stats_cpu /usr/local/bin/snmpradio.sh 10
exec .1.3.6.1.2.1.1.9.1.6. conntrack /usr/local/bin/snmpradio.sh 20
Il serait plus judicieux d’utiliser passtrough au lieu d’exec, ce sera pour une prochaine évolution …
Créer le répertoire /usr/local/bin (ou autre en modifiant les lignes ci-dessus)
mkdir -p /usr/local/bin
Y placer le script snmpradio.sh.
Nota : le package wl doit être installé pour le bon fonctionnement de ce script.
Activer le serveur snmpd
Renommer le script de démarrage :
mv /etc/init.d/snmpd /etc/init.d/S70snmpd
et démarrer :
/etc/init.d/S70snmpd start
Depuis la machine d’exploitation, tester les accès à ces nouveaux OID radios :
marc@cfk02:~ ->for IJ in 50 51 52 53 54 55 ; do snmpget -c public -v 1 wrt_name .1.3.6.1.2.1.2.2.1.$IJ.100.1; done
IF-MIB::ifEntry.50.100.1 = INTEGER: 24
IF-MIB::ifEntry.51.100.1 = INTEGER: 10
IF-MIB::ifEntry.52.100.1 = INTEGER: 40
IF-MIB::ifEntry.53.100.1 = INTEGER: 19
IF-MIB::ifEntry.54.100.1 = INTEGER: 5
IF-MIB::ifEntry.55.100.1 = INTEGER: 11
Connecter le tout dans Cacti, on obtient ce genre de graphique pour le suivi radio.
En vert le signal reçu par le client, en bleu clair le niveau reçu par l’AP (récupéré par ailleurs sur l’AP), en jaune le bruit; pour ces trois mesures ce sont les niveaux au dessus de -96dB.
En bleu le rate (en Mhz), en rouge le txpower (en dB).
Liens :
Sur la liste RAN, ‘humidité dans les fils d’antennes‘ et ‘snmp?‘ .
Page man du fichier de configuration snmpd.conf.
L’intégration dans Cacti est abordée dans le document Présentation monitoring du Net du Kermeur, pages 8 à 11.