Количество писем в очереди postfix

Общие вопросы по установке и настройке сервера Postfix.
Писать в этот форум могут только зарегистрированные пользователи.

Модераторы: prefer, alexandrnew, ALex_hha, Roman, Axel

Ответить
Melhior
Новичок
Новичок
Сообщения: 5
Зарегистрирован: 21 фев 2012, 10:25

Количество писем в очереди postfix

Сообщение Melhior » 21 фев 2012, 10:34

Есть какое-нибудь вменяемое решение помимо find |wc -l и mailq? Мне нужно просто вывести цифрой количество писем (в snmp). Вышеуказанные способы на большем количестве писем дают слишком большую задержку.

jey_ua
Новичок
Новичок
Сообщения: 1
Зарегистрирован: 29 фев 2012, 08:37

Сообщение jey_ua » 29 фев 2012, 10:55

попробуй так
postqueue -p | grep -c "*"

offspring
Новичок
Новичок
Сообщения: 1
Зарегистрирован: 11 авг 2008, 13:17

Сообщение offspring » 21 мар 2012, 17:53

Ну или так: mailq | grep Requests

Melhior
Новичок
Новичок
Сообщения: 5
Зарегистрирован: 21 фев 2012, 10:25

Сообщение Melhior » 26 мар 2012, 09:55

Никто видимо не читает первый пост :( Сказано же чтоб без mailq. На 80.000+ писем это дает настолько дикую задержку, что как вариант мониторинга количества писем в очереди совершенно не подходит.

v0f41k
Новичок
Новичок
Сообщения: 12
Зарегистрирован: 06 сен 2011, 08:54
Откуда: Киев

Сообщение v0f41k » 22 май 2012, 12:46

Присоединяюсь к вопросу топикстартера дабы не плодить одинаковые темы, т.к. нужно именно для мониторинга.
Задача - получить текущее кол-во сообщений в очереди без детализации и максимально быстро используя минимум ресурсов.
Пока хочу скриптом, но в идеале прикрутить к snmp и nagios.
различные варианты обработки полного вывода postqueue и mailq меня как и топикстартера не устраивают в связи с очень большой задержкой на очередях в тысячи и десятки тысяч писем.

Не поленился, прочитал маны по postqueue и mailq, но не нашёл подходящих ключей, может невнимательно читал?
http://www.postfix.org/postqueue.1.html
http://www.postfix.org/mailq.1.html
mailq судя по ману вообще сделан для совместимости с sendmail, родной для postfix именно postqueue

топикстартеру на всякий случай даю ссылку на схожую тему:
viewtopic.php?t=2861

postqueue -p | tail -1
работает не значительно быстрее чем просто mailq (не тратится время на вывод в консоль, но вычисления то происходят)

пока склоняюсь к написанию скрипта складывающего результаты

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

find /var/spool/postfix/active -type f | wc -l 
find /var/spool/postfix/deferred -type f | wc -l 
find /var/spool/postfix/hold -type f | wc -l 
find /var/spool/postfix/incoming -type f | wc -l
но как поведёт себя скрипт но большой нагрузке пока не проверял

Melhior
Новичок
Новичок
Сообщения: 5
Зарегистрирован: 21 фев 2012, 10:25

Сообщение Melhior » 22 июн 2012, 14:09

v0f41k писал(а): пока склоняюсь к написанию скрипта складывающего результаты

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

find /var/spool/postfix/active -type f | wc -l 
find /var/spool/postfix/deferred -type f | wc -l 
find /var/spool/postfix/hold -type f | wc -l 
find /var/spool/postfix/incoming -type f | wc -l
но как поведёт себя скрипт но большой нагрузке пока не проверял
Тормозить будет. Я пытался такой вариант подцепить к snmp, но к сожалению задержка чтения порой достигает секунд 10-15 - начинаются провалы в графиках из-за таймаута.

Melhior
Новичок
Новичок
Сообщения: 5
Зарегистрирован: 21 фев 2012, 10:25

Сообщение Melhior » 03 июл 2012, 09:20

Сам задал вопрос - сам сделал.

В крон вешается скрипт

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

*/10 * * * * root /opt/getmailq.sh 1>/dev/null 2>/dev/null 3>/dev/null
Проверка очереди раз в 10 минут


Сам скрипт /opt/getmailq.sh:

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

#!/bin/sh
# 

pm1=`find /var/spool/postfix/deferred -type f 2>/dev/null 3>/dev/null | wc -l`

/bin/echo "$pm1" > /opt/psfx.out
Последняя строчка в файле обязательна, делать перенаправление на весь скрипт нельзя - т.к. файл с началом скрипта сотрется - что делать нельзя - т.к. запишется он только после полной отработки скрипта. А в текущем примере время отсутсвие файла будет составлять тик.


snmpd.conf

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

rocommunity c14124

exec .1.3.6.1.4.1.2021.53.101.0 mailq /bin/cat /opt/psfx.out

В итоге - snmp не тормозит т.к. берутся данные из статического файла.

Ответить