LINUX.ORG.RU

nagios, nrpe, vtysh, bgp

 ,


0

1

здравствуйте. задача: снять показания о состоянии bgp сессий, и показать это в нагиосе. был найден скрипт:

#!/bin/sh
prx=`/usr/bin/sudo /usr/bin/vtysh -e 'sh ip bgp su' | grep $2 | /bin/awk '{ print $10 }'`
if [ -z $prx ]
then
   echo "Critical - BGPD not work"
   exit 1
   fi
if [ $prx = 'Connect' ]
then
        echo "Critical - Connect"
        exit 1
elif [ $prx = 'Active' ]
then
        echo "Critical - Active"
        exit 1
elif [ $prx = 'Idle' ]
then
        echo "Critical - Idle"
        exit 1
elif [ $prx -lt $1 ]
then
        echo "CRITICAL - Prefixes $prx"
        exit 1
else
        echo "OK - Prefixes $prx"
        exit 0
fi

запуск скрипта локально работает, и отдает нужные параметры.

# /usr/lib64/nagios/plugins/check_bgp.sh 0 89.179.xx.xx
OK - Prefixes 0

запуск скрипта удаленно, через nrpe выдает только Critical - BGPD not work.

в логах регистрируется

sudo:     nrpe : TTY=pts/0 ; PWD=/usr/lib64/nagios/plugins ; USER=root ; COMMAND=/usr/bin/vtysh -e sh ip bgp su
в sudoers добавил
# grep nagios /etc/sudoers
nagios          ALL=(ALL) NOPASSWD: /usr/lib/nagios/plugins/
nagios          ALL=(ALL) NOPASSWD: /usr/bin/vtysh
nrpe          ALL=(ALL) NOPASSWD: /usr/lib/nagios/plugins/
nrpe          ALL=(ALL) NOPASSWD: /usr/bin/vtysh

однако

./check_nrpe -H 192.168.0.1 -c check_bgp_beeline
Critical - BGPD not work

# grep bgp /etc/nagios/nrpe.cfg
command[check_bgp_beeline]=/usr/lib64/nagios/plugins/check_bgp.sh 0 89.179.xx.xx

подскажите коллеги, где я неправ? «родные» плагины отрабатывают как локально, так и удаленно

Похоже параметры в функцию неправильно передаются и $prx остаётся пустым. Сделай для теста отладочную запись в файл.

hope13 ★★★ ()
Ответ на: комментарий от hope13

дописываю в скрипт

#!/bin/sh
prx=`/usr/bin/sudo /usr/bin/vtysh -e 'sh ip bgp su' | grep $2 | /bin/awk '{ print $10 }'`
echo "$prx"
и на сервере нагиоса выполняю
#./check_nrpe -H 192.168.0.1 -c check_bgp_beeline

Critical - BGPD not work
локально же получаю «0», что есть гуд.

дописывая в /etc/nagios/nrpe.conf в строку

«command[check_bgp_beeline]=/usr/lib64/nagios/plugins/check_bgp.sh 0 89.179.хх.хх» >> /tmp/nrpe.log получаю NRPE: Unable to read output

openmsk ()
Ответ на: комментарий от openmsk

дописывая в /etc/nagios/nrpe.conf в строку

На проверяемом сервере?

hope13 ★★★ ()
Ответ на: комментарий от hope13

да, конечно.

давай попробуй более развернуто: есть сервер с нагиос-ом на ботру. и есть сервер-гейт, с настроенной quagga

требование: с помощью мониторинга нагиос отслеживать работоспособность bgp сессий на гейте.

что было сделано: на гейт установлен nrpe сервис, в конфиге которого прописаны команды с аргументами на сервере нагиос есть плагин check_nrpe который по сути пинает скрипт на гейте.

конфиг nrpe.conf я редактирую только на гейте.

openmsk ()
Ответ на: комментарий от openmsk

Я предложил добавить в скрипт отладочный вывод в _файл_, чтобы удостоверится запускает ли нагиос этот скрипт на гейте или нет. Может у тебя на гейте стоит какой-нибудь selinux, который блокирует запуск?

hope13 ★★★ ()
Ответ на: комментарий от hope13

selinux выключен.

победил закоментировав Default requiretty в /etc/sudoers

openmsk ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.