Como posso receber alertas quando meu site está inoperante?

4

Meu blog é um aplicativo ruby / rack personalizado, que vem quebrando aleatoriamente a cada duas semanas. Eu às vezes não noto por dias, e gostaria de ser notificado imediatamente se isso acontecer.

Qual é a melhor maneira de fazer isso? Estou executando o Centos 5.3, Nginx, Passenger, Rack, etc.

Eu considerei descobrir uma maneira de enviar um e-mail para o final do meu log de erros, já que isso me ajudaria a entender TUDO, não apenas aquele aplicativo (ele me contaria sobre links perdidos, etc). Existe uma maneira fácil de fazer isso?

Obrigado!

    
por Sean Clark Hess 12.10.2009 / 18:33

8 respostas

5

Se você precisar de um alerta quando o seu site cair, você deve considerar um serviço online para notificações: eles verão a perspectiva externa.

Se você monitorar "dentro de sua própria caixa", nunca receberá um e-mail se ele falhar completamente ou perder sua conectividade de rede, porque seu script não poderá mais ser executado ou alertado.

Bello ou Pingdom ambos oferecem contas gratuitas que são ótimas para você começar.

Mais serviços estão listados em Alguém pode recomendar um serviço de monitoramento de sites?

    
por 13.10.2009 / 20:25
4

Estou surpreso que ninguém tenha mencionado Nagios . É incrivelmente poderoso, faz porcentagens de uptime, notificação via e-mail / IM, pode executar scripts em tempo de inatividade, etc. É provavelmente o melhor que existe.

    
por 12.10.2009 / 19:36
2

Confira AreMySitesUp ( link ) e Pingdom. Ambos têm opções gratuitas e enviarão um e-mail e SMS quando seu site estiver inativo. O AreMySitesUp também tem um aplicativo para iPhone.

    
por 14.10.2009 / 19:25
1
  • você pode usar Deus: deus (ponto) rubyforge [dot] org

  • você tem um servidor em outro local onde possa executar scripts?

  • esses caras vão monitorar sua página (max 2 urls) de graça (a cada 30 minutos) http host-tracker.com order-page

por 12.10.2009 / 19:11
1

Você pode obter testes básicos de conectividade apenas escrevendo um script de shell que usa o wget e, em seguida, determina se a página respondeu ou não com base no código de resposta.

#!/bin/bash
WGET='/usr/bin/wget'
URL='http://url.to.check'

${WGET} -O /dev/null --tries=1 ${URL}

if [ $? -eq 0 ]; then
    echo "Success!"
     # You could write a log file or something here
else
    echo "Fail! :("
     # run something to mail you that your site isn't responding
fi

Este é um exemplo muito básico que pode ser expandido, mas se você estiver apenas procurando algo rápido, isso funcionará. Você pode cron-lo para que você saiba w / em um minuto, se tiver deixado de funcionar.

    
por 12.10.2009 / 19:18
1

O Nagios é ótimo se você tiver uma grande quantidade de servidores. Eu sugiro começar com munin é simples de configurar e plugins são literalmente um investimento de 5 minutos. É ótimo para coletar estatísticas e alertar em menor escala do que os nagios. A melhor parte é que você deve se expandir para ser grande o suficiente para justificar o investimento que o nagios exige, ele se integra bem ao nagios.

Munin: link

O desenvolvimento começou a ser retomado também !!

    
por 18.10.2009 / 22:10
0

Você pode usar algo como fantoche ou cfengine para monitorar o processo.

Monitorar se um determinado processo ainda é executado e, caso não seja, reiniciar o processo e relatar o evento, é bastante fácil com essas ferramentas. Você pode até mesmo estendê-lo para que ele execute uma verificação como abrir uma porta e esperar alguma resposta em uma solicitação.

No entanto, isso não funciona se todo o seu servidor estiver morrendo, mas essa não parece ser a causa aqui.

Não estou familiarizado com o conjunto de opções ruby / rack, mas sei que o Django também pode enviar e-mails para você em erros do servidor (uma página que causa um erro durante a renderização) e 404 do seu próprio site. Talvez você possa encontrar uma opção semelhante ou enganchar no que você está construindo.

Combinando esses dois meios, sou notificado caso uma página não seja processada e se o daemon inteiro morrer.

    
por 12.10.2009 / 18:55
0

você deve se concentrar na depuração e corrigir o problema:)

Disse que há duas maneiras de fazer o que você quer. Se o seu servidor estiver sempre ativo (e você confiar que ele está ativo), você poderá monitorar facilmente qualquer serviço em execução por meio de um cron job. Qualquer software de monitoramento seria simplesmente um exagero. Mas se você tiver problemas com seu aplicativo da Web e falhar de alguma forma sem derrubar quaisquer serviços em execução em seu servidor, e não houver uma maneira simples de testar se ele falhou (o processo em si ainda é executado, os resultados são inconsistentes, etc. .) então você provavelmente quer usar um dos serviços recomendados aqui que verificam o seu site do lado de fora.

    
por 13.10.2009 / 20:41