Template Cacti pour j-chkmail

Friday, February 10, 2012

J-chkmail est un moteur anti-spam développé par Jose-Marcio Martins da Cruz de l’école des Mines de Paris. Dans cet article, je vous propose un template pour l’outil de métrologie Cacti. Ce template vous permettra d’avoir les statistiques du filtre j-chkmail dans un unique graphique.

Pré-requis

Bien entendu pour utiliser ce template, il vous faut un serveur de messagerie utilisant le filtre j-chkmail. De plus, ce serveur devra disposer d’un démon SNMPd et celui ci doit être accessible par le serveur de métrologie. Pour récupérer les stats de j-chkmail, on utilise le binaire j-printstats, vérifiez qu’il est présent sur le système. Installation coté serveur anti-spam

Premièrement on va créer le script qui va mettre en forme et afficher les stats du filtre :

vim /usr/local/scripts/jchkmail-stats.pl

Copiez/collez le script suivant :

#!/usr/bin/perl

# On va multiplier les valeurs par x secondes
$ratio = "1";

open(PROCESS,"j-printstats -a |");

foreach (<PROCESS>) {

        # Remplacement des longues suites d'espaces par un seul
        $_ =~ s/(\ +)/ /g;

        # On traite la sortie de la commande j-printstats
       if ($_ =~ /^# (.*) : ([[:digit:]]*) ([[:digit:]]*)$/) {

                $label = lc($1);
                $value = $3*$ratio;
                # On remplace les espaces par des tirets ds le label
                $label =~ s/( )/-/g;

                print "$label:$value ";
        }
}

close(PROCESS);

On pense bien a mettre les droits d’exécutions :

chmod a+x /usr/local/scripts/jchkmail-stats.pl

Ensuite, on édite la configuration de snmpd :

vim /etc/snmp/snmpd.conf

A la fin du fichier de conf, on ajoute un “OID perso” :

exec    .1.3.6.1.4.1.2021.8.1.101.1    jchkmail-stats          /usr/local/scripts/jchkmail-stats.pl

Pour info, net-snmp sur Solaris ne prend pas en compte la déclaration de l’OID, sur Linux vous pouvez modifier l’OID si celui ci est déjà utilisé.

On redémarre le démon snmpd :

service snmpd restart

Installation coté serveur Cacti

On crée le script qui va interroger le serveur de messagerie. J’utilise un script plutôt qu’une requête snmp direct car on récupère un string contenant plusieurs valeurs numériques :

#!/bin/bash

if [[ $3 == "2"  ]]
then
        version="2c"
else
        version=$3
fi

output=`/usr/bin/snmpwalk -Oav -v$version -c $2 $1 .1.3.6.1.4.1.2021.8.1.101.1 | cut -d '"' -f 2 | tr -s -`

printf "$output"

Enfin, vous importez le fichier XML du template dans votre Cacti et vous l’instanciez pour votre serveur. cacti_graph_template_n2_-_j-checkmail_stats.xml

Aperçu du graphe généré

Tout va bien :

Un exemple d’attaque bloqué par le filtre :

Références

Geekanti-spamcactij-chkmailj-printstatsmétrologiesnmpd
Le contenu de ce site est sous licence Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)

Gamb

DIY

Réparer la fixation du support moteur

Beamer + Impressive : Des présentations qui claquent sa mère