Limiter les logs snmpd dans syslog

Testé sur Debian 5.0 Lenny et Ubuntu Server 8.04 LTS Hardy

Le démon snmpd est un grand bavard dans sa configuration par défaut sous Debian et Ubuntu, et on se retrouve rapidement avec un syslog envahi de messages à chaque connexion d’un client snmp :

Feb 25 10:40:06 monhost snmpd[2404]: Connection from UDP: [x.x.x.x]:42720
Feb 25 10:40:06 monhost snmpd[2404]: Connection from UDP: [x.x.x.x]:55670
Feb 25 10:40:06 monhost snmpd[2404]: Connection from UDP: [x.x.x.x]:56655
Feb 25 10:40:06 monhost snmpd[2404]: Connection from UDP: [x.x.x.x]:55557
Feb 25 10:40:06 monhost snmpd[2404]: Connection from UDP: [x.x.x.x]:46846
Feb 25 10:40:06 monhost snmpd[2404]: Connection from UDP: [x.x.x.x]:34805
Feb 25 10:40:06 monhost snmpd[2404]: Connection from UDP: [x.x.x.x]:49261
Feb 25 10:40:06 monhost snmpd[2404]: Connection from UDP: [x.x.x.x]:35418
Feb 25 10:40:06 monhost snmpd[2404]: Connection from UDP: [x.x.x.x]:35673

Pour clouer le bec à l’insolent, il faut aller modifier les options de démarrage SNMPDOPTS du démon dans /etc/default/snmpd :

SNMPDOPTS='-LS4d -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid '

L’option qui nous intéresse est -LS4d qui permet de n’écrire dans syslog qu’à partir du niveau warning. Un petit redémarrage du démon et le tour est joué.

A noter que la syntaxe semble différer selon les distributions, pour la vôtre ça sera peut-être -LS 4 d avec des espaces entre les arguments pour obtenir le résultat (erreur de syntaxe sous Debian).

Un extrait de la man page de snmpcmd sur les options de journalisation

(pour les niveaux d’alerte, pas pour la syntaxe des options, c’est différent de SNMPDOPTS)

The  mechanism  and destination to use for logging of warning and error messages can be controlled by passing  various  parameters  to  the  -L flag.
 
-Le    Log messages to the standard error stream.
 
-Lf FILE
Log messages to the specified file.
 
-Lo    Log messages to the standard output stream.
 
-Ls FACILITY
Log  messages  via syslog, using the specified facility ('d' for LOG_DAEMON, 'u' for LOG_USER, or '0'-'7' for LOG_LOCAL0  through LOG_LOCAL7).
 
There  are  also  "upper case" versions of each of these options, which allow the corresponding logging mechanism to be restricted  to  certain priorities of message.  Using standard error logging as an example:
 
-LE pri
will log messages of priority 'pri' and above to standard error.
 
-LE p1-p2
will log messages with priority between 'p1'  and  'p2'  (inclusive) to standard error.
 
For  -LF  and  -LS  the priority specification comes before the file or facility token.  The priorities recognised are:
 
0 or !  for LOG_EMERG,
1 or a for LOG_ALERT,
2 or c for LOG_CRIT,
3 or e for LOG_ERR,
4 or w for LOG_WARNING,
5 or n for LOG_NOTICE,
6 or i for LOG_INFO, and
7 or d for LOG_DEBUG.
 
Normal output is (or will be!) logged at a priority level of LOG_NOTICE
No votes yet.
Please wait...

4 réactions sur “Limiter les logs snmpd dans syslog”

  1. robert

    Ca marche impec !

    No votes yet.
    Please wait...
  2. Stonehamian

    Ça a réglé mon problème sous Debian Lenny. Merci!

    No votes yet.
    Please wait...
  3. Olorim

    Correction : ça marche, petite confusion entre le man snmpd et le man snmpcmd (ci-dessus), c’est bien -LS4d…

    No votes yet.
    Please wait...
  4. Olorim

    Pour le S majuscule, ça ne marche pas : c’est en minuscule d’après le man. De plus, j’ai beau faire, ça ne réduit pas du tout les log (pourtant, le ps -edf|grep -ie snmp retourne « /usr/sbin/snmpd -Ls4d -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid »).
    Il doit donc manquer une information quelque part…

    No votes yet.
    Please wait...

Laisser une réponse