Check OpenBGPD sessions Nagios|Icinga|shinken|etc plugin
Project description
Bugtracker: https://github.com/jpcw/checkopenbgpd/issues
usage
This check runs bgpctl show and check that all bgp sessions are up.
sample outputs :
Ok
$ check_openbgpd CHECKBGPCTL OK - PEER-1 is 0 | 'PEER-1'=529581;;;0
Sometimes you have some peer sessions in idle state, and it ‘s not critical. Typically a session which depends on a slave carp interface. You have an option ‘–idle-list’, the plugin will take care if the session is in this list, and returns an ‘OK’ state for this session.
$ check_openbgpd --idle-list PEER-2 OTHER-PEER CHECKBGPCTL OK - PEER-2 is 0 | 'PEER-1'=529581;;;0 'PEER-2'=0;;;0 'OTHER-PEER'=0;;;0
Critical
Critical state is reached with first idle session not escaped in the optionnal ‘–idle-list’
$ check_openbgpd CHECKBGPCTL CRITICAL - OTHER-PEER is None (outside range 0:) | 'PEER-1'=529918;;;0 'OTHER-PEER'=None;;;0
Unknown
if an error occured during the check, the plugin raises a check error, which returns an UNKNOWN state.
typically UNKNOWN causes
OpenBGPD is not running
CHECKBGPCTL UNKNOWN - host.domain.tld bgpctl: connect: /var/run/bgpd.sock: No such file or directory
you’re not in the wheel group, and can’t read the bgpctl sosk
CHECKBGPCTL UNKNOWN - host.domain.tld bgpctl: connect: /var/run/bgpd.sock: Permission denied
sudo is your friend to run this plugin with an unprivileged user. A sample config here
icinga ALL = NOPASSWD: /usr/local/bin/check_openbgpd
Install
extract the tarball and
python setup.py install
Maybe you have installed setuptools with
pkg_add py-setuptools
then just
easy_install checkopenbgpd
check_openbgpd is located at /usr/local/bin/check_openbgpd
Nagios|icinga like configuration
check_openbgpd could be called localy or remotely via check_by_ssh or NRPE.
check_by_ssh
here a sample definition to check remotely by ssh
Command definition
define command{ command_name check_ssh_bgpctl command_line $USER1$/check_by_ssh -H $HOSTADDRESS$ -i /var/spool/icinga/.ssh/id_rsa -C "sudo /usr/local/bin/check_openbgpd --idle-list $ARG1$" }
the service itself
define service{ use my-service host_name hostname service_description bgpctl check_command check_ssh_bgpctl! }
NRPE
add this line to /usr/local/etc/nrpe.cfg
... command[check_openbgpd]=/usr/local/bin/check_openbgpd ...
nagios command definition
define command{ command_name check_nrpe_bgpctl command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_openbgpd -a "--crit-list $ARGS1" }
the service itself
define service{ use my-service host_name hostname service_description bgpctl check_command check_nrpe_bgpctl! }
testing
python bootstrap-buildout.py bin/buildout -N bin/test
Changelog
0.5.dev0
Fix Cosmetics on README
0.5 (2015-04-09)
Jean-Philippe Camguilhem <jp.camguilhem__at__gmail.com>
Contributors
Jean-Philippe Camguilhem, Author