Monitoramento do tempo de atividade a cada segundo - ruim para o servidor?

11

Gostaria de saber se há vantagens de verificar se um servidor está ativo, fazendo uma "solicitação HTTP GET" a cada segundo?

Qualquer servidor pode lidar com isso?

donald
fonte
Outra opção é fazer o oposto: em vez de monitorar o servidor de fora, monitore o servidor de dentro, como no ru-on.com . Basicamente, você instala um pequeno script em seu servidor que faz ping em outro servidor com muita frequência, para poder monitorar seu tempo de atividade sem dificultar a vida do servidor da web.
Maxim Zaslavsky
3
Maxim, há vários problemas com sua sugestão. Primeiro, não verifica se o serviço HTTP está sendo executado no servidor. Segundo, há o problema do que acontece quando o próprio servidor está inoperante. Isso ainda precisa ser monitorado. Além disso, o mesmo resultado poderia ser obtido com um simples wget contra a máquina local.
John Gardeniers

Respostas:

26

"Qualquer" servidor pode lidar com isso? Provavelmente.

Você deveria fazer isso? Provavelmente não.

Faça a si mesmo algumas perguntas:

  1. Quão rápido você será para responder a uma interrupção?
  2. Quantas visualizações de página você normalmente recebe por segundo?
  3. Quantos erros consecutivos você deseja ver antes de chamá-lo de "inativo" e enviar um alerta?
  4. Você tem algum SLA com clientes internos ou externos que precisa ser respeitado?
  5. Com base nas perguntas listadas acima, o que parece um tempo razoável de monitoramento e resposta?

Quando aprendi a programar, decidi que queria fazer um cronômetro. Quando finalmente consegui um aplicativo funcional, notei que o uso da CPU no meu laptop estava em 100% sempre que eu o rodava.

Meu loop de execução não teve um ciclo de espera. Apenas continuou executando a função de tempo.

Naquele dia, aprendi uma lição valiosa: não existe uma medida infinitamente precisa.

Joseph Kern
fonte
6

Enquanto eu, como quase todo mundo, questiono o motivo de querer monitorar com tanta frequência que o lado técnico não é um problema. Uma solicitação GET a cada segundo é absolutamente insignificante em comparação com um carregamento de página típico.

Seu servidor pode lidar com isso? Não temos nada para responder a essa pergunta, mas se o seu servidor tiver um problema para resolvê-lo, sugiro que seja completamente inadequado para qualquer outra coisa que esteja servindo.

John Gardeniers
fonte
3

Nagios ou munin provavelmente podem lidar com a execução do teste a cada segundo, mas é um pouco obsessivo. Existe uma razão para você precisar verificar com tanta frequência? Se o seu servidor for instável, você provavelmente terá problemas mais profundos.

slillibri
fonte
1

A maioria dos softwares de monitoramento comercial oferece intervalo de 1 a 5 minutos por padrão. Esse parece ser um bom intervalo de verificação.

sapguy
fonte
Pingdom, por exemplo, permite que você defina um intervalo e, ao detectar a primeira interrupção, aumente a frequência com que ele faz ping no servidor para ver se está fazendo backup.
Ankur Banerjee
>, aumente a frequência .. => mas o mínimo ainda é de 1 min, ou?
sapguy
Em contas gratuitas, acho que o menor preço que o Pingdom oferece é de 1 minuto. Como não tenho uma conta premium, não posso dizer se eles oferecem uma opção para verificações ainda mais frequentes.
Ankur Banerjee
1

Não há nada de errado em monitorar o servidor a cada segundo, apenas não é muito eficiente, especialmente em servidores com carga alta, onde uma consulta do Apache pode travar por alguns segundos, causando solicitações de backup ou emissão de alertas falsos naquele momento específico, mas é não 'errado'. As verificações de um segundo não serão mais rápidas em responder e, em 99,9% de todas as circunstâncias, uma verificação de 10 ou 30 segundos é igualmente importante.

Richard
fonte
0

Eu concordo 100% com Joseph aqui. Se você ainda deseja fazer algum tipo de monitoramento em tempo real, considere detectar o log do servidor da Web quanto a erros do servidor e ausência de novas entradas no log por um período de tempo. Ele não sobrecarregará o servidor, mas disparar alertas com base nisso é um desafio :)

pors
fonte
0

A resolução de 1 segundo é realmente alta e provavelmente não é necessária. No entanto, eu prefiro o collectd, pois foi projetado para uma resolução muito mais alta (sempre a cada 10 segundos) do que outras ferramentas OSS como munin (5 minutos).

n8whnp
fonte