Ping para uma máquina Linux para verificar se está online

0

Estou usando o ping para verificar se uma máquina Linux está online e pronta para ser usada. No entanto, ping realmente não diz se o sistema está realmente fazendo algo útil, apenas que o subsistema de rede do kernel está ativo e configurado. Existe alguma maneira de dizer que a máquina está completamente pronta para executar tarefas?

EDITAR:

Desculpe, não fui claro. As tarefas que preciso que as máquinas executem são variadas. Alguns apenas executam testes muito pequenos. Outros falam com bancos de dados. E provavelmente haverá novas tarefas que as máquinas na rede precisarão executar no futuro. Existe um único comando que me diz que todos os serviços principais (padrão) estão sendo executados?

    
por rainman_s 22.03.2013 / 15:57

5 respostas

1

Eu acho que sua própria pergunta é uma resposta de certa forma. Is there any way to tell that the machine is completely ready to perform tasks?

Quais tarefas? Vamos dizer que você deseja executar tarefas usando serviços web e banco de dados e DNS. Você poderia escrever um script que verificaria se todos esses serviços estão em execução e o servidor não está sobrecarregado. Além disso, a menos que essas tarefas não sejam definidas, não há uma maneira útil de saber se o servidor está pronto para executar (quais) tarefas.

Ocasionalmente acontece que um de nossos servidores está rodando perfeitamente bem, mas o serviço DKIM está parado, então ele torna o PostFix incapaz de enviar e-mail, ele pode facilmente passar despercebido se não formos checar o serviço DKIM. Então você realmente precisa definir e, em seguida, verificar os serviços especificados para ter certeza.

    
por 22.03.2013 / 15:59
1

Eu recomendaria configurar software de monitoramento e alerta como o Nagios link ou o Zenoss

Ambos têm plugins para todos os serviços (tarefas) que você está planejando oferecer em seu servidor e configuram o heartbeat e o material analítico para alertá-lo quando as coisas correm mal.

Como outros postaram, o ping verifica apenas a conectividade entre o computador de ping e o host. O Nagios, após a configuração inicial, pode monitorar a conectividade, verificar se o Oracle está ativo, verificar se seu servidor da Web e servidores de aplicativos estão ativos, uso de memória / CPU e qualquer outra coisa em que você possa pensar ...

edit: Tenho certeza de que não há um único comando que possa te trazer tudo o que você está pedindo, mas deixe-me saber se existe um! :) Até lá, você terá um pouco de trabalho ~

Espero que isso ajude, -Minh

    
por 22.03.2013 / 17:10
0

Essa é uma questão complexa ... Eu acho que a melhor maneira de verificar como tudo está indo é conectar-se à máquina linux pelo ssh, e executar comandos a partir daí para verificar todos os serviços. De qualquer forma, note que você não pode fazer isso se a máquina que você está tentando se conectar não tiver um daemon ssh em execução (ou se a porta 22 estiver bloqueada, por exemplo).

Até onde eu sei, não há outra maneira de verificar isso.

    
por 22.03.2013 / 16:00
0

Além de executar o ping de um host, você provavelmente poderia verificar se uma porta específica está aberta sem nenhum conhecimento prévio e sem acesso à própria máquina. Para uma máquina executando um serviço da web que você controla, eu recomendo criar uma página específica com as informações que você está interessado (por exemplo, carga de mem, processos, ...) em um formato de sua escolha (xml, json, .. .) e buscar e avaliar isso em uma base regular.

Alternativamente - isso é algo que eu usei no passado - escreva um daemon específico para o seu servidor que coleta informações úteis para você (como antes, carga de memória, processos, ...) e transmita isso para o seu site de supervisão regularmente. Mas você terá que ter certeza de que você detectou e lidou com o caso em que nenhuma atualização chega mais.

Endereçando sua edição - Eu não acho que há um único comando para verificar os serviços padrão remotamente, como os serviços padrão variam dependendo da sua tarefa. A abordagem mais básica, se você só quer ver o que uma máquina está fazendo, seria usar algum tipo de

ps -ef

ou

top

na linha de comando para ver os processos ativos (assumindo uma máquina linux).

Você pode até incluir isso em uma declaração exec do php e transferi-la para uma máquina cliente quando a máquina estiver executando um servidor web.

    
por 22.03.2013 / 16:02
0

Você pode instalar um servidor da Web simples (deve pelo menos ser capaz de enviar arquivos html) para verificar se um conteúdo de arquivo html específico é enviado usando o curl. ( curl http://adress escreverá o conteúdo da resposta do servidor para stdout).

    
por 24.03.2013 / 09:48

Tags