Adicione a versão ao comando check_snmp
Eu tentei configurar o Nagios no Ubuntu 10.10, instalado com sucesso e posso acessar a interface web, estou no entanto preso na configuração snmp ou estou fazendo algo errado aqui, tenho seguido vários sites / nagios wiki para configurar a configuração (cfg ) arquivos.
Quando eu verifico na interface web, ele apresenta o seguinte erro em um dos meus roteadores Cisco:
Current Status:
UNKNOWN
(for 0d 2h 55m 56s)
Status Information:
SNMP problem - No data received from host
CMD: /usr/bin/snmpget -t 1 -r 5 -m RFC1213-MIB -v 1 [authpriv] 192.168.1.1:161
ifOperStatus.1
Na própria linha de comando, quando eu digito o seguinte, ele fica lá esperando e esperando:
sudo /usr/local/nagios/libexec/check_snmp -H 192.168.1.1 -C Routers -o sysUpTime.0
Quando eu digito o seguinte comando: recebo um OK
/usr/bin/snmpget -v1 192.168.1.1:161 1.3.6.1.2.1.1.5.0 -c "Routers"
Eu configurei o SNMP corretamente em nosso dispositivo cisco, já que podemos coletar dados SNMP por meio de duas outras ferramentas de monitoramento (SolarWinds e Manage Engine), e somos tentados pelo Nagios como sua fonte de código aberto.
Ficarei grato se alguém puder ajudar a retificar esta situação e me orientar na criação de nagios para monitorar roteadores Cisco, switches e alguns servidores.
Queremos monitorar a largura de banda, a utilização da CPU, o tempo de atividade e outros contadores necessários.
Adicione a versão ao comando check_snmp
Talvez o MIBS para seus switches Cisco não esteja carregado.
O que acontece se você fizer:
sudo /usr/local/nagios/libexec/check_snmp -H 192.168.1.1 -C Routers -o 1.3.6.1.2.1.1.5.0
em vez de sysUpTime.0
?
Se isso funcionar, então são os MIBs - veja wiki net-snmp para um tutorial sobre como instalar e usar o MIBS . Caso contrário, verifique sua sintaxe como apontado por Mike Weber
Verifique os valores que retornam pelo probe, números de ponto flutuante não são suportados por expr, apenas inteiros. Por exemplo,
$expr 0.9 / 10
expr: non-numeric argument
echo temp=$(expr $snmp / 10) # why echo?
temp=$(echo "$snmp / 10" | bc -l) # should do it
Use o canal opcional por sed para fornecer precisão .xx, por exemplo
temp=$(echo "$snmp / 10" | bc -l| sed 's/\(\.[0-9]\{2\}\)\(.*\)//')
A condição sofre do mesmo problema, a menos que você apenas trunque os resultados para o número inteiro mais próximo, você precisará fazer algo como:
if [ $(echo "$temp < 28" | bc -l) -eq 1 ]; then :do your stuff here; fi
Também nos scripts nagios, tente usar o caminho completo para os utilitários para evitar problemas com o "caminho não encontrado" durante a execução.
SNMP -Oidview