Pessoal,
Precisei fazer o monitoramento via
Nagios de um link de rádios Cambium PTP 600. Mas, como aqui é ao contrário, quanto maior o número melhor (Mbps), tive que fazer um script em bash para poder setar meus limites de
warning e
critical.
Espero possa servir de base para alguém.
Configurações
Incluir esta configuração em:
/etc/nagios/objects/host.cfg
define service{
use generic-service
host_name host
service_description Link Status
check_command check_link!public!ifSpeed.1!100!60 # Aqui seto os parâmetros com os que vou chamar meu script, lembrando que 110 e 60 são as velocidades em Mbps para warning e critical
}
Adicionar esta parte em:
/etc/nagios/objects/commands.cfg
# 'check_link' command definition
define command{
command_name check_link
command_line $USER1$/check_link $HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$
}
Script:
#!/bin/bash
# Aqui vem os parâmetros enviados no comando
IP=$1
COMMUNITY=$2
OID=$3
WARNING=$4
CRITICAL=$5
# Crio um valor temporário só para depois fazer a divisão
TEMP=$(/usr/lib/nagios/plugins/check_snmp -H $IP -C $COMMUNITY -o $OID | awk '{print $4}')
# Agora crio o valor final
LINK=$((TEMP/1000000))
# Faço as comparações para saber se ele está dentro de algum limite
if [ "$LINK" -gt "$WARNING" ]; then
echo "OK Link = $LINK Mbps"
exit 0
elif [[ "$LINK" -le "$WARNING" ]] && [[ "$LINK" -gt "$CRITICAL" ]]; then
echo "WARNING Link = $LINK Mbps"
exit 1
elif [ "$LINK" -le "$CRITICAL" ]; then
echo "CRITICAL Link = $LINK Mbps"
exit 2
else
echo "Usage: ./check_link -H <remote_host_IP> -C <community_string> -o <OID> -w <warning value> -c <critical value>"
exit 3
fi
Lembrando que o Nagios reconhece
0 como
ok,
1 como
warning,
2 como
critical e
3 como
unknown.
Obs.: pessoal, lembrem do SELinux! Perdi uma manhã inteira por ter esquecido dele!
Valeu!
Nenhum comentário foi encontrado.