Gera estatísticas de tráfego de pacotes nas interfaces de um servidor linux via SNMPv3.

Publicado por Alessandro Dias 09/04/2007

[ Hits: 4.709 ]

Download gera_estatistica_trafego_serv-01.sh




Gera estatísticas de tráfego de pacotes nas interfaces de um servidor linux, registrando os pontos em um arquivo.

Pode-se fazer um script PHP para plotar em um gráfico.

Antes de aplicar esse script verifique as senhas utilizadas no SNMPv3.

  



Esconder código-fonte

#!/bin/bash
#
###############################################################################
#  Script GERA_ESTATISTICAS DIARIAS v1.0                                      #
#                                                                             #
#  Autor: Alessandro Dias                                                     #
###############################################################################
#
IP="192.168.0.1"
BASEDIR=/var/www/html/estatisticas/trafego

clear
echo "*********************************************************************************************"
echo "*                                 Programa GERA_ESTATISTICAS V1.0                           *"
echo "*********************************************************************************************"
echo "Autor: Alessandro Dias"
echo "---------------------------------------------------------------------------------------------"

if [ "$IP" != "" -a "$IP" != " " ]; then 

   IFINOCTETS=`snmpget -v 3 -u alessandro -l authPriv -a MD5 -A senhaauth -x DES -X senhapriv $IP "ifInOctets.2" |cut -d "=" -f 2 |cut -d ":" -f 2 |cut -d " " -f 2`
   IFOUTOCTETS=`snmpget -v 3 -u alessandro -l authPriv -a MD5 -A senhaauth -x DES -X senhapriv $IP "ifOutOctets.2" |cut -d "=" -f 2 |cut -d ":" -f 2 |cut -d " " -f 2`

   echo -e "ip=\"$IP\"\n"

   echo "ifInOctets=$IFINOCTETS bytes"
   echo "ifOutOctets=$IFOUTOCTETS bytes"

   DIA=`date +%d`
   DIA_SEM=`date +%a`
   MES=`date +%b`
   ANO=`date +%Y`
   HORA=`date +%k`
   SEC=`date +%s`

   if [ ! -d $BASEDIR/$IP/$DIA ]; then 
      mkdir -p $BASEDIR/$IP/$DIA
   fi

   if [ ! -f $BASEDIR/$IP/$DIA/pts_in ]; then 
      touch $BASEDIR/$IP/$DIA/pts_in
      chown apache $BASEDIR/$IP/$DIA/pts_in
   else
      if [ "$HORA" == "0" -o "$HORA" == "00" -o "$HORA" == "24" ]; then 
         rm -f $BASEDIR/$IP/$DIA/pts_in
         touch $BASEDIR/$IP/$DIA/pts_in
         chown apache $BASEDIR/$IP/$DIA/pts_in
      fi
   fi

   if [ ! -f $BASEDIR/$IP/$DIA/pts_out ]; then 
      touch $BASEDIR/$IP/$DIA/pts_out
      chown apache $BASEDIR/$IP/$DIA/pts_out
   else
      if [ "$HORA" == "0" -o "$HORA" == "00" -o "$HORA" == "24" ]; then 
         rm -f $BASEDIR/$IP/$DIA/pts_out
         touch $BASEDIR/$IP/$DIA/pts_out
         chown apache $BASEDIR/$IP/$DIA/pts_out
      fi
   fi

   echo "$HORA,$SEC,$IFINOCTETS" >> $BASEDIR/$IP/$DIA/pts_in
   echo "$HORA,$SEC,$IFOUTOCTETS" >> $BASEDIR/$IP/$DIA/pts_out

   if [ ! -f $BASEDIR/$IP/$DIA/rangex ]; then 
      echo "24,18,12,12,100,100,1,1,/,$IP,$DIA/$MES/$ANO ($DIA_SEM)" > $BASEDIR/$IP/$DIA/rangex
      chown apache $BASEDIR/$IP/$DIA/rangex
   else
      if [ "$HORA" == "0" -o "$HORA" == "00" -o "$HORA" == "24" ]; then
         rm -f $BASEDIR/$IP/$DIA/rangex
         touch $BASEDIR/$IP/$DIA/rangex
         chown apache $BASEDIR/$IP/$DIA/rangex
      fi
   fi

   if [ ! -f $BASEDIR/$IP/$DIA/graph.php ]; then 
      cp -f $BASEDIR/graph.php $BASEDIR/$IP/$DIA/
   else
      if [ "$HORA" == "1" -o "$HORA" == "01" ]; then
      cp -f $BASEDIR/graph.php $BASEDIR/$IP/$DIA/
      fi
   fi

# mostra arquivos criados
echo -e "\n--------IN------------"
cat $BASEDIR/$IP/$DIA/pts_in 
echo "--------OUT-----------"
cat $BASEDIR/$IP/$DIA/pts_out
echo "----------------------"

else
   echo -e "\nSINTAXE CORRETA: \n ./gera_estatisticas.sh <IP>\n"
fi
echo -e "---------------------------------------------------------------------------------------------\n"


Scripts recomendados

RSYNC + NFS

slackpigs - veja os pacotes que mais ocupam espaço no Slackware

Firewall avançado

Popular Mysql

Configuração de VLANs


  

Comentários
[1] Comentário enviado por diaspcf em 07/05/2007 - 15:20h

Caro Usuário,
Tente pegar o script a partir do código fonte, pois parece que o link está quebrado.
Obrigado.

[2] Comentário enviado por aroliveira em 20/05/2007 - 10:54h

Amigo, tens um exemplo de arquivo de configuração do snmpd.conf ? Obrigado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts