PNP4Nagios não gera XML/RRD de novos serviços [RESOLVIDO]

1. PNP4Nagios não gera XML/RRD de novos serviços [RESOLVIDO]

thinomar
thinomar

(usa Linux Mint)

Enviado em 07/12/2015 - 18:06h

Olá, pessoal. Estou utilizando o Nagios 4.0.8 e, para gerar gráficos, o PNP4Nagios 0.6.25.
Até semana passada estava tudo ok. As checagens sendo feitas corretamente, os gráficos sendo gerados bonitinhos e tal. Até que criei e adicionei um plugin novo para checagem de bandwidth e os serviços não foram grafados.
Verifiquei que os xml nem os rrd estavam sendo gerados, então gerei um xml, de acordo com o template na página do pnp4nagios e os xml já existentes, e criei um arquivo rrd, com o nome no padrão, porém o arquivo rrd que criei não está recebendo conteúdo nenhum e com o xml gerado na mão, a página do serviço fica em branco. Apenas para constar, estou trabalhando em modo Bulk w/ NPCD. Outra coisa importante de citar é que os gráficos dos outros serviços estão sendo formados corretamente, sem lacunas ou interrupções.
Sei que quase não dei informações relevantes, mas caso necessitem de algum dado adicional, basta me avisar.


  


2. Re: PNP4Nagios não gera XML/RRD de novos serviços [RESOLVIDO]

thinomar
thinomar

(usa Linux Mint)

Enviado em 08/12/2015 - 13:01h

UP!


3. Re: PNP4Nagios não gera XML/RRD de novos serviços

thinomar
thinomar

(usa Linux Mint)

Enviado em 08/12/2015 - 17:22h

Apenas para constar, consegui resolver, pessoal. Aumentei o nível de log de perfdata e verifiquei que ele estava implicando com a unidade de saída do meu plugin:
2015-12-08 16:40:44 [20216] [2] Datatype set to 'SERVICEPERFDATA'
2015-12-08 16:40:44 [20216] [1] Found Performance Data for ASTK02 / Bandwidth_eth2 (rx=6.40 KB;tx=11.20 KB)
2015-12-08 16:40:44 [20216] [2] No pattern match in function _parse(KB )
2015-12-08 16:40:44 [20216] [1] Invalid Perfdata detected

Então ao invés de 11.20 KB, apenas tirei o espaço e deixei 11.20KB.

Assim que fiz isso, os arquivos XML e RRD já foram gerados.
--
-I've been talking to the main computer
-And...?
-It hates me


4. Re: PNP4Nagios não gera XML/RRD de novos serviços

thinomar
thinomar

(usa Linux Mint)

Enviado em 08/12/2015 - 17:31h

Caso alguém tenha interesse no script, vou deixar ele abaixo e publicar na seção de scripts. Apenas para constar, ele é bem pobre e não tem limiares de warning e critical, sendo apenas para checar mesmo, e só o criei para poder verificar nos gráficos se em algum momento em que houve instabilidade entre minha rede local e meu servidor SIP, havia um alto tráfego de dados.

As linhas comentadas se referem a forma como eu gerava o perfdata quando criei o script, que era já multiplicando na mão o resultado do vnstat, deixando sempre em kbps, porém, ao ver que não iria ficar muito legível nos gráficos, alterei.
#!/bin/bash

# Script concebido para medir bandwidth de interface de rede
# Por: Thiago Martins (thinog|thinomar)
# Em: 25/11/15

if [ -z $1 ]
then
echo "Faltando argumento: interface de rede."
echo -e '\tSintaxe: ./bandwidth.sh $interface'
echo -e "\tExemplo: ./bandwidth.sh eth1"
exit 1
fi

vnst_inst=`dpkg -l | grep vnstat`

if [ -z $vnst_inst ]
then
echo "vnstat não instalado! Script necessita do mesmo para funcionar."
exit 1
fi

iface=$1
bw=/tmp/bw_nagios_$iface.txt

vnstat -tr -i $iface > $bw
rx=`cat $bw | grep rx | awk '{print $2}'`
rx_unit=`cat $bw | grep rx | awk '{print $3}'`

#if [[ $rx_unit =~ ^k ]] || [[ $rx_unit =~ ^K ]]
#then
# mult_rx=$rx
#elif [[ $rx_unit =~ ^m ]] || [[ $rx_unit =~ ^M ]]
#then
# mult_rx=`echo "$rx*1024" | bc -l`
#elif [[ $rx_unit =~ ^g ]] || [[ $rx_unit =~ ^G ]]
#then
# mult_rx=`echo "($rx*1024)*1024" | bc -l`
#fi

tx=`cat $bw | grep tx | awk '{print $2}'`
tx_unit=`cat $bw | grep tx | awk '{print $3}'`

#if [[ $tx_unit =~ ^k ]] || [[ $tx_unit =~ ^K ]]
#then
# mult_tx=$tx
#elif [[ $tx_unit =~ ^m ]] || [[ $tx_unit =~ ^M ]]
#then
# mult_tx=`echo "$tx*1024" | bc -l`
#elif [[ $tx_unit =~ ^g ]] || [[ $tx_unit =~ ^G ]]
#then
# mult_tx=`echo "($tx*1024)*1024" | bc -l`
#fi

rm -f $bw

rx_perf_unit=`echo $rx_unit | cut -c 1,2 | tr [[:lower:]] [[:upper:]]`
tx_perf_unit=`echo $tx_unit | cut -c 1,2 | tr [[:lower:]] [[:upper:]]`

#echo "$1: RX $rx $rx_unit - TX $tx $tx_unit|rx=$mult_rx;tx=$mult_tx"
echo "$1: RX $rx $rx_unit - TX $tx $tx_unit|rx=$rx$rx_perf_unit;tx=$tx$tx_perf_unit"
exit 0

--
-I've been talking to the main computer
-And...?
-It hates me






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts