Monitorando um serviço único

1

Nós não temos nenhum tipo de solução adequada de monitoramento de servidores (uma situação que eu gostaria de corrigir neste verão), mas eu tenho um serviço em particular que gostaria de monitorar. [Nosso sistema de monitoramento atual, aguardando que os clientes liguem com um problema, funciona bem para sistemas amplamente utilizados, mas isso não afeta o maior número de pessoas, como, por exemplo, o DHCP.]

Estou executando o servidor All The Right Type 3 em (suspiro) uma caixa do OS X 10.3 (Panther) [porque não se inicia automaticamente em algo novo e nossa pessoa de aquisição de software realmente não quer ser atualizada software.] O software cliente está funcionando bem nas máquinas do aluno, no OS X 10.5 (Leopard).

Agora, eu ocasionalmente recebo uma ligação dizendo que esse servidor está inoperante [e a máquina em si ainda está funcionando!], e eu realmente prefiro saber antes que alguém tenha que atender o telefone. O processo parece ser chamado "atrtserv.osx". Enquanto ele usa a rede, eu ficaria surpreso se a documentação para ele falasse sobre como enviar uma mensagem para ver se o serviço está ativo, então algo grosseiro, como verificar a cada cinco minutos que o processo existe.

Existe uma maneira simples de monitorar um serviço, esp. no Mac?

    
por Clinton Blackmore 29.05.2009 / 22:34

4 respostas

1

Eu não garanto que esse código funcione direito (mais especialmente a linha que começa com "RUNNING=", mas substitua algum teste seu que pode retornar uma string se estiver em execução e nenhuma string quando não estiver.

#!/bin/bash  

while true ; do 
RUNNING='ps aux | grep atrtserv | grep -v grep'
if [ -n "$RUNNING" ] ; then
    echo "atrtserv.osx is broken" | mail -s "atrtserv down" [email protected]
    sleep 300
else 
    sleep 300
    fi
done

Editar Use o pgrep acima em vez do meu hack

    
por 29.05.2009 / 22:44
2

Bem, a aparência mais simples provavelmente é:

pgrep atrtserv.osx >/dev/null || (
    date |
    mail -s 'atrtserv.osx down on yourmachine.foo' [email protected]
)

em um cron job em execução no intervalo de sua escolha.

    
por 29.05.2009 / 22:42
0

Você pode escrever um script pequeno que execute ps e fazer com que o cron o execute a cada 5 minutos.

e-mail, em seguida, irá enviar-lhe se encontrar algo errado.

O tempo total de implementação seria de 15 minutos, eu acho.

    
por 29.05.2009 / 22:41
0

Tente monit de darwinports.

    
por 29.05.2009 / 22:43