Eu preciso saber quando o qmail não está rodando

2

Obviamente não posso enviar-me um email para dizer a mim mesmo que o qmail não está funcionando ... pelo menos não usando o qmail. Como você se informa sobre o fato de qmail não estar rodando?

    
por markus 11.02.2011 / 16:01

5 respostas

3

A maneira mais fácil é provavelmente um post http ou wget para um servidor secundário que pode enviar o email.

Obviamente, se a sua caixa de correio estiver neste servidor, ela não funcionará, portanto, será necessário usar outro endereço de e-mail.

Por exemplo, execute um cron job a cada minuto para detectar se o processo qmail está sendo executado. Se não estiver em execução, use o link

script bash do cronjob.

#!/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 = '[email protected]';

$subject = 'qmail not running';

$message = "qmail reported down";

$headers = "From: [email protected]\r\nReply-To: [email protected]";

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

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

Esta solução é uma maneira pobre de fazer isso, mas a mais simples. Eu investiria em uma solução de monitoramento como nagios. Com uma ferramenta de monitoramento adequada, você pode configurar uma solução que pode ser enviada quando estiver inativa.

Esse também é um serviço de monitoramento popular: link

    
por 11.02.2011 / 16:08
1

DJ Bernstein escreveu o qmail. Eu aprovo a outra resposta, mas devo comentar:

Muitas pessoas que executam o qmail acabam por atacar e criam o outro projeto do DJ Jurídico para monitorar serviços chamados daemontools. Ele irá manter o qmail trabalhando através de quase tudo, incluindo invasões de zumbis, processadores superaquecidos e memória ruim.

Funciona muito, muito bem - eu suspeito que os daemontools são o chuck norris do daemon world. [Daemons = nome original do que hoje chamamos de serviços]

Independentemente do seu sistema operacional ou distribuição, haverá um programa keepalive do serviço daemon, e você só precisa adicionar o qmail a ele. Não confiamos em ninguém ou em nada, por isso, corremos e-mails através do servidor de e-mail e, em seguida, verificamos se eles chegaram dentro de um período de tempo razoável. Esta é a única maneira de realmente saber se está funcionando corretamente. Monitorar um serviço é apenas 50% de uma verificação de integridade adequada.

Vale a pena ler sobre o DJB. Eu sempre achei que ele era muito velho, mas não tanto.

link

    
por 11.02.2011 / 17:42
1

Apenas para adicionar uma resposta adicional - você pode testar, de outro servidor, se a porta de e-mail estiver atendendo a mensagens (supondo que isso esteja aberto a esse outro servidor) - se relatar que está bloqueado, poderá notificá-lo o fato.

    
por 11.02.2011 / 17:49
1

Uma forma possível seria configurar um serviço de monitoramento, como o Nagios, e adicionar o qmail a ser monitorado. Dessa forma, você pode não apenas ser notificado sobre um serviço qmail com falha, mas também ser avisado de um falha iminente, para que você possa tomar as medidas necessárias para evitar que a falha realmente aconteça.

    
por 11.02.2011 / 19:16
1

Eu gosto da abordagem de pablo; Eu usei algo semelhante para enviar mensagens no estilo do IM que rastreiam o movimento do endereço IP do meu computador doméstico conectado ao trabalho por meio de uma VPN (já que foi atribuído um endereço diferente a cada vez):

import xmpp

xmpp_login  = 'user'
xmpp_domain = 'jabber.com'
xmpp_pwd    = 'content-purged'
xmpp_server = 'www.jabber.com'
xmpp_recp   = '[email protected]'

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"))

Obviamente, isso requer uma conta XMPP (Jabber) - você pode postar mensagens 'para você mesmo', então uma é suficiente.

    
por 12.02.2011 / 17:39