Sou um desenvolvedor web solitário com meu próprio Centos VPS hospedando alguns sites pequenos para meus clientes. Hoje eu descobri que meu serviço httpd havia parado (sem motivo aparente - mas isso é outro tópico). Eu o reiniciei, mas agora preciso encontrar uma maneira de ser notificado por email e / ou SMS se isso acontecer novamente - não gosto quando meu cliente me liga para dizer que o site não funciona!
Eu sei que provavelmente existem muitas possibilidades diferentes, incluindo software de monitoramento de servidor. Eu acho que tudo o que realmente preciso é de um script que eu possa executar como um trabalho cron do meu host de desenvolvimento (que está permanentemente em execução no meu escritório) que tenta carregar uma página do meu servidor de produção e, se não carregar, digamos 30 segundos, em seguida, ele me envia um e-mail ou SMS. Eu sou um lixo no script de shell, daí esta pergunta.
Todas as sugestões serão apreciadas com gratidão.
Respostas:
Bem ... O script mais simples, eu escrevo:
Adicione-o ao cron como:
Mas é muito simples dizer qual é o problema, se existir.
UPD: Agora, essa linha única verifica uma sequência específica na página ("Sequência de operação normal"), que deve aparecer apenas na operação normal.
UPD2: Uma maneira simples de enviar a página de erro no email:
O ponto negativo é que a página é solicitada novamente em caso de falha no primeiro teste. Desta vez, a solicitação pode ser bem-sucedida e você não verá o erro. Obviamente, é possível armazenar a saída e enviá-la como um anexo, mas isso tornará o script mais complexo.
fonte
Dê uma olhada neste script:
curl
é um utilitário de linha de comando para buscar uma URL. O script verifica o código de saída ($? Refere-se ao código de saída do comando mais recente em um script de shell) e, se for diferente de 0, relata um erro (um código de saída 0 geralmente refere-se ao sucesso). Como mencionado na resposta do HUB, você também pode apenas||
na linha de comando para executar um segundo comando quando o primeiro falhar.Depois de descobrir o status, basta enviar um e-mail para si mesmo. Aqui está um exemplo que usa o
mail
comando para enviar email de um script de shell, assumindo que a caixa da qual você está testando possui a configuração SMTP:BTW: se você não é bom em scripts de shell, não se limite a um script de shell. Você pode usar um script ruby, um script php, qualquer tipo de script que seu servidor possa executar! Basta adicionar a
#!/path/to/executable
linha no início do script - por exemplo:#!/usr/bin/php
fonte
Verifique este script . está checando uma lista de sites e envia e-mails (para lista de e-mails) sempre que algo estiver errado (resposta http diferente de 200). O script cria um arquivo .temp para "lembrar" quais sites falharam na última verificação, para que você não receba vários emails. o arquivo .temp é excluído quando o site está funcionando novamente.
Adicione as seguintes linhas ao crontab config ($ crontab -e)
Disponível no Github
fonte
Eu sei que todos os scripts acima são exatamente o que você pediu, mas eu sugiro olhar para o monit porque ele enviará um email se o apache estiver inativo, mas também o reiniciará (se estiver inoperante).
fonte
Eu recomendaria pingdom para isso. Seu serviço gratuito permite que você verifique 1 site, mas é tudo o que você precisa para verificar 1 servidor. Se você tem um iPhone, eles enviam mensagens de graça, portanto, não há necessidade de comprar créditos por SMS e eles têm várias configurações que você pode usar. O meu está definido para me notificar após 2 tentativas (10min) e a cada 10min de inatividade depois disso. É incrível, pois também verifica as mensagens HTTP 500 indicando que um site está inoperante. Se falhar, ele imediatamente verifica seu site novamente a partir de um servidor diferente em um local diferente. Se essa falha, bem, isso aciona sua preferência em como / quando você gostaria de ser notificado.
fonte
Ligeira variação do acima.
Um script para verificar se um site está disponível a cada 10 segundos. Registre tentativas com falha em um
siteuptime.txt
arquivo para que ele possa ser visualizado (ou representado graficamente no Excel) posteriormente.fonte
fonte
Como você tem muitos sites no seu VPS, recomendo que você possa abrir uma conta no site de monitoramento de sites, como host-tracker.com. Além de alertá-lo se o site estiver inoperante ou não, eles também fornecem uptime semanal, mensal e anual dos seus sites. Whish é muito útil para gerenciamento e desempenho.
fonte
Que tal agora:
fonte