Vous êtes ici:

Menu

Configuration SNMP sous Debian Stretch

IconeSNMP
Debian Stretch utilise systemd pour le démon SNMPD. Jusque-là, pas de souci, systemd fait le job.


Voici les principales commandes pour l'agent SNMP :


  • Activation au démarrage : systemctl enable snmpd,
  • Démarrage du SNMP : systemctl start snmpd,
  • Redémarrage du SNMP pour prendre en compte une modification de configuration : systemctl start snmpd,
  • Arrêt du SNMP : systemctl stop snmpd,
  • Etat du SNMP : systemctl status snmpd.
Dans mes articles sur le SNMP, j'avais évoqué la verbosité des logs de l'agent SNMP. La lecture du fichier syslog affiche de nombreux logs pas très intéressants sur la connectivité SNMP entre le poller et les équipements supervisés.
tail -f /var/log/syslog

Apr 21 19:41:11 debian97 snmpd[17716]: Connection from UDP: [127.0.0.1]:43147->[127.0.0.1]:161
Apr 21 19:41:11 debian97 snmpd[17716]: Connection from UDP: [127.0.0.1]:43147->[127.0.0.1]:161
Apr 21 19:41:11 debian97 snmpd[17716]: Connection from UDP: [127.0.0.1]:43147->[127.0.0.1]:161
Apr 21 19:41:11 debian97 snmpd[17716]: Connection from UDP: [127.0.0.1]:43147->[127.0.0.1]:161
Apr 21 19:41:11 debian97 snmpd[17716]: Connection from UDP: [127.0.0.1]:43147->[127.0.0.1]:161
Apr 21 19:41:11 debian97 snmpd[17716]: Connection from UDP: [127.0.0.1]:43147->[127.0.0.1]:161

J'avais indiqué qu'il était possible de réduire les logs en utilisant la commande suivante dans le fichier /etc/default/snmp
SNMPDOPTS='-LS4d -Lf /dev/null -u snmp -g snmp -I -smux,mteTrigger,mteTriggerConf -p /run/snmpd.pid'

Mais il est évident que la configuration de Debian Stretch ne prend pas en compte cette configuration. La preuve en lançant cette commande (on peut aussi utiliser systemctl status snmpd)
ps aux  grep snmp
root 8433 0.0 0.0 12776 916 pts/1 R+ 19:50 0:00 grep snmp
root 17709 0.0 0.4 66008 8340 ? Ss 13:02 0:00 /usr/sbin/snmptrapd -Lsd -f
Debian-+ 17716 0.0 0.5 58868 11112 ? Ss 13:02 0:13 /usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f

Le paramètre pour la verbosité des logs est s au lieu de S4. En regardant de plus près la configuration du démon snmpd :
vi /lib/systemd/system/snmpd.service

Extrait du fichier
[Service]
Environment="MIBSDIR=/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp"
Environment="MIBS="
Type=simple
ExecStartPre=/bin/mkdir -p /var/run/agentx
ExecStart=/usr/sbin/snmpd -Lsd -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux,mteTrigger,mteTriggerConf -f
ExecReload=/bin/kill -HUP $MAINPID

On constate que cette configuration n'utilise plus le fichier /etc/default/snmpd. On va améliorer le fonctionnement du démon snmpd, en ajoutant cette ligne dans la section Service du fichier /lib/systemd/system/snmpd.service
EnvironmentFile=/etc/default/snmpd

On modifie la ligne dans /etc/default/snmpd
SNMPDOPTS='-LS4d -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux,mteTrigger,mteTriggerConf -f'

On modifie la ligne dans /lib/systemd/system/snmpd.service
ExecStart=/usr/sbin/snmpd $SNMPDOPTS

Il nous reste à accepter les modifications dans systemd
systemctl daemon-reload

On redémarre le démon SNMP
systemctl restart snmpd

On vérifie la prise en compte de la modification
systemctl status snmpd
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
Loaded: loaded (/lib/systemd/system/snmpd.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2019-04-21 23:50:42 CEST; 3s ago
Process: 2154 ExecStartPre=/bin/mkdir -p /var/run/agentx (code=exited, status=0/SUCCESS)
Main PID: 2157 (snmpd)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/snmpd.service
└─2157 /usr/sbin/snmpd -LS4d -Lf /dev/null -u Debian-snmp -g Debian-snmp -I -smux mteTrigger mteTriggerConf -f

avril 21 23:50:42 debian97 systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon....
avril 21 23:50:42 debian97 systemd[1]: snmpd.service: Ignoring invalid environment assignment 'export MIBDIRS=/usr/share/mibs': /etc/default/snmpd
avril 21 23:50:42 debian97 systemd[1]: snmpd.service: Ignoring invalid environment assignment 'export MIBS=ALL': /etc/default/snmpd
avril 21 23:50:42 debian97 systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon..

Le paramètre S4 permettant une réduction des logs est bien pris en compte. On peut constater la non prise en compte des paramètres MIBDIRS et MIBS du fichier /etc/default/snmpd.
blog comments powered by Disqus
 Vous êtes ici: