você está aqui: Home  → Arquivo de Mensagens

Plugin do Nagios para detecção de Erros nas interfaces do Switch 3Com via SNMP.

Colaboração: Jhony Maseto

Data de Publicação: 16 de maio de 2008

Para otimização da rede e melhoria na monitoração proativa, criamos um shell script que captura da MIB dos switchs da 3Com e retorna quais portas estão com problema, assim se você tiver uma placa de rede com problema ligada a um switch gerenciável da 3com é possível descobrir o erro sem precisar acessar a interface WEB do switch. Pode ser útil para quem administra redes com muitos equipamentos como no nosso caso e não tem tempo para ficar olhando de equipamento em equipamento.

Funciona bem com os switches de modelo:

  • 3c17300: neste modelo ele captura os erros de CRC Error e colisões no mesmo trap.
  • 3c17300A: se o firmware estiver atualizado captura só os CRC Errors.

Segue o código fonte do plugin:

  #!/bin/sh
  # este plugin faz um teste nos switchs listados
  # buscando por erros de colisão e erros físicos nas interfaces "CRC error".
  # Autores: Jhony Maseto, Sergio tschá Wanderley.
  # Redes - Unochapecó
  < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>#
  #    Copyright (C) 2008  Jhony Maseto, Sergio Wanderley
  #
  #    This program is free software: you can redistribute it and/or modify
  #    it under the terms of the GNU General Public License as published by
  #    the Free Software Foundation, either version 3 of the License, or
  #   (at your option) any later version.
  #
  #    This program is distributed in the hope that it will be useful,
  #    but WITHOUT ANY WARRANTY; without even the implied warranty of
  #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  #    GNU General Public License for more details.
  #    You should have received a copy of the GNU General Public License
  #    along with this program.  If not, see 
  #    < http://www.gnu.org/licenses/>. 
  #    For contacting us send mail to redes@unochapeco.edu.br.
  
  help() {
  	echo " Este plugin utiliza o snmpwallk para recuperar erros na portas dos switchs da 3com, 	funciona bem com o modelo 3c17300 e 3c17300A "
  	echo " Para efetuar o teste chame o plugin e o IP do equipamento desejado, 	exemplo: ./check_switch 192.168.0.10 "
  }
  Version(){
  	echo " Check Switch - versão 1.0 "
  }
  
  while getopts "hV:" opt;
  do
  	case $opt in
  		h) help;;
  		V) Version ;;
  		*) echo Utilize -h para ajuda ou --help para comandos ;;
  	esac
  done
  
  < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>###
  # verifica se o que foi digitado é mesmo um ip IPV4
  
  ip=`echo $1 |egrep '^([0-9]{1,3}\.){3}[0-9]{1,3}$'`
  
  if [ "$ip" == "" ]
  	then
  		echo " digite um endereço de IP válido, ou -h para ajuda!!! "
  		exit 3
  else
  	#verifica se o switch aceita comandos snmp.
  	/usr/bin/snmpwalk -v1 -c public $1 info &> /dev/null
  	#testa o retorno do comando para ver se consegue. 
  	retcode=$?
  	# busca no switch por erros na MIB e compara se é menor que 100.
  	uso=`/usr/bin/snmpwalk -v1 -c public $1 inErrors | cut -d. -f2 |awk ' $4 > 100 {printf " - 	Porta: " $1 " Erros: " $4}'`
  	#retorna os erros para o Nagios recuperar
  	if [ "$uso" != "" ]
  		then
  			echo "WARNING: $uso"
  		exit 1
  	elif [ "$uso" = "" -a $retcode -eq 0 ]
  		then
  		echo "OK: testei o bagulho, sem erros "
  		exit 0
  	elif [ "$uso" = "" -a $retcode -ne 0 ]
  		then
  			echo "UNKNOWN: nao consegui testar o bagulho"
  			exit 3
  	fi
  fi


 

 

Veja a relação completa dos artigos de Jhony Maseto

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script