Installer et configurer SNMP sur le Raspberry Pi
SOMMAIRE
I Introduction
II Installation des paquets
III Configuration
IV Conclusion
I Introduction
Dans ce document nous allons voir comment installer et configurer SNMP sur votre Raspberry Pi.
Nous verrons ensuite comment récupérer les OIDs pour pouvoir récupérer des données essentielles sur votre Raspberry Pi.
II Installation des paquets
Tout d’abord effectuer une mise à jour du système :
$sudo apt updateet
$sudo apt upgradePuis ensuite installez le paquet snmpd qui va ajouter à votre Raspberry Pi l’agent SNMP:
$sudo apt install snmpdEnsuite il suffit d’installer le paquet snmp qui va ajouter tous les outils nécessaires pour utiliser SNMP sur cette machine:
$sudo apt install snmpIII Configuration
Le fichier de configuration du service SNMP se trouve à cet endroit : /etc/snmp/snmpd.conf
Il contient quelques informations importante qu’il faut vérifier si on veut que le service fonctionne correctement.
Par exemple la propriété « agentadress » qui doit avoir pour valeur pour que l’agent fonctionne localement:
agentaddress 127.0.0.1,[::1]On peut indiquer le niveau de visualisation que l’on souhaite voir avec la ligne :
view systemonly included .1.3.6.1.2.1.1
view systemonly included .1.3.6.1.2.1.25.1Ensuite on définit une un community name que l’on définit en lecture seule et que l’on utilisera ensuite pour interroger l’agent SNMP :
rocommunity public default -V systemonlyPour tester la configuration il suffit de lancer la commande snmpwalk suivante :
snmpwalk -Os -c public -v 1 localhostVous devriez voir apparaître ceci à l’écran :

Une liste d’OID et de valeurs associées pas très parlantes à vue d’œil, je le conçois.
Nous devons installer le paquet snmp-mibs-downloader :
$sudo apt install snmp-mibs-downloaderil faut ensuite télécharger les mibs à jour pour votre Raspberry Pi avec la commande suivante :
$sudo download-mibsSi vous utilisez la même commande snmpwalk que précédemment les résultats sont un peu plus explicites.
Si vous souhaitez rajouter des OIDs personnalisées à la MIB de votre Raspberry Pi il va falloir écrire vos propres scripts dans le dossier /usr/local/bin et modifier en conséquence le fichier snmpd.conf en conséquence.
Par exemple pour récupérer la température interne de votre Raspberry Pi, on sait qu’on peut récupérer cette valeur dans le fichier /sys/class/thermal/thermal_zone0/temp
Il suffit donc d ‘éditer le fichier SNMP-CPU-Temperature-sensor comme ceci :
$sudo nano /usr/local/bin/SNMP-CPU-Temperature-sensoret d’ajouter les lignes de code suivantes :
#!/bin/bash
if [ "$1" = "-g" ]; then
echo 1.3.6.1.2.1.25.1.8
echo gauge
cat /sys/class/thermal/thermal_zone0/temp
fi
exit 0 Vous devez dans un premier temps indiquer l’OID, puis le type de l’objet, et ensuite la valeur retournée par la lecture du fichier local.
Ce n’est pas tout il va falloir maintenant mettre à jour le fichier de configuration pour que ce fichier soit pris en compte par l’agent.
Éditez de nouveau le fichier snmpd.conf et ajoutez cette ligne à la fin du fichier :
pass 1.3.6.1.2.1.25.1.8 /bin/sh /usr/local/bin/SNMP-CPU-Temperature-sensorPuis remplacez la ligne rocommunity par celle-ci :
rocommunity public defaultSauvegardez le fichier pour prendre en compte la modification et redémarrez le service :
$sudo systemctl restart snmpdMaintenant affichez le contenu de l’OID avec cette commande :
$snmpwalk -c public -v2c localhost 1.3.6.1.2.1.25.1.8Vous devriez obtenir un résultat semblable à celui-ci :
HOST-RESOURCES-MIB::hrSystem.8 = Gauge32: 48500La valeur est en °C pour ma part est elle est égale à 48,5°C au moment de la requête auprès de l’agent.
Prenons un autre exemple, essayons de créer une OID pour obtenir la valeur de la fréquence du CPU à un moment donné.
Nous avons plusieurs façon d’obtenir cette donnée, soit en ouvrant le fichier local /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
soit en exécutant cette commande :
$vcgencmd measure_clock armDonc il va falloir créer un nouveau fichier SNMP-CPU-Frequency
Copiez-collez le code bash de l’ancien script et modifiez juste les lignes concernant l’OID et l’ouverture du fichier, le script devrait ressembler à ceci :
#!/bin/bash
if [ "$1" = "-g" ]; then
echo 1.3.6.1.2.1.25.1.9
echo gauge
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
fi
exit 0
Editez maintenant le fichier de configuration de l’agent SNMP et ajouter la ligne suivante au dessous de la ligne pass précédente:
pass 1.3.6.1.2.1.25.1.9 /bin/sh /usr/local/bin/SNMP-CPU-FrequencySauvegardez le fichier et relancez le service de l’agent comme précédemment.
Vous savez maintenant comment ajouter vous même des OIDs personnalisées à la MIB de votre Raspberry Pi.
IV Conclusion
Dans ce document nous avons vu comment installer les outils snmp en local sur votre Raspberry Pi et comment installer et paramétrer un agent SNMP local pour récupérer des informations sur votre petit ordinateur. Il nous restera plus qu’à tester cette configuration dans de futurs tutoriels pour récupérer ces informations à partir d’un code Python ou Pascal Objet.
