Мониторинг почтового сервера

Примеры из жизни как развернуть и настроить систему мониторинга zabbix
Ответить
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Мониторинг почтового сервера

Сообщение RomA »

Задача:
Мониторить почтовый сервер - ну во первых всегда полезно знать как живёт сервер, а во вторых нагрузку хоть посмотрим

Решение:
Решение было найдено тут http://www.zabbix.com/wiki/howto/monito ... ingpostfix

Реализация:
Для начала поставим нужные нам программки...

Код: Выделить всё

www# cd /usr/ports/mail/pflogsumm
www# make install clean
www# cd /usr/ports/security/logcheck
www# make install clean
Затем создадим скриптик мониторинга и сделаем его исполняемым

Код: Выделить всё

www# touch /usr/local/etc/zabbix/zabbix-postfix.sh
www# chmod +x /usr/local/etc/zabbix/zabbix-postfix.sh
Скриптик у нас будет следующего содержания

Код: Выделить всё

#!/usr/local/bin/bash
 
MAILLOG=/var/log/maillog
DAT1=/tmp/zabbix-postfix-offset.dat
#DAT2=$(mktemp)
DAT2=/tmp/123
PFLOGSUMM=/usr/local/bin/pflogsumm
ZABBIX_CONF=/usr/local/etc/zabbix/zabbix_agentd.conf
  
function zsend {
/usr/local/bin/zabbix_sender -c $ZABBIX_CONF -k $1 -o $2
}
     
echo 
/usr/local/sbin/logtail -f$MAILLOG -o$DAT1 | $PFLOGSUMM -h 0 -u 0 --bounce_detail=0 --deferral_detail=0 --reject_detail=0 --no_no_msg_size --smtpd_warning_detail=0 > $DAT2
      
      zsend pfreceived `grep -m 1 received $DAT2|cut -f1 -d"r"`
      zsend pfdelivered `grep -m 1 delivered $DAT2|cut -f1 -d"d"`
      zsend pfforwarded `grep -m 1 forwarded $DAT2|cut -f1 -d"f"`
      zsend pfdeferred `grep -m 1 deferred $DAT2|cut -f1 -d"d"`
      zsend pfbounced `grep -m 1 bounced $DAT2|cut -f1 -d"b"`
      zsend pfrejected `grep -m 1 rejected $DAT2|cut -f1 -d"r"`
      zsend pfrejectwarnings `grep -m 1 "reject warnings" $DAT2|cut -f1 -d"r"`
      zsend pfheld `grep -m 1 held $DAT2|cut -f1 -d"h"`
      zsend pfdiscarded `grep -m 1 discarded $DAT2|cut -f1 -d"d"`
      zsend pfbytesreceived `grep -m 1 "bytes received" $DAT2|cut -f1 -d"b"`
      zsend pfbytesdelivered `grep -m 1 "bytes delivered" $DAT2|cut -f1 -d"b"`
       
rm $DAT2
Информацию мы желаем снимать каждые полчаса, потому добавляем в /etc/crontab следующую строку

Код: Выделить всё

*/30  *  *  *  *  root  /usr/local/etc/zabbix/zabbix-postfix.sh >/dev/null
Теперь осталось настроить сам zabbix - импортируем шаблон, прикрепляем его к хосту, на котором крутится почтовик и наслаждаемся :-)
Темплейт:
template_postfix.xml
(17.22 КБ) 815 скачиваний
Результат:
1.jpg
1.jpg (270.49 КБ) 8548 просмотров
Ефремов
Сообщения: 5
Зарегистрирован: 16 янв 2009, 14:28
Откуда: ЗАО "Курский комбинат хлебопродуктов"
Контактная информация:

Re: Мониторинг почтового сервера

Сообщение Ефремов »

У меня шаблон сразу не заработал. Пришлось вносить изменения
Тип элементов данных во всех ключах должен стоять "Zabbix траппер" (в шаблоне - "Zabbix agent")
Скрипт Pflogsumm округляет килобайты в "К", а мегабайты - в "М". Таким образом, на выходе получаем, например, не "100000" байт, а "100К", из-за чего значение перестает быть числовым.
Пришлось вносить изменения и в pflogsumm.pl
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Мониторинг почтового сервера (postfix)

Сообщение RomA »

Введение:
Год 2016. Мониторинг работы почтового сервера на базе postfix.

Задача:
Снимать количественные показатели работы почтовой системы.

Реализация:

Аттачем прилагаю шаблон для Заббикса, а так же скрипты. шаблон надо импортировать в ваш zabbix-сервер, ну а скрипты положить туда, куда это удобно вам. Я же положил в директорию кончиков, что бы не путаться.

Итак, для начала ставим с портов необходимые программы:

Код: Выделить всё

mail# cd /usr/ports/mail/pflogsumm
mail# make install clean
mail# cd /usr/ports/security/sudo
mail# make install clean
Теперь правим файл /usr/local/etc/sudoers - вставляем туда следующую строку:

Код: Выделить всё

zabbix ALL=(ALL) NOPASSWD: /bin/cat /var/log/maillog
Теперь создадим файл для работы скрипта. Причём сделаем его заведомо старой датой, типа последняя проверка была давно:

Код: Выделить всё

mail# sudo -u zabbix touch /tmp/zabbix.postfix.cache
mail# echo "" >> /tmp/zabbix.postfix.cache
mail# sudo -u zabbix touch -m -d '2000-01-01T01:01:01' /tmp/zabbix.postfix.cache
Давайте проверим работоспособность всего этого:

Код: Выделить всё

mail# sudo -u zabbix /usr/local/etc/zabbix3/zabbix/externalscripts/postfix.sh received
Вы должны увидеть циферку. Если не увидели - думайте где ошиблись или повторите запрос.

Про настройку zabbix-агента долго рассказывать не буду - тут всё тривиально, разве что необходимо увеличить таймаут выполнения скриптов и прикрутить макрос максимального числа сообщений в очереди {$MAIL_QUEUE}, от которого рассчитываются пару тригеров.
mailstat.zip
(7.13 КБ) 548 скачиваний
Итак, что же мы получим на выходе? на выходе получим показатели системы, которые будут сниматься раз в полчаса. Выглядеть это будет так:
p1.jpg
p2.jpg
Литература:
https://kamaok.org.ua/?p=1647
Ответить