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

Publicado por Alessandro Dias 09/04/2007

[ Hits: 5.001 ]

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

Altera /etc/fstab colocando o parâmetro acl nas partições ext3.

POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - APAGANDO MSG ANTIGAS EM TODAS AS PASTAS DE UM USUÁRIO

Troca de link em caso de queda de Internet (FAILOVER)

Limpeza de Cache no Squid

COMPACTANDO DIRETORIO CRIADO PELO SARG


  

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