Monitoramento simples de servidor da web (ativo)

8

Alguma dica sobre software para monitorar se um servidor web está instalado e funcionando no Linux? Ele deve ser capaz de executar sem saber nada além do URL. E deve ter funcionalidade para enviar um alerta por email quando o site for desativado. Não deve ser difícil escrever um script para isso, mas parece inútil se já houver algo legal por aí.

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

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

Atualização : Eu finalmente criei um pequeno script python que estou usando atualmente para isso, pode ser encontrado aqui .

Zitrax
fonte
Consulte também: serverfault.com/questions/44/… - este tópico foi abordado extensivamente em alto nível.
Warner

Respostas:

12

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 email se o wget não puder acessar o site pela primeira vez em três segundos.

Configure um trabalho cron para executar o script a cada poucos minutos.

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

Richard Holloway
fonte
7
contanto que você don `t executá-lo no servidor que seu monitoramento - você não tem idéia quantas vezes eu vi que feito ;-)
Geraint Jones
Obrigado. Além disso, descobri que --spider também é uma opção útil, pois evita realmente salvar a página no disco.
Zitrax 01/09/10
2
E sem instalar o 'postfix', o comando mail falha silenciosamente no envio.
Zitrax 02/09
3
@ Zitrax: E sem o wget ser instalado, você receberá um erro. Sem a rede estar ativa, o wget irá falhar. Sem que o script seja executável, o trabalho cron falhará e assim por diante. Também não tenho o 'postfix' instalado e funciona bem para mim porque estou usando o exim.
Richard Holloway
1
Por que o --no-check-certificate? Ser avisado sobre a implantação interrompida do TLS também é uma informação valiosa.
Avamander
7

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

  • O Nagios é um aplicativo de monitoramento completo capaz de monitorar muito mais que o http, mas também lida com isso. Ele também pode criar todos os tipos de repots ("Diga-me a porcentagem de tempo de atividade do nosso servidor / serviço X nesta semana / mês / ano ...")

  • Monit é outra escolha popular. Talvez não seja tão cheio de recursos quanto Nagios, mas, no entanto, é legal.

Janne Pikkarainen
fonte
Eu estava procurando por algo pequeno e simples, então o monit parece mais próximo disso.
Zitrax 31/08/10
1

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

Estas são algumas opções:

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

Pessoalmente, acho que o Zabbix e o Zenoss são um exagero se você simplesmente deseja monitorar o status de um servidor da web. Mas se você também planeja monitorar qualquer outra coisa, eles têm mais recursos do que você precisará;)

Wolph
fonte
Eu acho que pingdom e tendências de alta não podem monitorar os sites na minha rede interna.
Zitrax 31/08/10
@ Zitrax: não, eles não podem. Eu li sobre essa parte.
Wolph
1

Votei positivamente na resposta de Richard e Janne, mas se você quiser mais detalhes sobre o que o servidor da web está enviando e recebendo, os primeiros capítulos do livro de O'Reilly, "Web Client Programming with Perl", de Clinton Wong, oferecem uma ótima visão geral. do protocolo HTTP. Se você deseja um monitoramento mais detalhado do que apenas para cima / para baixo e deseja incluir códigos de resposta, etc., é um bom ponto de partida.

O livro é antigo, mas ainda válido. Publicado em 1997, O'Reilly publicou o conteúdo do livro on-line gratuitamente em http://oreilly.com/openbook/webclient/ como parte de sua iniciativa OpenBook.

gWaldo
fonte
0

Eu votaria na resposta de Janne se tivesse representante.

Nota importante sobre o Nagios, o fato de ser totalmente desenvolvido não significa que seja uma instalação longa e difícil. É bastante simples e amigável.

Segundo, você deve realmente verificar o que o seu fornecedor de hardware tem a oferecer. Por exemplo, estou usando o HP Proliants e eles têm rpm muito bons que ajudam.

bangolio
fonte
0

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

SystemParadox
fonte
0

Concordo que o Nagios é um ótimo software, mas se você quiser um freeware, sugiro que você dê uma olhada no AppPerfect Agentless Monitor . O Monitoramento do servidor Linux com AppPerfect é extremamente leve e adiciona uma 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 esta ferramenta. A instalação é muito simples e o software é muito fácil de usar. Uma documentação e tutorial claros também estão disponíveis aqui para monitoramento de servidor Linux

Steve Young
fonte
0

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

Certamente é mais do que um script simples com saída de email, mas a configuração do tipo de monitoramento de que 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 pode 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 desejar, e também permite agrupar verificações por serviço (por exemplo, seu report_serverserviço pode ter uma verificação do front-end da web). end, um para o back-end da web e outro para o banco de dados primário, os quais forneceriam alertas vinculados a esse serviço único).

iwaseatenbyagrue
fonte