A melhor maneira de saber se um determinado serviço remoto está ativo é pedir que ele atenda a uma solicitação da maneira que deveria - na verdade, é a única maneira de realmente saber que algo está funcionando corretamente.
Como exemplo, eu sempre consigo que meus balanceadores de carga recebam uma resposta real dos nossos servidores Web, você pode fazer o mesmo para uma pequena seleção em uma caixa de banco de dados, se quiser, ou o que o servidor atual servir. Como uma dica, você pode criar um 'online.txt' (ou qualquer outro nome que você queira dar) em seus servidores da Web, peça aos seus LBs que tentem obter esse arquivo e, se falhar, removerão o servidor do VIP. uma ótima maneira de remover manualmente servidores individuais de seus VIPs simplesmente renomeando um único arquivo.
O ping apenas testa a capacidade de responder a pings, então esse é o SO básico, partes da pilha de IP e os links físicos - mas é tudo, todo o resto pode estar inativo e você não saberia.
Eu sei que isso é mencionado abaixo, mas vale a pena repetir uma e outra vez.
Solicitações de eco ICMP (também conhecidas como "Pings") (também conhecidas como ICMP Tipo 8) são construídas na especificação da pilha de IPs, sim, mas não precisam ser implementadas ou usadas. De fato, há um grande número de provedores de Internet que se recusam a encaminhar essas solicitações e ignoram silenciosamente essas solicitações, pois são uma forma de ataque à rede (chamada de pingflood).
Como mencionado acima, isso é tratado pelo sistema operacional (especificamente no nível da pilha de rede) e, portanto, cabe à configuração do sistema operacional responder a eles ou não. Se isso estiver desativado (uma precaução de segurança?), Você não poderá fazer nada para receber respostas de ping do outro lado. É por isso que não é confiável.
Na maioria das vezes, sim, no entanto:
alguns servidores bloqueiam solicitações de ping
só porque o servidor está respondendo não significa automaticamente que o site (ou qualquer outro serviço que você espere usar) esteja funcionando , verifique também se a resposta corresponde ao conteúdo esperado.
fonte
É verdade que, em muitas ocasiões, o tráfego ICMP é filtrado para que não seja confiável ...
Talvez uma maneira melhor seria telnetar o servidor na porta de serviço em que você está interessado.
ou seja, telnet 127.0.0.1 8080
fonte
Se o servidor precisar responder apenas aos pings, esse é um bom método para determinar sua disponibilidade. Se for necessário fornecer, por exemplo, um serviço da Web, você deverá executar algum tipo de teste para verificar se está funcionando de maneira semelhante para serviços de arquivos etc.
fonte
o ping tem 2 desvantagens:
uma solução melhor é verificar sua porta udp / tcp diretamente, para ver se o serviço ainda está disponível ... :-)
fonte
Existem ferramentas especiais para teste e monitoramento como o Nagios / Icinga .
Com essas ferramentas, você pode (é claro) fazer verificações com vários testes de ping, mas também verificar seus serviços.
Todas as verificações podem usar o valor retornado para classificar o resultado como "bom", "aviso" e "crítico" e podem ser escritas em quase todas as linguagens de programação.
É claro que não é fácil de configurar (como apontar e clicar), mas personalizável, confiável e extensível. Funciona bem em várias distribuições Linux e Unix.
fonte
Teste os serviços que você está procurando, apenas executar ping em um servidor não significa que os serviços estão funcionando.
Por exemplo:
Imagine um servidor web com uma dúzia de sites, então eu preciso saber se o site está ativo, criei um pequeno script em php e o executo a cada 10 minutos.
O script faz o seguinte ->
fonte
Usar o ping para determinar se um servidor está disponível é como um médico de emergência verificando se um paciente está respirando. Sim, é um bom lugar para começar, mas pode haver outros problemas.
fonte
Nós usamos
ping
para fazer uma pré-verificação, que o anfitrião é ligado e acessível, antes de lançar o nosso serviço systemd que tenta uma conexão ssh a ele. Isso economiza tempo na depuração, pois osystemctl start
comando falhará imediatamente, em vez de silenciosamente falhar e se perder na selva journalctl.Observe que o ping não é "confiável" no mesmo sentido que o TCP. Se você tiver uma conexão ruim (ou uma pilha de rede de baixa qualidade, obrigado Intel mpss ) e os pacotes estiverem sendo descartados, um único ping de pacote poderá falhar. Por outro lado, uma conexão TCP é confiável contra pacotes descartados. Portanto, ironicamente, uma conexão ssh pode funcionar imediatamente após uma única
ping
falha . Portanto, se você usar o ping para fazer uma verificação de sanidade, não deixe de permitir alguma falha.fonte
Apenas meus dois centavos: Temos um aplicativo herdado que usa esse método e tivemos que atendê-lo porque o ping não era suficiente para determinar a disponibilidade do serviço.
Ping apenas mostra que o servidor é capaz de escutar, mas, no nosso caso, o serviço não pôde iniciar sem intervenção humana.
Como resultado, as unidades, que assumiram ingenuamente que o servidor estava disponível, estavam tentando se conectar e atingir o tempo limite. Em vez de exibir a mensagem "O servidor não está disponível".
-
Nosso aplicativo atual, que se comunica via XMLHTTPRequests com um servidor web, envia uma mensagem formada à qual o servidor responderá com um código de status. O código de status é calculado pelo servidor fazendo uma série de verificações para garantir que vários subsistemas estejam online (banco de dados, os diretórios necessários podem ser gravados etc.)
fonte
Se, em circunstâncias normais, o servidor responder ao ping, é útil executá-lo em intervalos de um minuto para verificar se ele responde. Obviamente, isso indica apenas que existe um servidor nesse endereço IP e que existe um caminho de rede da origem do ping até o destino. Definir um limite para o tempo de resposta pode permitir que você também monitore o estado da rede. Se você estiver executando ping em um servidor na Internet, pouco poderá fazer para corrigir a rede, mas se um cliente ligar para reclamar, você já estará ciente do problema. Além disso, executar ping no google.com também é útil. Se você e o Google estão fora do ar, algo está acontecendo.
Como outros já mencionaram, é importante monitorar se o serviço que você está fornecendo está respondendo e se o desempenho está bom. Ou seja, você pode querer verificar por que uma era da web que geralmente responde em um segundo agora está respondendo. Eu tenho 10 segundos.
Portanto, saber que um serviço não está respondendo e está com falha no ping fornece muito mais informações do que apenas uma abordagem. Além disso, se você monitorar os processos também, sabendo que o ping responde, o serviço não responde e o servidor da Web não possui o número correto de processos informando onde procurar primeiro.
Você pode enlouquecer com o monitoramento, apenas monitore o suficiente para dizer quando algo ruim aconteceu ou está se tornando perigoso. Ou seja, muita troca,> 90% de uso do disco, alto disco io, 100% da CPU por longos períodos e lembre-se de que o monitoramento é apenas um ataque de negação de serviço realizado muito lentamente.
fonte
O Ping (Packet Internet Groper) informa se o seu sistema está se comunicando com o sistema com o qual você deseja estabelecer conexão pela rede. Até pings, não significa que o serviço, por exemplo, o serviço RemoteRegistry esteja em execução.
No entanto, para corrigir qualquer problema, o ping é necessário. Você pode corrigir remotamente qualquer problema. Portanto, o ping tem sua própria importância.
fonte
A melhor maneira de usar meus scripts é
no lugar de rsh alternativas como remsh podem ser usadas. Isso garante que seu sistema remoto seja inicializado completamente e você possa executar comandos nele. O ping simples não é suficiente, pois durante a inicialização, quando os serviços de rede são iniciados, o sistema começa a responder ao ping.
fonte
rsh
? Realmente? Por que não usarssh
?rsh
vs àssh
parte, como a capacidade de executardate
(supondo que você seja, para começar) diz algo sobre se um servidor Web, servidor SMTP, servidor DNS, servidor de banco de dados local ou não está em execução e pode atender a solicitações? É melhor solicitar o serviço específico do qual você deseja verificar a disponibilidade (que pode ser um shell remoto, mas com certeza não precisa ser).Ao reiniciar um servidor Windows, abro uma caixa de prompt de comando e insiro
Primeiro, ele sugere que está disponível - essa é a caixa que está caindo. Então você terá muitos "pedidos de tempo limite". Quando você começa a receber replies, a caixa está aberta.
fonte