La boîte à Tutoriels de Christopher PECAUD

Installer et configurer SNMP sur le Raspberry Pi

Laisser un commentaire

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 update

et

$sudo apt upgrade

Puis ensuite installez le paquet snmpd qui va ajouter à votre Raspberry Pi l’agent SNMP:

$sudo apt install snmpd

Ensuite il suffit d’installer le paquet snmp  qui va ajouter tous les outils nécessaires pour utiliser SNMP sur cette machine:

$sudo apt install snmp

III 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.1

Ensuite 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 systemonly

Pour tester la configuration il suffit de lancer la commande snmpwalk suivante :

snmpwalk -Os -c public -v 1 localhost

Vous devriez voir apparaître ceci à l’écran :

description image

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-downloader

il faut ensuite télécharger les mibs à jour pour votre Raspberry Pi avec la commande suivante :

$sudo download-mibs

Si 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-sensor

et 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-sensor

Puis remplacez la ligne rocommunity par celle-ci :

rocommunity  public default

Sauvegardez le fichier pour prendre en compte la modification et redémarrez le service :

$sudo systemctl restart snmpd

Maintenant affichez le contenu de l’OID avec cette commande :

$snmpwalk -c public -v2c localhost 1.3.6.1.2.1.25.1.8

Vous devriez obtenir un résultat semblable à celui-ci :

HOST-RESOURCES-MIB::hrSystem.8 = Gauge32: 48500

La 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 arm

Donc 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-Frequency

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

blog comments powered by Disqus
RapidWeaver Icon

Réalisé avec Rapidweaver