+ Responder ao Tópico



  1. #1

    Padrão Scritp de Monitoramento que envia e-mail

    Amigos,

    Estou procurando por um script bem simples. Já vasculhei vários sites e não achei o que quero. Vamos ver se alguem pode me ajudar, uma vez que não entendo quase nada de shell script.

    O que quero é algo que ping a cada 5 ou 10 minutos (podemos agendar no cron) alguns IPs da minha rede, e caso alguem não responda ao ping, enviar um e-mail pra mim.
    Meu server é o conectiva linux 10.
    Pra enviar esse e-mail, teria que ter algum serviço sendmail ou similar rodando na máquina?
    Caso alguem possa enviar o modelo do script ficarei muito grato.
    Abraços,

  2. #2

    Padrão Scritp de Monitoramento que envia e-mail

    Você procurou um script pronto na net pra monitorar serviços de sua máquina? Creio que vc não vai achar muita coisa, pois isso varia muito conforme suas necessidades.

    Para enviar e-mail vc precisa de um MTA.
    Utilize o comando mail.

    Dê uma pesquisa para saber como descobrir se uma máquina está viva.
    Dica: o php é muito utilizado para scripts de track .

    Falou

  3. #3
    Rod_Oliveira
    Visitante

    Padrão Envio de E-mail com script

    Primeiramente você deverá configurar o postfix em seu servidor Conectiva, depois sim colocará, o seu script para rodar.

    Tenho um script rodando desta forma na máquina aqui em casa. Onde a cada 50 minutos ele me envia um e-mail com o seguinte formato:

    - Nome da Máquina - Hora Atual
    - Processos que estão sendo executados
    - Diretório de músicas baixadas
    - Ping para a rede interna
    - Ping para a Internet.

    Se precisar de ajuda, é só enviar um e-mail !!! T+

    A propósito o script colocarei aqui na próxima mensagem.

  4. #4

    Padrão Scritp de Monitoramento que envia e-mail

    procure o nagios!

    me disseram q ele faz isso.

  5. #5
    c0deks
    Visitante

    Padrão Scritp de Monitoramento que envia e-mail

    Po Rod_Oliveira posta ai esse seu script, fikei interessado kra!

  6. #6
    Visitante

    Padrão Scritp de Monitoramento que envia e-mail

    O nagios faz tudo isso que vc quer e muito mais.
    Ele monitora dns, servicos, envia echo pros equipamentos da sua rede e caso alguma coisa esteja fora do ar, ele pode enviar um e-mail pro adm.
    Alem disso, voce pode acessa-lo pelo seu navegador e ver a quantas anda sua rede.
    ele eh otimo.

  7. #7
    felipetcosta
    Visitante

    Padrão Scritp de Monitoramento que envia e-mail

    O nagius é muito bom.... Pega esse tutorial que tem como instalar passo a passo e talz...

    http://www.vivaolinux.com.br/artigos...o=595&pagina=1

  8. #8
    fabricio_
    Visitante

    Padrão Scritp de Monitoramento que envia e-mail

    fiz um script bem simples , se tiver mais ideias pode me falar q eu tento adicionar pra tu

    vc precisa apenas fazer uma lista com nome - ip dos servidores , e pronto
    poe na cron pra roda de 5 em 5 minutos e pronto!

    Código :
    #!/bin/bash
    #
    #
    lista=/root/servers.list
    timeout=20
    log=/root/log.log
    mail_server=10.255.1.2
    from=
    to=
     
    while read nome ip ; do
       ping -W $timeout $ip > $log
       if [[ $? -ne 0 ]]
          echo "$(date +%Y%d%m%H%M) :: ERRO " >> log
          echo " Erro de ping no servidor $nome" >> log
          (echo 'helo server'; sleep 4
          echo "mail from: $from"; sleep 4
          echo "rcpt to: $to"; sleep 4
          echo 'data'; sleep 4
          echo "subject: $(date +%Y%d%m%H%M) : Erro no servidor $nome ";
          cat "$log"
          echo ''; sleep 4
          echo '.'; sleep 4
          echo 'quit'; ) | telnet $mail_server 25
       fi
    done < $lista

  9. #9
    Rod_Oliveira
    Visitante

    Padrão Script para monitoração - Exemplo

    #!/bin/bash

    # Verifica se temos acesso ou não á internet.
    main() {
    ping -c 5 www.google.com.br &>/dev/null
    if [ "$?" != "0" ];then mail -s "Com acesso á internet" [email protected]
    if [ "$?" = "0" ];then
    mail -s "Sem acesso á internet" [email protected]
    fi
    fi
    }
    main
    ~

  10. #10

    Padrão Scritp de Monitoramento que envia e-mail

    Criei este script (pping - Parallel Ping) para monitorar a conectividade de um cluster Beowulf de 3000 nós. Adapte ele as suas necessidades.



    #!/bin/bash
    # Envia 2 pings para os nodos computacionais
    # OK cria arquivo ativos, caso ocorra falha gera arquivo desativados
    # Cria um email com as maquinas que estão fora....

    ADMIN_EMAIL="[email protected]"
    ATIVOS=/etc/cluster/ativos
    DESATIVADOS=/etc/cluster/desativados

    /usr/bin/clear
    /bin/rm -f $ATIVOS 2> /dev/null
    /bin/touch $ATIVOS 2> /dev/null
    /bin/rm -f $DESATIVADOS 2> /dev/null
    /bin/touch $DESATIVADOS 2> /dev/null

    if [ ! -d /etc/cluster ]; then
    mkdir /etc/cluster
    cp /etc/hosts.equiv /etc/cluster/clusternodes
    fi

    for NODE in `sed '/#/d' /etc/cluster/clusternodes|cat`
    do

    ping -c 2 $NODE >/dev/null 2>/dev/null

    if [ $? -eq 0 ] ; then

    echo "O $NODE esta ativo"
    echo "$NODE" >> $ATIVOS
    echo ""

    else
    echo "O $NODE nao esta respondendo"
    echo "$NODE" >> $DESATIVADOS
    echo ""

    fi
    done

    echo ""
    echo "Os nos ativos sao:"
    echo "------------------"
    cat $ATIVOS

    echo ""
    echo ""
    echo "Os nos desativados sao:"
    echo "----------------------"
    cat $DESATIVADOS
    sleep 3
    cat $DESATIVADOS|mail -s "**** Problemas de conectividade nos nodos listados****" $ADMIN_EMAIL

  11. #11
    rabbarros
    Visitante

    Padrão script

    segue um script eh php que pode ser usado no shell tb, ai eh so jogar no cron...

    Código :
    #!/usr/bin/php -q
     
    <?
    $servidores = array (
       "Server1"   => "192.168.1.1",
       "Server2"   => "192.168.1.2",
       "Server3"   => "192.168.1.3",
       "Server4"   => "192.168.1.4"
    );
     
    while (list($site,$ip) = each($servidores)) {
      $comando = "/bin/ping -c 1 " . $ip;
      $saida = shell_exec($comando);
     
      echo $site." - ".$ip." - "."Status: ";
      if ( ereg("bytes from",$saida) ) {
        echo "online\n";
      } else {
        echo "não responde\n";
    $servidor= "smtp.dominio.com.br";      // nome do servidor
    $porta   = 25;                              // número da porta, o email sempre fica na 25
    $timeout = 10;                              // tempo para expirar a tentativa de conexão
    $login   = "login_do_email";  // em alguns servidores basta o seu_login
    $senha   = "aqui_vai_a_senha";                      // senha no formato texto
     
    $de      = "[email protected]";
    $deNome  = "Servidor Fora";
    $para    = "[email protected]";
    $paraNome= "Nome_do Destinatario";
    $corpo   = "<td>".$site."<br>".$ip."<br>"."Status: Não responde!!<br>".date('r',time());
    $assunto = "Servidor Fora!";
    $data    = 'Date: '.date('r',time());        // este formato é exigência do servidor
     
    $conexao = @fsockopen($servidor, $porta, $errno, $errstr, $timeout);
     
    if ($errno){
        echo "Erro ao conectar ao $servidor na $porta: ".$errstr;
        exit;
    }
    echo "conectou com: ".$conexao."<br>";
    echo "conexão: ".fgets($conexao, 1024)."<br>";
     
    fputs($conexao,"AUTH LOGIN\r\n", 512)."<br>";             // envia a requisição
    echo "auth login: ".fgets($conexao, 512)."<br>";          // recebe a resposta e imprime
    fputs($conexao,base64_encode($login)."\r\n", 512)."<br>"; // envia a requisição
    echo "login: ".fgets($conexao, 512)."<br>";               // recebe a resposta e imprime
    fputs($conexao,base64_encode($senha)."\r\n", 512)."<br>"; // envia a requisição
    echo "senha: ".fgets($conexao, 512)."<br>";               // recebe a resposta e imprime
     
    // estabelece um email de retorno para receber msgs de erro
    fputs($conexao, "MAIL FROM:<$de>\r\n", 512);
    echo "mail from: ".fgets($conexao, 512)."<br>";
     
    // estabelece o endereço de envio
    fputs($conexao, "RCPT TO:<$para>\r\n", 512);
    echo "recpt to: ".fgets($conexao, 512)."<br>";
     
    // estabelece o endereço de envio
    //fputs($conexao, "RCPT TO:<$cc>\r\n", 512);
    //echo "recpt cc: ".fgets($conexao, 512)."<br>";
     
     
    // comanda o inicio do email a ser enviado
    fputs($conexao, "DATA\r\n", 512);
    echo "data: ".fgets($conexao, 512)."<br>";
    // infomações do email a ser enviado
    fputs($conexao, "MIME-Version: 1.0\r\n");
    fputs($conexao, "Content-Type: text/html; charset=iso-8859-1\r\n");
    fputs($conexao, "Date: $data\r\n");
    fputs($conexao, "From: $deNome <$de>\r\n");
    fputs($conexao, "To: $paraNome <$para>\r\n");
    fputs($conexao, "Cc: $ccNome <$cc>\r\n");
    fputs($conexao, "Subject: $assunto\r\n");
    fputs($conexao, "\r\n");
    fputs($conexao, "$corpo\r\n.\r\n");
    echo "email: ".fgets($conexao, 512)."<br>";
     
    // encerra a conexão com o servidor
    fputs($conexao, "QUIT\r\n", 512);
    echo "quit: ".fgets($conexao, 512)."<br>";
    fclose($conexao);
    exit;
      }
    }
    ?>

  12. #12

    Padrão Scritp de Monitoramento que envia e-mail

    Se precisar de um script bem simples, use o Monesa: http://www.comlinux.com.br/docs/comofazer/monesa.shtml

    Ou se precisar de algo mais profissinal, use o Nagios:

    http://www.nagios.org/

    Já testei os dois e atualmente tenho o Nagios rodando em minha empresa para monitoramento dos meus clientes !!

    Até :good: :good: :good:

  13. #13

    Padrão Scritp de Monitoramento que envia e-mail

    Citação Postado originalmente por mvzeppelin
    Você procurou um script pronto na net pra monitorar serviços de sua máquina? Creio que vc não vai achar muita coisa, pois isso varia muito conforme suas necessidades.

    Para enviar e-mail vc precisa de um MTA.
    Utilize o comando mail.

    Dê uma pesquisa para saber como descobrir se uma máquina está viva.
    Dica: o php é muito utilizado para scripts de track .

    Falou
    Qual melhor MTA para configurar na minha distro?