SNMP

Installation

Installation packages

sudo apt-get install snmp snmpd snmp-mibs-downloader

Configuration

Etendre SNMP

Editer le fichier /etc/default/snmpd pour ajouter « extend » après le -I après avoir enlevé le commentaire en début de ligne.

# snmpd options (use syslog, close stdin/out/err). SNMPDOPTS=’-Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I extend -smux,mteTrigger,mteTriggerConf -p /run/snmpd.pid’

Droits

Editer le fichier /etc/snmp/snmpd.conf pour donner les autorisation. On peut autoriser un range d'adresse IP, une seule adresse IP ou juste la boucle locale.

Exemple pour donner accès à une communauté public en lecture seule depuis la boucle locale et depuis un réseau particulier :

rocommunity public 127.0.0.1
rocommunity public 10.0.0.0/8

Attention à la ligne agentaddress qui peut restreindre l'écoute à l'interface locale. Modifier en :

agentAddress udp:161

Redémarrage du service

sudo systemctl restart snmpd

Vérification

On vérifiera que le service est à l'écoute sur les interfaces souhaitées :

netstat -ulnp ss -ulnp

Haut de page

Etendre SNMP avec ses scripts

Scripts

Le ou les scripts doivent être accessible et exécutable par l'utilisateur root.

Configuration

Fichier de configuration

Editer le fichier /etc/snmp/snmpd.conf pour ajouter les scripts désirés :

extend script1 /etc/snmp/scripts/script1.sh
extend script2 /etc/snmp/scripts/script2.sh

Redémarrage service

sudo systemctl restart snmpd

Vérification

snmpget -v2c -c public localhost 'NET-SNMP-EXTEND-MIB::nsExtendOutLine."script1".1' snmpget -v2c -c public localhost 'NET-SNMP-EXTEND-MIB::nsExtendOutLine."script2".1'

Interrogations

Commandes

snmpget : permet de récupérer la valeur d’un OID feuille.

snmpwalk : permet de récupérer toutes les valeurs d’un OID « noeud ».

snmptable : par rapport à snmpwalk, présentation sous forme de tableau.

snmpwalk -v2c -c public 127.0.0.1 NET-SNMP-EXTEND-MIB::nsExtendxxxxxx

Récupérer la ligne NET-SNMP- …. et faire la commande snmpget correspondante avec le NET-SNMP… entre '' :

snmpget -v2c -c public localhost 'NET-SNMP-EXTEND-MIB::.....'

Paramètre

avec nsExtendxxxxxx :

nsExtendCommand	The full path of the command binary (or script) to run
nsExtendArgs	Any command-line arguments for the command
nsExtendExecType	The mechanism used to invoke the command (1-exec, 2-shell)
nsExtendOutput1Table	A table of scripted extensions - configuration and (basic) output
nsExtendOutputFull	The full output from the command, as a single string
nsExtendOutNumLines	The number of lines of output (and hence the number of rows in nsExtendOutputTable relating to this particular entry)

Exemple

snmpget -v2c -c public localhost 'NET-SNMP-EXTEND-MIB::nsExtendOutputFull."script"'

Source

Source

Interroger par OID

Cela fonctionne en local mais pas en distant car il n'y a pas de MIB pour ces scripts. Il est donc intéressant de récupérer un OID pour une utilisation distante.

Récupération OID

snmptranslate -On 'NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."script1".1' .1.3.6.1.4.1.8072.1.3.2.3.1.1.18.98.109.101.50.56.48.95.116.101.109.112.101.114.97.116.117.114.101.1 snmptranslate -On 'NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."script2".1' .1.3.6.1.4.1.8072.1.3.2.3.1.1.15.98.109.101.50.56.48.95.112.114.101.115.115.105.111.110.1

Utilisation OID

Il suffit de retirer le premier .1 et d'ajouter iso.

snmpget -v2c -c public localhost iso.3.6.1.4.1.8072.1.3.2.3.1.1.18.98.109.101.50.56.48.95.116.101.109.112.101.114.97.116.117.114.101.1 snmpget -v2c -c public localhost iso.3.6.1.4.1.8072.1.3.2.3.1.1.15.98.109.101.50.56.48.95.112.114.101.115.115.105.111.110.1
Il semblerait qu'en distant il faille retirer le premier .1 et en distant le premier et le dernier.

Haut de page

Linux OID

Mémoire

OID

Taille totale du swap	.1.3.6.1.4.1.2021.4.3.0
Espace swap disponible	.1.3.6.1.4.1.2021.4.4.0
RAM totale dans la machine	.1.3.6.1.4.1.2021.4.5.0
RAM totale utilisée	.1.3.6.1.4.1.2021.4.6.0
RAM totale libre	.1.3.6.1.4.1.2021.4.11.0
RAM totale partagée	.1.3.6.1.4.1.2021.4.13.0
RAM total mis en cache	.1.3.6.1.4.1.2021.4.14.0
Total mémoire mis en cache	.1.3.6.1.4.1.2021.4.15.0

Interrogation

snmpget -v 2c -c public localhost .1.3.6.1.4.1.2021.4.6.0

Disque

Configuration

Ajouter dans le fichier /etc/snmp/snmpd.conf

disk / 10% disk /boot 10%

On ajoute les points de montage et le seuil d'espace libre que l'on souhaite (en % ou en taille).

Interrogation

snmptable -v 2c -c public localhost 1.3.6.1.4.1.2021.9
Chemin où le disque est monté	.1.3.6.1.4.1.2021.9.1.2.1
Chemin de l'appareil pour la partition	.1.3.6.1.4.1.2021.9.1.3.1
Taille totale du disque / partition (ko) (kBytes)	.1.3.6.1.4.1.2021.9.1.6.1
Espace disponible sur le disque k	.1.3.6.1.4.1.2021.9.1.7.1
Espace de réutilisation sur le disque	.1.3.6.1.4.1.2021.9.1.8.1
Pourcentage de l'espace utilisé sur le disque	.1.3.6.1.4.1.2021.9.1.9.1
Pourcentage des inodes utilises sur le disque	.1.3.6.1.4.1.2021.9.1.10.1
Système Uptime	.1.3.6.1.2.1.1.3.0

Divers

System Name	.1.3.6.1.2.1.1.5.0
System Description	.1.3.6.1.2.1.1.1.0

Source

http://debianhelp.co.uk/linuxoids.htm

Haut de page

Sources

https://geekpeek.net/extend-snmp-run-bash-scripts-via-snmp/

http://net-snmp.sourceforge.net/wiki/index.php/Tut:Extending_snmpd_using_shell_scripts

https://blog.cedrictemple.net/239-faire-des-requetes-snmp-en-ligne-de-commande-sous-linux/

Haut de page