PostHeaderIcon Nagios и openrrcp

Есть у нас некоторое количество сетевого оборудования, за которым необходимо следить и вовремя принимать меры по устранению неполадок. Софтинку, которая нам будет об этих неполадках докладывать, мы уже настроили. Теперь настроим ту, которая будет следить за нашим нехитрым оборудованием.

Для этого нам нужен пакет openrrcp. Куда-нибудь его скачиваем и распаковываем. Перед сборкой исходников нужно будет установить библиотеку libdnet. Ну а дальше нас поджидают некоторые незадачи, которые надо будет устранить :)
Первая незадача заключается в том, что после того, как мы сделаем make в корневой директории пакета, в поддиректории /bin появится много всего интересного, но только не то, что нам в данном случае нужно. Почему? А потому, что в ./src/Makefile не написали, что плагин к nagios тоже надо собрать. Открываем Makefile и в конец блока all: дописываем check_rrcp. После этого плагин соберется как надо.
Следующим номером нашей программы станет опция -a, —authkey=AUTHKEY. У меня она почему то упорно не хотела воспринимать ключ, ругаясь на неверный аргумент команды. Собственно, в качестве решения этого вопроса ничего лучше не придумалось, кроме как исправить в исходнике плагина дефолтный ключ на нужный мне. В файле ./src/check_rrcp.c находим строчку

1
authkey=0x2379

и меняем 2379 на нужный ключ.
Всё это может отказаться собираться, если установлена библиотека libpcap. Придется ее удалить :) После успешной установки openrrcp можно будет вернуть библиотеку libpcap обратно.
Проверяем работоспособность

1
2
./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

Чутье странным образом подсказывает мне, что всё в порядке :) Переместим плагин в директорию с плагинами нагиоса.
С учетом того, что доступ к сетевому интерфейсу есть только из под рута, то нужно будет добавить пользователя nagios в список sudoers. Например так:

1
 %nagios        ALL=(ALL) NOPASSWD: /usr/local/libexec/nagios/check_rrcp

Ну а теперь осталось описать сервисы в конфигах нагиоса, которые будут использоваться для опроса оборудования.
commands.cfg:

1
2
3
4
5
# '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$'
        }

templates.cfg:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Define a template for switches that we can reuse
define host{
        name                    generic-switch  
        use                     generic-host    
        check_period            24x7            
        check_interval          5              
        retry_interval          1              
        max_check_attempts      10              
        check_command           check-switch-alive      
        notification_period     24x7            
        notification_interval   30              
        notification_options    d,r            
        contact_groups          admins          
        register                0              
        }

hosts.cfg:

1
2
3
4
5
6
define host{
        use                     generic-switch
        host_name               compex
        _mac_address            00:80:48:53:50:07
        alias                   Compex ps2216
        }

Оставить комментарий

PR-CY.ru