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.

Niveaux radios wrt125
Graphique 24 dernières heures

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).

Radios Wrt113 sur deux ans
Graphique sur deux ans
A noter la chute en mai à la pousse des feuilles

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.