Spamassassin + Mailgraph

Sziasztok

Debian 6 alatt mit kell módosítani ahhoz, hogy a mailgraph a spamek számát is mérje és grafikonon rajzolja?

Alapból nem méri, csak a többit (küldött, fogadott, visszadobott)
Kb ezt a néhány sornyi változtatást találom mindenhol, de hasztalan: http://permalink.gmane.org/gmane.comp.db.rrdtool.mailgraph/136

Spamassassin a /var/log/mail.log fájba logol és ha a spamet talál a következőt írja:

86425:Mon Oct  8 04:10:09 2012 [6219] info: spamd: identified spam (24.3/5.0) for user at domain.hu:1002 in 1.3 seconds, 1727 bytes.

Hol a gond?

Előre is köszönöm.

Hozzászólások

Az archívum kedvéért:

A /usr/sbin/mailgraph fájl tartalmát alaposabban megnézve találunk egy ilyen részt:


        if($self->{arrayref}) {
            $self->{_last_data}{$host} = [
                $time,  # 0: timestamp
                $host,  # 1: host
                $1,     # 2: program
                $2,     # 3: pid
                $6,     # 4: text
                ];
        }
        else {
            $self->{_last_data}{$host} = {
                timestamp => $time,
                host      => $host,
                program   => $1,
                pid       => $2,
                msgid     => $3,
                facility  => $4,
                level     => $5,
                text      => $6,
            };

Ezek elég konkrétan meghatározzák a log lehetséges szintaktikáját, ennél fogva a topiknyitó hozzászólásomban lévő logbejegyzés itt bukott el.
Az SA-nak a /etc/default/spamassassin fájlban lehet megadni -s kapcsolóval, hogy hova logoljon. Ez alapból nálam /var/log/mail.log volt.
Ezen leírás alapján átírtam local5 -re (nyílván bármi más lehet) és az rsyslogd.conf-ba felvettem egy sort: local5.*; /var/log/mail.log
(+ a messagesnél local5.none).
Így a syslogon keresztül üzen a mail.log-ba, melynek eredménye a többivel megegyező szintakt.

47:Oct 12 11:40:06 host spamd[20788]: spamd: identified spam (19.6/5.0) for user at domain.hu:1002 in 1.6 seconds, 23202 bytes.

A /usr/local/mailgraph -ban még át kellett írni a következőt:


        elsif($prog eq 'spamd') {
                #spamd
                #if($text =~ /^(?:spamd: )?identified spam/) {
                #if($text =~ /identified spam/) {
                if($text =~ /^spamd: identified spam/) {
                        event($time, 'spam');
                }

A fenti sorokkal már korábban is próbálkoztam, de a hibás logolás miatt hasztalan volt.
Ezúttal viszont db számra pontosan számolja és rajzolja az azonosított spameket.