Monitoramento simples do servidor da Web (ativo)

7

Alguma dica sobre o software para monitorar se um servidor da web está funcionando no linux? Deve ser capaz de funcionar sem saber mais do que o URL. E deve ter funcionalidade para enviar um alerta de e-mail quando o site cair. Não deve ser difícil escrever um roteiro para mim, mas parece inútil se já existe algo bom lá fora.

Observe que vou monitorar servidores internos, portanto, isso precisa ser uma ferramenta executada na minha máquina na mesma rede, e não em serviços baseados na Web externos.

E observe que soluções pequenas e simples são preferidas.

Atualizar : Eu finalmente criei um pequeno script python que estou usando atualmente para isso, ele pode ser encontrado aqui .

    
por Zitrax 31.08.2010 / 12:23

8 respostas

11

Você pode usar o wget em um script como este

wget --timeout=3 --tries=1 --spider --no-check-certificate http://serverfault.com

if [ $? -ne 0 ];then
  echo "Site Down" | mail -s "Site Down" [email protected]
fi

E você receberá um e-mail se o wget não puder acessar o site pela primeira vez em três segundos.

Configure um cron job para executar o script a cada alguns minutos.

Existem muitas outras alternativas, mas esta é provavelmente a mais simples de configurar do zero.

    
por 31.08.2010 / 12:37
7

Você tem muitas opções, eu vou te dar duas.

    O
  • Nagios é um aplicativo de monitoramento completo capaz de monitorar muito mais do que http, mas também trata disso. Ele também pode criar todos os tipos de relatórios ("Conte-me a porcentagem de tempo de atividade do nosso servidor / serviço X esta semana / mês / ano ...")

  • Monit é outra escolha popular. Talvez não tão cheio de recursos como o Nagios, mas mesmo assim é legal.

por 31.08.2010 / 12:29
1

Bem, se você quiser fazer algo você mesmo.

Estas são algumas opções:

Ou se você quiser uma solução gerenciada:

Pessoalmente, acredito que o Zabbix e o Zenoss sejam exagerados se você quiser monitorar o status de um servidor da Web. Mas se você também planeja monitorar qualquer outra coisa, eles terão mais recursos do que você precisa;)

    
por 31.08.2010 / 12:29
1

Eu inventei a resposta de Richard e Janne, mas se você quiser mais detalhes sobre o que seu servidor está enviando e recebendo, os primeiros dois capítulos do livro de O'Reilly "Web Client Programming with Perl" de Clinton Wong dão uma ótima visão geral do protocolo HTTP. Se você quiser um monitoramento mais detalhado do que apenas para cima / baixo e deseja incluir códigos de resposta, etc., é um ótimo lugar para começar.

O livro é antigo, mas ainda é válido. Publicado em 1997, O'Reilly publicou o conteúdo do livro on-line gratuitamente no link como parte de sua iniciativa OpenBook.

    
por 31.08.2010 / 14:29
0

Eu votaria na resposta de Janne se tivesse um representante.

Nota importante sobre o Nagios, o fato de que ele está completo não significa que é uma instalação difícil e longa. É muito simples e amigável.

Em segundo lugar, você deve verificar o que o seu fornecedor de hardware tem a oferecer. Por exemplo, estou usando HP Proliants e eles têm rimas muito legais que ajudam.

    
por 31.08.2010 / 14:18
0

Se você gosta do que o Nagios faz, mas não quer se aprofundar nos internos, você também pode conferir Opsview . É o Nagios e algumas outras ferramentas, mas entregues através de uma boa GUI. É um bom ponto de partida.

    
por 31.08.2010 / 14:33
0

Eu concordaria que o Nagios é um ótimo software, mas se você quiser um freeware, eu sugiro que você dê uma olhada em Monitor sem agente AppPerfect . O Monitoramento de servidor Linux com AppPerfect é extremamente leve e adiciona sobrecarga insignificante ao sistema de destino durante o monitoramento. Você pode monitorar todas as estatísticas importantes relacionadas à CPU, disco, rede e memória usando essa ferramenta. A instalação é muito simples e o software é muito fácil de usar. Uma documentação e um tutorial claros também estão disponíveis aqui para o servidor Linux monitoramento

    
por 07.03.2017 / 11:16
0

Uma solução que tenho usado é o cônsul da HashiCorp.

Certamente é mais do que um simples script com saída de e-mail, mas configurar o tipo de monitoramento sobre o qual você está falando ainda é muito fácil (algumas linhas de YAML ou JSON).

Você provavelmente criaria um modelo, mas o monitoramento de um único servidor poderia ser feito da seguinte maneira:

{
  "service": {
    "name": "web", 
    "tags": ["production"], 
    "port": 80,
    "check": {
      "id": "front-end",
      "name": "HTTP front-end for web service",
      "http": "http://web.domain.tld",
      "interval": "10s",
      "timeout": "1s"
    }
  }
}

Um motivo para sugerir isso é que ele permite que você vá além do monitoramento 'apenas' do front-end da Web, se quiser, e também permite que você agrupe verificações por serviço (por exemplo, seu report_server service poderia ter um verifique o front-end da Web, um para o back-end da Web e um para o BD principal, e todos fornecerão alertas vinculados a esse único serviço).

    
por 07.03.2017 / 11:28