Назад | Перейти на главную страницу

Мне нужно знать, когда qmail не запущен

Очевидно, я не могу отправить себе электронное письмо, чтобы сказать себе, что qmail не работает ... по крайней мере, не использую qmail. Как бы вы узнали о том, что qmail не работает?

Самый простой способ - это, вероятно, http-сообщение или wget на вторичный сервер, который может отправлять электронную почту.

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

Например, каждую минуту запускайте задание cron, чтобы определить, запущен ли процесс qmail. Если он не запущен, тогда wget http: //secondserver/alert.php

cronjob bash скрипт.

#!/bin/sh
SERVICE='qmail'

if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
    echo "$SERVICE service running, everything is fine"
else
    echo "$SERVICE is not running"
    wget http://secondserver/alert.php
fi

alert.php

<?php

$to = 'youraddress@example.com';

$subject = 'qmail not running';

$message = "qmail reported down";

$headers = "From: webmaster@example.com\r\nReply-To: webmaster@example.com";

$mail_sent = @mail( $to, $subject, $message, $headers );

echo $mail_sent ? "Mail sent" : "Mail failed";
?>

Это решение - плохой, но самый простой способ. Я бы инвестировал в решение для мониторинга, такое как nagios. С помощью подходящего инструмента мониторинга вы можете настроить решение, которое будет отправлять вам SMS-сообщения в случае отказа.

Это тоже популярный сервис мониторинга: http://www.bijk.com/

Просто чтобы добавить дополнительный ответ - вы можете проверить с другого сервера, прослушивает ли почтовый порт почту (при условии, что он открыт для этого другого сервера) - если он сообщает, что он заблокирован, он может уведомить вас об этом.

DJ Bernstein написал qmail. Я одобряю другой ответ, но должен прокомментировать:

Многие люди, использующие qmail, в конечном итоге перекусывают и настраивают другой проект DJ Bernstein позднего юрского периода для мониторинга сервисов, называемых daemontools. Он будет поддерживать работу qmail практически во всем, включая вторжения зомби, перегретые процессоры и плохую память.

Он работает очень, очень хорошо - я подозреваю, что daemontools - это Чак Норрис из мира демонов. [Демоны = оригинальное название того, что мы теперь называем услугами]

Независимо от вашей ОС или дистрибутива, будет программа поддержки активности службы демона, и вам просто нужно добавить к ней qmail. Мы никому и ничему не доверяем, поэтому отправляем электронные письма через почтовый сервер, а затем проверяем, пришли ли они в разумные сроки. Это ЕДИНСТВЕННЫЙ СПОСОБ узнать, правильно ли он работает. Мониторинг службы - это только 50% надлежащей проверки работоспособности.

Стоит прочитать про DJB. Я всегда предполагал, что он действительно стар, но не настолько.

http://en.wikipedia.org/wiki/Daniel_J._Bernstein

Одним из возможных способов может быть установка службы мониторинга, например Nagios, и добавление qmail для мониторинга. Таким образом, вы не только будете уведомлены о сбое службы qmail, но и, по сути, можете быть предупреждены о надвигающемся сбое, чтобы вы могли предпринять необходимые действия, чтобы предотвратить сбой.

Мне нравится подход Пабло; Я использовал нечто подобное для отправки сообщений в стиле IM, отслеживающих перемещение IP-адреса моего домашнего компьютера, подключенного к работе через VPN (поскольку ему каждый раз назначали другой адрес):

import xmpp

xmpp_login  = 'user'
xmpp_domain = 'jabber.com'
xmpp_pwd    = 'content-purged'
xmpp_server = 'www.jabber.com'
xmpp_recp   = 'user@jabber.com'

conn = xmpp.Client(xmpp_domain)
conn.connect(server=(xmpp_server, 5222))
conn.auth(xmpp_login,xmpp_pwd)
conn.send(xmpp.Message(xmpp_recp, "message body"))

Очевидно, для этого требуется учетная запись XMPP (Jabber) - вы можете отправлять сообщения «самому себе», так что одного будет достаточно.