Table des matières
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
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
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
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 |
