Go to content Go to menu Go to search

Собираем статистику amavisd (SpamAssassin) в zabbix

Постановка задачи

Есть почтовый сервер, на котором работает антиспам на базе amavis. Необходимо собирать статистику по количеству зафиксированного спама.

Решение

Статистику будем собирать путем парсинга лога.
Создадим на сервере скрипт, который будет вызываться заббиксом раз в минуту, находить в логе все записи, о найденном спаме/чистых письмах за прошедшую минуту и выдавать заббиксу число найденных писем.

Таким образом в заббиксе будет два элемента данных:

  1. Количество “чистых” писем в минуту
  2. Количество “спамовых” писем в минуту

Сначала сделаем так, что бы amavisd писал лог в отдельный файл

Для этого в amavisd.conf добавим:

$log_level = 1;
$do_syslog = 1; 
$syslog_facility = 'local6';

в /etc/syslog/syslog.conf:

local6.*                /var/log/amavisd.log

рестартуем syslog:

service syslogd restart

Создаем скрипт

Скрипт /etc/zabbix/scripts/amavis_stat_zabbix в качестве параметра принимает слово, которое будет искать в логе. Например SPAM или CLEAN.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#! /bin/bash
LOGFILE="/var/log/amavisd.log"

SEARCH_PATTERN=$1

export LANG=us
MINUTE=`date +%M`
HOUR=`date +%H`
MONTH=`date +%b`

let HOUR=10#$HOUR-1+1

if [ $MINUTE -gt 0 ]; then let MINUTE=10#$MINUTE-1; else MINUTE=59; let HOUR=10#$HOUR-1; fi
if [ $HOUR -lt 0 ]; then let HOUR=HOUR+24; fi

if [ $MINUTE -lt 10 ]; then if [ $MINUTE != "00" ]; then MINUTE=0$MINUTE; fi fi
if [ $HOUR -lt 10 ]; then HOUR=0$HOUR; fi

cat $LOGFILE | grep -P "$MONTH .+ $HOUR:$MINUTE:.*$SEARCH_PATTERN.*Hits:" | wc -l

Настраиваем zabbix

Создаем конфиг для Zabbix

echo 'UserParameter=amavisd[*],/etc/zabbix/scripts/amavis_stat_zabbix "$1"' > /etc/zabbix/zabbix_agentd.d/userparameter_amavisd.conf

Рестартуем zabbix

service zabbix restart

Настраиваем элементы данных в zabbix:


Элемент для подсчета чистых (не спамовых) писем:

Элемент для подсчета спамовых писем:
enlarge enlarge

Настраиваем график

Результат:
enlarge enlarge


при публикации материалов с данного сайта обратная ссылка на сайт обязательна.
valynkin.ru © no rights reserved