Enquete

    Você se considera um usuário...
    View Results

Twitter

Twitter / hevanderson » hevanderson: Procurando um bom livro sobre servidores Linux

Posted 4 months ago

hevanderson: Procurando um bom livro sobre servidores Linux [Link]

Twitter / hevanderson » hevanderson: Obrigado pelo alerta Rafael!

Posted 4 months ago

hevanderson: Obrigado pelo alerta Rafael! [Link]

Twitter / hevanderson » hevanderson: puxa, que mico essa do Ubuntu mobile hein! ainda bem q corrigi a tempo.

Posted 4 months ago

hevanderson: puxa, que mico essa do Ubuntu mobile hein! ainda bem q corrigi a tempo. [Link]

Twitter / hevanderson » hevanderson: Alguém já conseguiu instalar o CentOS numa máquina Core 2 Duo? To apanhando. Eu utilizo a iso pra x86 ou pra x86_64?

Posted 4 months ago

hevanderson: Alguém já conseguiu instalar o CentOS numa máquina Core 2 Duo? To apanhando. Eu utilizo a iso pra x86 ou pra x86_64? [Link]

Twitter / hevanderson » hevanderson: Parece que a faculdade não gosta muito de blogs. O meiobit é bloqueado mas pelo menos o Mundo hev e o Planeta Ubuntu tão liberados hehe!

Posted 4 months ago

hevanderson: Parece que a faculdade não gosta muito de blogs. O meiobit é bloqueado mas pelo menos o Mundo hev e o Planeta Ubuntu tão liberados hehe! [Link]

Twitter / hevanderson » hevanderson: Parece que funcionou, quem quiser, só adicionar. Até mais Pessoal Fiquem com Deus!

Posted 4 months ago

hevanderson: Parece que funcionou, quem quiser, só adicionar. Até mais Pessoal Fiquem com Deus! [Link]

Twitter / hevanderson » hevanderson: Primeiro teste do twitter.

Posted 4 months ago

hevanderson: Primeiro teste do twitter. [Link]

MH via e-mail

Receba as atualizações do Mundo Hev no seu e-mail

Fornecido por FeedBurner

Posts Recentes

Pingar o BlogBlogs

Ping com esteróides

10 de January de 2008, por hev

Certo dia, na empresa onde estou como estagiário, surgiu a necessidade de se monitorar, de tempos em tempos, se um servidor estava on-line ou não, havia um script responsável por isso, no caso de perda total de pacotes (ou seja, servidor inacessível) um e-mail de alerta era enviado aos administradores e para equipe de suporte técnico da empresa (da qual faço parte). Acontece, que muitas vezes não estávamos com a caixa de email aberta ou a mensagem passava despercebida dentre muitas outras, então veio do gerente a sugestão de fosse soado um alarme no caso do servidor ficar off-line. Outros problemas que haviam no script antigo era que o mesmo só reportava o erro quando havia perda total de pacotes, se houvesse perda parcial, nem ficávamos sabendo.

Pra sanar os problemas criei um segundo script, que além de mandar e-mails, soa um alarme quando há perda de pacotes e gera logs organizados por sites/IPs pingados. Como os computadores da empresa não tem caixas de som, o alarme não é a execução de um arquivo de áudio, mas sim um toque no speaker da máquina ( gerado com o comando beep )

Para o script funcionar perfeitamente, você deve ter o sendmail e o mutt configurados na sua máquina e configurá-lo no cron para rodar automaticamente, deve-se também instalar o programa beep:

$ sudo apt-get install beep

O que o script faz:

  • Ele pinga o endereço indicado, por uma quantidade de vezes determinada pelo usuário
  • Ele cria um diretório para armazenar os logs dos sites pingados
  • Dentro deste diretório ele redireciona as saídas padrão e de erro para arquivos te texto (pingtemp.txt e temperro.txt)
  • Ele pinga o endereço e verifica a porcentagem de pacotes perdidos
  • A partir de 20% de perda de pacotes, o alarme soa
  • A saída do comando fica no arquivo pingtemp.txt
  • Com o comando cat o conteúdo de pigtemp.txt é adicionado ao log, cujo nome é o dia em que o teste foi executado

Sintaxe: ./chkping.sh [Numero de pacotes] [endereço web ou IP]

Vamos ao código:

 
#!/bin/bash
clear
#Script para teste de internet
 
check() ##FUNCAO Q FAZ OS TESTES DE PING
{
ping -c $1 $2 > pingtemp.txt 2> temperro.txt # o temperro.txt recebe tudo q vai para saida de erro
nome=$2
#assunto=`MONITORAMENTO DE INTERNET DO HEV`
#send=`mutt -s "MONITORAMENTO DE INTERNET DO HEV" hevandersons@gmail.com`
if [ -s temperro.txt ] #verifica se o arquivo é maior que zero, ou seja, se houve erro
then
        echo "|> ERRO DE CONEXÃO, EXPERIMENTE:"
        echo "|> CHECAR SE O ENDEREÇO ESTÁ CORRETO"
        echo "|> CHECAR OS CABOS DE REDE"
 
        sleep 3
else
        #echo "Não houve erros"
        sleep 1
        ppack=`grep received pingtemp.txt | cut -f6 -d " " | cut -f1 -d%`
        if [ $ppack -eq 0 ]
        then
                msg="Nenhuma perda de pacote, conexão com $nome perfeita"
		#ring
        elif [ $ppack -gt 0 -a $ppack -le 5 ]
        then
                echo "ALERTA: Perda entre 1 e 5 % dos pacotes transmitidos"
 
        elif [ $ppack -gt 5 -a $ppack -le 10 ]
        then
                 echo "ALERTA: Perda entre 5 e 10 % dos pacotes transmitidos"
        elif [ $ppack -gt 10 -a $ppack -le 20 ]
        then
                 msg="ALERTA: Perda entre 10 e 20 % dos pacotes transmitidos"
		 ring
        elif [ $ppack -gt 20 -a $ppack -le 30 ]
        then
                 msg="ALERTA: Perda entre 20 e 30 % dos pacotes transmitidos"
		 ring
        elif [ $ppack -gt 30 -a $ppack -le 40 ]
        then
                msg="ALERTA: Perda entre 30 e 40 % dos pacotes transmitidos"
		ring
        elif [ $ppack -gt 40 -a $ppack -le 50 ]
        then
                msg="ALERTA: Perda entre 40 e 50 % dos pacotes transmitidos"
		ring
        elif [ $ppack -gt 50 -a $ppack -lt 100 ]
        then
                msg="ALERTA GRAVE: mais de 50 % dos pacotes transmitidos foram perdidos"
		ring2 #ring de emergencia
        elif [ $ppack -eq 100 ]
        then
                msg="ATERTA GRAVE: PERDA TOTAL DE PACOTES, VERIFICAR CONEXÃO DE REDE"
		ring2 #ring de emergencia
        fi
 
 
 
fi
}
 
log() #GRAVA OS LOGS NAS PASTAS
{
echo "TESTE AS -> `date +%T`" >> `date +%d_%m_%Y.log`
cat pingtemp.txt >> `date +%d_%m_%Y.log`
echo >> `date +%d_%m_%Y.log`
}
 
send() #MANDA E-MAIS
{
echo $msg | mutt -s "MONITORAMENTO EM $nome" hev@mundohev.com -c  hevandersons@gmail.com
}
 
ring() #alertas de lentidão
{
beep -f 523.2 48 -l 10 -r 3 && beep -f 493.9 48 -r 4
}
 
ring2() #alertas de lentidão
{
beep -f 277.2 -l 500  -r 16
}
 
if [ -d $2 ]
then
        cd $2
        check $1 $2
        log
else
        mkdir $2
        cd $2
        check $1 $2
        log
fi

O grande probema deste script é o fato de ser baseado em porcentagens, mas aí basta usar o bom senso na hora de determinar o número de pacotes (de tentativas)

Baixar Script

É isso, fiquem com Deus, até a pŕoxima

Postado em Linux, Open Source, Programação, shell script |

4 Comentários

  1. Sérgio Rodrigues disse:

    Tá de parabéns o teu script.
    Mas sinceramente, é muito melhor verificar o motivo da perda de pacote ao invés de ficar monitorando se há perda ou não.
    Tenho certeza que o teu próximo passo é verificar isso, certo ?

  2. Jonh Wendell disse:

    Olá.

    O que você quer é o pmping:
    http://mteixeira.webset.net/pmping/

  3. admin disse:

    Obrigado Sérgio, vou procurar uma forma de fazer isso.

    Olá John, parece interessante esse pmping, vou dar uma olhada.

    Obrigado por comentarem, fiquem com Deus

  4. Eugenio disse:

    Muito bacana este script, vai ser útil aqui na empresa.

Deixar um Comentário

Obs: seu comentário passará por moderação antes de ser publicado.