====== 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 ---- [[all:bibles:linux:reseau:snmp|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 === [[https://cric.grenoble.cnrs.fr/Administrateurs/Outils/MIBS/?module=NET-SNMP-EXTEND-MIB&fournisseur=netsnmp|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. ---- [[all:bibles:linux:reseau:snmp|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]] ---- [[all:bibles:linux:reseau:snmp|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/]] ---- [[all:bibles:linux:reseau:snmp|Haut de page]]