Suite à mon billet précédent, j'ai ressenti le besoin de suivre plus régulièrement l'évolution du spam traité par mon serveur. Utilisant déjà le logiciel MRTG pour suivre nombre d'indicateurs tel que le trafic réseau, la RAM consommée, la charge CPU etc.. ne me restait plus qu'a adapter le script log-report.sh.
Le script de mesure
Et voila qscan.sh:
#!/bin/sh
TYPE=$2
if [ "$TYPE" = "spam" ]; then
grep "here be a virus\|------ \| SA: yup, this smells \| q_s: Policy BLOCK" $1 \
| grep -v " message for " \
| sed -e "s/.* hits.* - message \(tagged\|quarantined\|deleted\|rejected\) .*$/Spam \1/" \
| grep "Spam" \
| wc -l
fi
if [ "$TYPE" = "policy" ]; then
grep "here be a virus\|------ \| SA: yup, this smells \| q_s: Policy BLOCK" $1 \
| grep -v " message for " \
| sed -e "s/^.* q_s: Policy BLOCK$/Policy blocked/" \
| grep "Policy blocked" \
| wc -l
fi
grep "here be a virus\|------ \| SA: yup, this smells \| q_s: Policy BLOCK" $1 \
| grep -v " message for " \
| sed -e "s/^.* Process .*$/Messages processed/" \
| grep "Messages processed" \
| wc -l
echo $TYPE
Ce script, très inspiré que log-report.sh, s'utilise avec deux paramètres :
- Le nom du fichier à analyser: /var/spool/qscan/qmail-queue.log
- Un paramètre : spam ou policy selon que vous souhaitez connaitre le nombre courriels classés comme spam ou d'autres ayant été éliminés selon la configuration du serveur.
Configuration de MRTG
Ne restait plus qu'à enregistrer ce fichier dans /etc/mrtg/qscan.sh et à configurer MRTG :
Target[localhost-spam]: `/etc/mrtg/qscan.sh /var/spool/qscan/qmail-queue.log.1 spam`
Options[localhost-spam]: gauge,noinfo, nopercent, growright, nobanner
Title[localhost-spam]: Message
MaxBytes[localhost-spam]: 1000000
YLegend[localhost-spam]: Messages traités
ShortLegend[localhost-spam]: mails
LegendI[localhost-spam]: Total Messages
LegendO[localhost-spam]: Spam
Legend1[localhost-spam]: Nombre de messages traités
Legend2[localhost-spam]: Nombre de spam
PageTop[localhost-spam]: <h1>Evolution du spam</h1>
A noter que le fichier que le fichier analysé est celui de la veille ce qui donne une statistique quotidienne. L'utilisation du fichier courant donnera une courbe croissante qui sera réinitialisé à chaque rotation des logs. Je n'ai pas réussi à configurer MRTG pour qu'il me calcule la variation entre deux mesures, c'est à dire le nombre de courriels traités toutes les 5 minutes.