De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Monitorando servidores pelo celular

Colaboração: Daniel Roberto

Data de Publicação: 09 de Abril de 2007

Hoje irei mostrar um script que me ajudou muito a monitorar meus servidores, ele envia um e-mail de aviso para você quando um dos servidores estiver fora do ar.

Você já deve conhecer algum utilitário que faça a mesma coisa, mas tem algo que este faz a mais. Usando um serviço do yahoo mail você pode redirecionar os e-mails recebidos para o seu celular e desta maneira ser informado de uma queda em qualquer lugar onde você estiver!!!

Você vai precisar instalar o programa msmtp.

  apt-get install msmtp

Se você utilizar outra distribuição visite http://sourceforge.net/project/showfiles.php?group_id=86651&package_id=90067&release_id=480212

Depois de instalar o programa, vamos configura-lo. Crie um arquivo na pasta home do usuário que vai executar o script com o nome ".msmtprc" e cole todo conteúdo abaixo:

  account NOME_DO_USUARIO
  host smtp.mail.yahoo.com.br
  from EMAIL_VALIDO_NO_YAHOO
  auth login
  user NOME_DE_USUARIO_DO_EMAIL
  password SENHA_DO_EMAIL
  #If your SMTP Server supports TLS encryption, uncomment the next line
  #tls
  
  account default:NOME_USUARIO_DO_SISTEMA

Atenção observe que o arquivo ".msmtprc" é oculto. Agora execute o comando chmod 600 .msmtprc para modificar as permissões do arquivo. Depois disto crie outro arquivo ainda na pasta home com o nome verifica e cole este conteúdo nele

  #!/bin/sh
  #######################################
  #Script para verificação de servidores
  #
  #Feito por DRMO
  #12/10/2006
  #######################################
  
  local=' uol.com.br'
  server1="NOME OU IP DO SERVIDOR"
  server2="NOME OU IP DO SERVIDOR"
  mail=SEU_EMAIL_VALIDO ( Só lembrando que este e-mail foi aquele configurado anteriormente no msmtp)
  
  # Verificando link local (pingando host na internet)
  
  ping -c 5 "$local"
  [ $? = 1 ] && exit
  
  # Pingando servidor numero 1
  
  ping -c 5 "$server1"
  [ $? = 1 ] && {
  echo -e "From: alerta@alertando.com.br
  Subject: servidor \n
  \n\n
  "$server1" is down" | msmtp "$mail"
  }
  
  sleep 10
  
  # Pingando servidor numero 2
  
  ping -c 5 "$server2"
  [ $? = 1 ] && {
  echo -e "From: alerta@alertando.com.br
  Subject: servidor \n
  \n\n
  "$server2" is down" | msmtp "$mail"
  }

Observe que primeiro foi feita uma verificação no "uol.com.br" para eliminar possíveis erros de conexão com a internet, só depois foi realizado o teste nos servidores.

Agora crie um arquivo ainda na pasta home com nome de "controler_verifica" e cole este conteúdo nele:

  #!/bin/sh
  # Matando processos existentes
  pide=$(cat /tmp/controler)
  kill -9 "$pide"
  # Coloque aqui o valor de tempo em minutos com 1 (um) digito, que será o intervalo entre as verificações
  #Exemplo: 10 = "Dez minutos"
  tempo=20
  
  time=$((60 * $tempo))
  # Criando pid
  echo "$$" > /tmp/controler
  # condicional loop
  
  while :
  do
  ~/verifica
  sleep "$time"
  done

Crie só mais um arquivo ainda na pasta home com o nome de "matar_controler" e cole este conteúdo nele:

  #!/bin/sh
  pide=$(cat /tmp/controler)
  kill -9 "$pide"

Agora execute o comando na pasta home "chmod +x verifica controler_verfica matar_controler" para tornar os arquivos executáveis.

Faça:

  ./controler_verifica&

Faça um teste!! Simule um servidor fora do ar!

Você já deve estar recebendo mensagens no seu e-mail do yahoo

Vá até este site e crie sua conta e siga as instruções de configuração http://br.mobile.yahoo.com/mailalertas/

Crie também o filtro no Subject com o assunto "servidor" para que a mensagem seja enviada para o seu celular.

Só lembrando que cada mensagem recebida no celular te torra +ou- 10 centavos!!

Eu só quero que este script rode das 8:00 às 06:00 de segunda à sexta. Pois não quero ser acordado por uma mensagem no celular às 4:00 da manha né!!!!!!!!

Então coloco isso na crontab

  00 8    * * 2-6 daniel   ~/controler_verifica
  00 18    * * 2-6 daniel   ~/matar_controler

Resumo

O resultado será um script que testa 2 (ou mais) servidores de 10 em 10 minutos de segunda à sexta das 8:00 às 18:00. Obviamente você irá precisar de no mínimo 2 maquinas pois não seria possível a entrega do e-mail se maquina estiver fora!!

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Daniel Roberto