Nagios и openrrcp
Есть у нас некоторое количество сетевого оборудования, за которым необходимо следить и вовремя принимать меры по устранению неполадок. Софтинку, которая нам будет об этих неполадках докладывать, мы уже настроили. Теперь настроим ту, которая будет следить за нашим нехитрым оборудованием.
Для этого нам нужен пакет openrrcp. Куда-нибудь его скачиваем и распаковываем. Перед сборкой исходников нужно будет установить библиотеку libdnet. Ну а дальше нас поджидают некоторые незадачи, которые надо будет устранить :)
Первая незадача заключается в том, что после того, как мы сделаем make в корневой директории пакета, в поддиректории /bin появится много всего интересного, но только не то, что нам в данном случае нужно. Почему? А потому, что в ./src/Makefile не написали, что плагин к nagios тоже надо собрать. Открываем Makefile и в конец блока all: дописываем check_rrcp. После этого плагин соберется как надо.
Следующим номером нашей программы станет опция -a, —authkey=AUTHKEY. У меня она почему то упорно не хотела воспринимать ключ, ругаясь на неверный аргумент команды. Собственно, в качестве решения этого вопроса ничего лучше не придумалось, кроме как исправить в исходнике плагина дефолтный ключ на нужный мне. В файле ./src/check_rrcp.c находим строчку
[cc lang=»c»]authkey=0x2379[/cc]
и меняем 2379 на нужный ключ.
Всё это может отказаться собираться, если установлена библиотека libpcap. Придется ее удалить :) После успешной установки openrrcp можно будет вернуть библиотеку libpcap обратно.
Проверяем работоспособность
[cc lang=»bash»]./check_rrcp -H 00:80:48:45:30:8F -I em0
RRCP OK: Reply from 00:80:48:45:30:8F, time 5.428 ms[/cc]
Чутье странным образом подсказывает мне, что всё в порядке :) Переместим плагин в директорию с плагинами нагиоса.
С учетом того, что доступ к сетевому интерфейсу есть только из под рута, то нужно будет добавить пользователя nagios в список sudoers. Например так:
[cc lang=»bash»] %nagios ALL=(ALL) NOPASSWD: /usr/local/libexec/nagios/check_rrcp
[/cc]
Ну а теперь осталось описать сервисы в конфигах нагиоса, которые будут использоваться для опроса оборудования.
commands.cfg:
[cc lang=»bash»]# ‘check-switch-alive’ command definition
define command{
command_name check-switch-alive
command_line sudo /usr/local/libexec/nagios/check_rrcp -I em0 -H ‘$_HOSTMAC_ADDRESS$’
}[/cc]
templates.cfg:
[cc lang=»bash»]# Define a template for switches that we can reuse
define host{
name generic-switch
use generic-host
check_period 24×7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-switch-alive
notification_period 24×7
notification_interval 30
notification_options d,r
contact_groups admins
register 0
}[/cc]
hosts.cfg:
[cc lang=»bash»]define host{
use generic-switch
host_name compex
_mac_address 00:80:48:53:50:07
alias Compex ps2216
}[/cc]