você está aqui: Home  → Arquivo de Mensagens Programação Shell Linux: Inscrições Abertas

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ó
#####################################################################
#    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

###################################################
# 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