Постоянно падает Sendmail

SapperSD

Создатель
Регистрация
27 Дек 2009
Сообщения
18
Реакции
1
Постоянно падает Sendmail. Многократно гуглил, но так и не нашел причины падания.
Падает с интервалом 2-15 дней по непонятным мне причинам. Помогите разобраться в чем причины падания.
На сервере поднят днс. с зоной mydomain.ru, также доступен как mydomain.infopac.ru
В /var/spool/mqueue лежит 130 писем, некоторые уже недельной давности.
FreeBSD 6.2-RELEASE
220 *.*.ru ESMTP Sendmail 8.13.8/8.13.8;
ClamAV 0.92.1/10008/Tue Nov 10 14:31:08 2009
SpamAssassin Server version 3.2.4
running on Perl 5.8.8
with SSL support (IO::Socket::SSL 1.13)
with zlib support (Compress::Zlib 2.008)
cucipop v1.31
SendmailAnalyzer v2.1
Настройки SendMail'а:
 

e_dmitriy

Создатель
Регистрация
23 Янв 2010
Сообщения
14
Реакции
5
Sendmail именно падает или просто перестаёт обрабатывать почтовую очередь?
 

SapperSD

Создатель
Регистрация
27 Дек 2009
Сообщения
18
Реакции
1
Выкрутил logLevel.
sendmail -O LogLevel=98 -bd

подох быстро. /etc/rc.d/sendmail start в Jan 27 09:22:06
telnet на 25 порт не цепляется. ps -aux|grep sendmail вроде говорит, что ничего нет.
Почему же он падает то?!


Добавлено через 17 минут
Да, кстати. /var/spool/mqueue пуст в этот раз. Все остальные логи ничего существенного не содержат. Вообще, может разве сдохнуть процесс и при этом ни в одном из логов не быть записи об этом?! Чуствую, меня скоро четвертуюет начальство, если мыло-сервер не зарабоает стабильно. :die:
 

e_dmitriy

Создатель
Регистрация
23 Янв 2010
Сообщения
14
Реакции
5
Попробуй вот что:
1.
Сделай вывод всех логов в единый файл. Для этого из под root:
# touch /var/log/all.log
# chmod 0600 /var/log/all.log

Далее редактируешь /etc/syslog.conf, находишь в нём строчку вида:
#*.* /var/log/all.log
и раскомментируешь её. Сохраняешь и затем перезапускаешь syslogd:

# killall -1 syslogd

На выходе имеешь файл all.log, в который будет сваливаться вся информация о работе системы. Обрати внимание, потом, в целях безопасности, лучше всё это обратно закомментировать.

2. Запусти sendmail не через скрипт, а из консоли.

И ещё у тебя SpamAsassin нехорошими словами ругается, разреши уже ему в папку писать, о чём он в логах слёзно просит.

3. Как вариант, попробуй на время поотключать фильтры. Можешь поочередно. Я бы начал с clamav'а.

И ещё один момент. Посмотри вот этот:
мануал по настройкам таймаутов для фильтров. По-моему, время на подключение к тому же spamd, выставленное в 15 минут, это чересчур много
 

SapperSD

Создатель
Регистрация
27 Дек 2009
Сообщения
18
Реакции
1
Не могу я взять и отключить антиспам, сервер рабочий. В ближайшем будущем планируется переход на линукс и постфикс. А пока прикрутил костыль в виде скрипта, который по крону раз в минуту проверяет наличие сендмейла в процессах, и если его там нет перезапускает службу.
Код:
#!/bin/sh
# restart sendmail
str1=`ps -Allwww| grep -v grep | grep 'accepting connections (sendmail)'`
str2=`ps -Allwww| grep -v grep | grep 'for /var/spool/clientmqueue (sendmail)'`
if [ -z "$str1" -o -z "$str2" ]
then
 dt=`date`
 echo "$dt restart" >> /var/log/mailrest.log
 ps -Allwww >> /var/log/mailrest.log
 echo -------------------------------- >> /var/log/mailrest.log
 netstat -an >> /var/log/mailrest.log
 echo -------------------------------- >> /var/log/mailrest.log
 echo -------------------------------- >> /var/log/mailrest.log
 /etc/rc.d/sendmail stop
 sleep 2
 /etc/rc.d/sendmail start
fi
exit 0

Интересная штука, если использовать просто ps -All , то при ручном запуске все ок, а если по крону, то вывод идет с обрезанием до 80 символов. Потому и Allwww.
 

e_dmitriy

Создатель
Регистрация
23 Янв 2010
Сообщения
14
Реакции
5
Как workaround конечно пойдёт и это. Но в целом правильнее-то разобраться, мало ли когда с такой связкой или её частями работать доведется.
В all.log неужели ничего подозрительного так и нет?
 

SapperSD

Создатель
Регистрация
27 Дек 2009
Сообщения
18
Реакции
1
Есть некоторые наблюдения.
Вечером был вручную запущен сендмейл:
/usr/sbin/sendmail -O LogLevel=98 -bd
Код:
# ps -aux|grep send
smmsp  13801  0.0  0.1  3384  2788  ??  Is   11:40PM   0:00.01 sendmail: Queue runner@00:30:00 for /var/spool/clientmqueue (s
root   22096  0.0  0.1  3504  3040  ??  Ss    [B]8:01AM[/B]   0:00.15 sendmail: accepting connections (sendmail)
Утром был перезапуск сендмейла, но это сделал не мой скрипт, т.к. его логах чисто.
В общих логах вот что:
 

e_dmitriy

Создатель
Регистрация
23 Янв 2010
Сообщения
14
Реакции
5
Фильтры. Как обычно. Как и предполагал...
Отключи антиспам и попробуй поработать без него. Возможно что он не справляется с нагрузкой (должно быть видно по команде top) или натыкается на сообщение, которое не может "переварить". Тогда конфигурацию антиспама потребуется доработать. Было бы неплохо определить, на обработке какого письма ему стало плохо. Проверь, выставлены ли в его настройках параметры типа "максимальный размер обрабатываемого письма" и т.п.
 

SapperSD

Создатель
Регистрация
27 Дек 2009
Сообщения
18
Реакции
1
Период падаения сендмейла колеблеться от 1 дня до 3 недель. Не могу я отрубить антиспам на 3 недели.
Нагрузка на сервак не большая, пару сотен писем в сутки. Так что перегруз маловероятен.
 

e_dmitriy

Создатель
Регистрация
23 Янв 2010
Сообщения
14
Реакции
5
Последний вариант - смени milter. Есть несколько вариантов milter'ов для связки sendmail с тем же clamav и spamassasin. Штатный для spamassasin'а, на сколько я помню, был не особо хорош.

P.S. Если на сервере никаких изменений и модификаций делать нельзя, к чему тогда спрашивать в чём причина проблем?
 
Сверху