Como verificar remotamente se o servidor Apache responde?

1

Eu tenho 2 servidores. Um deles geralmente trava. Quero enviar um SMS para o meu telefone quando ele falhar.

Eu escrevi este script bash simples em outro servidor e o coloquei no crontab para ser executado a cada 10 minutos.

wget --spider http://mywebsite.com || php sendsms.php

Este é o caminho certo? Às vezes recebo SMS, mas vejo que o servidor está rodando sem nenhum problema.

    
por hpn 23.06.2013 / 07:00

1 resposta

2

Você deve conseguir ver a saída de wget --spider ... por que wget falhou. Essa informação é enviada para o usuário que está executando o script ou, se você usar

[email protected]

você pode redirecioná-lo para sua conta de e-mail para revisão.

Se houver erros espúrios na rede ou no DNS, você poderá verificar duas vezes se a indisponibilidade era temporária e, com isso, reduzir o número de falsos positivos:

wget --spider -a /var/tmp/wget_test.log http://mywebsite.com || (sleep 10; wget --spider http://mywebsite.com ) || php sendsms.php

Observe que fiz a primeira tentativa, anexando a saída a um arquivo de log (em vez de imprimir para stderr). Dessa forma, você não recebe um e-mail a cada 10 minutos se tudo correr bem.

Toda execução de wget primeiro imprime um registro de data e hora e um URL quando tenta esse URL. Você poderá revisar todas as execuções que falharem na primeira wget e passarão a segunda correspondendo o registro de data e hora da saída enviada por e-mail da segunda wget àquele do arquivo de registro.

    
por 23.06.2013 / 07:55