LogsDans ce quatrième article dédié à Postfix et Dovecot, nous allons aborder la gestion des logs de notre serveur mail. Nous disposons à présent d’un serveur fonctionnel avec une poignée d’utilisateurs. Avant d’aller plus loin dans le peaufinage de la configuration, il est important de garder à l’œil tout ce qui se passe sous le capot de Postfix.

Toutes les opérations de Postfix sont écrites dans le fichier /var/log/maillog. Le problème avec ce fichier, c’est qu’il devient vite ingérable. À titre d’exemple, jetons un œil sur les logs d’un serveur mail de taille modeste hébergeant une petite vingtaine de comptes mail :

# sudo wc -l /var/log/maillog
190372 /var/log/maillog

En cinq jours, ce fichier contient plus de 190.000 entrées au total. Il nous faut donc trouver une solution pour gérer intelligemment tout ce fatras. Quelque chose qui permette de répondre rapidement à la question suivante :

« Qu’est-ce qui se passe sur mon serveur mail ? »

C’est là où Pflogsumm (Postfix Log Summary) entre en jeu. Pflogsumm est un outil écrit en Perl capable de générer des rapports détaillés depuis les logs de Postfix.

Red Hat Enterprise Linux et Rocky Linux fournissent Pflogsumm dans les dépôts officiels :

# dnf install -y postfix-perl-scripts

Pour tester le bon fonctionnement de Pflogsumm, commençons par générer un rapport à la volée pour la journée en cours :

# pflogsumm -d today /var/log/maillog | less
Postfix log summaries for Jan 17

Grand Totals
------------
messages

     41   received
     46   delivered
      0   forwarded
      0   deferred
      0   bounced
     42   rejected (47%)
      0   reject warnings
      0   held
      0   discarded (0%)

   1944k  bytes received
   1953k  bytes delivered
     20   senders
     20   sending hosts/domains
     11   recipients
      1   recipient hosts/domains

Faisons la même chose pour la veille :

# pflogsumm -d yesterday /var/log/maillog | less
Postfix log summaries for Jan 16

Grand Totals
------------
messages

    369   received
    482   delivered
      0   forwarded
      5   deferred  (11  deferrals)
      0   bounced
     75   rejected (13%)
      0   reject warnings
      0   held
      0   discarded (0%)

  85433k  bytes received
  95478k  bytes delivered
    134   senders
     99   sending hosts/domains
     63   recipients
     26   recipient hosts/domains

Pflogsumm accepte une série d’options décrites en détails dans la page de manuel pflogsumm(1). Pour une aide plus succincte, invoquez pflogsumm avec l’option --help.

Dans l’exemple ci-dessous, je génère un rapport en commençant par les problèmes de traitement, notamment les rejets de messages :

# pflogsumm -d yesterday --problems_first --rej_add_from \
  --verbose_msg_detail -q /var/log/maillog | less

À partir de là, je peux envisager la création d’une tâche automatique pour la génération d’un rapport quotidien par mail. Pour éviter de me retrouver avec une commande à rallonge dans mon fichier crontab, je commence par éditer un petit script shell maillogs.sh comme ceci :

#!/bin/bash
#
# maillogs.sh

SERVER="sd-155842.dedibox.fr"
PFLOG="/usr/sbin/pflogsumm"
EMAIL="info@microlinux.fr"

# Check if Pflogsumm is installed
if [[ ! -x ${PFLOG} ]]
then
  echo 'Pflogsumm is not installed on this system.' >&2
  exit 1
fi

# Generate daily report
${PFLOG} -d today -q /var/log/maillog \
  --rej_add_from --verbose_msg_detail |
  mail -s "Postfix log summary for ${SERVER}" ${EMAIL}

exit 0

Je range le script dans un endroit approprié comme ~/bin, je définis les permissions appropriées et je le teste manuellement :

# ./maillogs.sh

Je jette un œil dans ma boîte mail pour vérifier si j’ai bien reçu le rapport généré :

Pflogsumm

Une fois que tout fonctionne comme prévu, il ne me reste plus qu’à définir une tâche automatique :

# crontab -e
# Postfix logs
59 23 * * * /root/bin/maillogs.sh 1> /dev/null

La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 


0 commentaire

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *