Мониторинг Cisco устройств в Icinga2

Main

Оценка: 85.33% - 15 Голосов

Общая

В большой сетевой инфраструктуре очень сложно уследить за состоянием ваших маршрутизаторов и коммутаторов, а так же за перегрузкой каналов.  Модуль check_nwc_health поможет всегда быть в курсе в каком состоянии ваше оборудование и каналы.

Модуль check_nwc_health доступен для скачки тут.

 

Подготовка к использованию модуля


apt install libcrypt-des-perl libdigest-hmac-perl libcrypt-rijndael-perl

 

Установка модуля.

 

Загружаем модуль


wget https://labs.consol.de/assets/downloads/nagios/check_nwc_health-6.4.2.2.tar.gz

 

Распаковываем модуль


tar -zxvf check_nwc_health-6.4.2.2.tar.gz

 

Создаем модуль

входим в папку с распакованными исходниками

cd check_nwc_health-6.4.2.2

 

И выполняем следующие команды


autoreconf

Получаем ответ

1

 


 ./configure

 

Получаем ответ

2

 


make

Получаем ответ

3

Если никаких ошибок не произошло то это означает, что файл создан и лежит в подпапке plugins-scripts. Его необходимо копировать в папку с остальными плагинами для простоты добавления в Icinga2.

Скопируем командой


cp plugins-scripts/check_nwc_health /usr/lib/nagios/plugins/

 

Подготовка оборудования Cisco к опросу Icinga

Для того чтобы сделать безопасный опрос мы будем использовать протокол SNMP v3 подразумевающий обязательную авторизацию. Для этого выполним следующие команды в консоли управления Cisco


snmp-server group ИМЯ_ГРУППЫ v3 auth
snmp-server user ИМЯ_ПОЛЬЗОВАТЕЛЯ ИМЯ_ГРУППЫ v3 auth sha ПАРОЛЬ

 

Описываем работу модуля в конфигурации Icinga

Откроем commands.conf и добавим следующие строки:


object CheckCommand "check_nwc_health_3" {
        import "plugin-check-command"
        command = [ PluginDir + "/check_nwc_health" ]
        arguments = {
                "-H" = "$check_nwc_health_address$"
                "--timeout" = "$check_nwc_health_timeout$"
                "--protocol" = "$check_nwc_health_protocol$"
                "--username" = "$check_nwc_health_username$"
                "--authpassword" = "$check_nwc_health_authpassword$"
                "--authprotocol" = "$check_nwc_health_authprotocol$"
                "--privprotocol" = "$check_nwc_health_privprotocol$"
                "--mode" = "$check_nwc_health_mode$"
                "--name" = "$check_nwc_health_name$"
                "--selectedperfdata" = "$check_nwc_health_selectedperfdata$"
                "--units" = "$check_nwc_health_units$"
                "--servertype" = "$check_nwc_health_servertype$"
        }
        vars.check_nwc_health_address = "$address$"
        vars.check_nwc_health_timeout = "60"
        vars.check_nwc_health_protocol = "3"
        vars.check_nwc_health_username = "ИМЯ_ПОЛЬЗОВАТЕЛЯ"
        vars.check_nwc_health_authpassword = "ПАРОЛЬ"
        vars.check_nwc_health_authprotocol = "sha"
        vars.check_nwc_health_privprotocol = "aes"
        vars.check_nwc_health_units = "Bit"
        vars.check_nwc_health_selectedperfdata = ""
        vars.check_nwc_health_regexp = ""
        vars.check_nwc_health_servertype = "cisco"
}

 

В строке vars.check_nwc_health_username вводим имя созданного пользователя на оборудовании.

В строке vars.check_nwc_health_authpassword вводим пароль созданного пользователя на оборудовании.

 

Описываем настройку сервиса на примере проверки аппаратного состояния

Откроем services.conf и добавим следующие строки:


apply Service "Hardware health" {
   import "generic-service"
   check_command = "check_nwc_health_3"
   vars.check_nwc_health_mode = "hardware-health"
   assign where host.vars.type == "Cisco"
}

 

Добавляем оборудование Cisco на мониторинг


object Host "Router_2901" {
  address = "192.168.129.252"
  display_name = "Cisco 2901"
  check_command = "hostalive"
  vars.type = "Cisco"
  vars.notification["mail"] = {
  groups = [ "icingaadmins" ]
 }
}

 

Проверяем конфигурацию service icinga2 checkconfig и если все хорошо то перезапускаем icinga service icinga2 restart.

 

Данный плагин достаточно функционален и гибок. Позволяет мониторить большое количество параметров оборудования, загрузки портов, VLANов. Так же данный плагин может работать с сетевым оборудованием Juniper, HP и другими.

 

Возможные ошибки. 
1. При выполнении команды make может появиться ошибка


make[1]: *** Нет правила для сборки цели «ИМЯ_ФАЙЛА», требуемой для «check_nwc_health».  Останов.
Makefile:330: ошибка выполнения рецепта для цели «all-recursive»
make: *** [all-recursive] Ошибка 1

Данная ошибка возникает при неправильном извлечении файлов, к примеру при копировании файлов из архива при помощи Midnight Commander. Для ее устранения необходимо правильно распаковать файлы

 

2. При выполнении команды make может появиться ошибка


make[1]: *** Нет правила для сборки цели «../GLPlugin/lib/Monitoring/.......», требуемой для «check_nwc_health».  Останов.
make[1]: выход из каталога «/home/administrator/check_nwc_health-6.4.2.2/plugins-scripts»
Makefile:330: ошибка выполнения рецепта для цели «all-recursive»
make: *** [all-recursive] Ошибка 1

Данная ошибка возникает при отсутствии GLPugin в папке с распакованным плагином. Данная проблема может возникнуть при загрузке плагина с GitHub. Решается данная проблема загрузкой GLPlugin с сайта GitHub.

загруженном архиве есть папка lib которую надо копировать в папку GLPlugin, расположенной в корне папки с распакованным плагином check_nwc_health.

 

Список типов проверки, поддерживаемые плагином
Тип проверкиОписание
uptime Время работы устройства
hardware-health Аппаратное состояние устройства
chassis-hardware-health Проверка аппаратных средств устройства (источник питания;., Вентиляторы, температура, панель, ... с точки зрения шасси)
cpu-load Нагрузка CPU
memory-usage Использование памяти
interface-usage Нагрузка интерфейсов
interface-errors Ошибки интерфейсов
interface-discards Состояние отказов интерфейса
interface-status Статус интерфейса
interface-health Проверка на пропускную способность, ошибки, отказы
interface-nat-count-sessions Количество сеансов NAT
interface-nat-rejects Количество NAT-отказов
list-interfaces Вывод списка всех интерфейсов
list-interfaces-detail Детальный вывод списка интерфейсов
interface-availability Доступность интерфейсов
interface-stack-status Состояние Portchannel
link-aggregation-availability Процент интерфейсов с агригацией в линии связи
list-routes Список маршрутов
route-exists Проверка на наличие маршрута
count-routes Графы маршрутов
vpn-status Состояние VPN соединений
hsrp-state Состояние узла в группе HSRP
hsrp-failover Изменение узла в группе HSRP
list-hsrp-groups Отображает все HSRP группы
bgp-peer-status Состояние BGP peers
count-bgp-peers Количество BGP Peers
watch-bgp-peers Наблюдение за BGP Peers
list-bgp-peers Отображение всех BGP peers
ospf-neighbor-status Состояние OSPF соседей
list-ospf-neighbors Список всех OSPF соседей
ha-role Рассмотрение ролей в HA группе
svn-status Состояние SVN подсистем
mngmt-status Состояние MNGMT подсистемы
fw-policy Проверка политик Firewall
fw-connections Количество подключений Firewall
session-usage Использование сессий (балансировка нагрузки)
security-status События, связанные с безопасностью
pool-completeness Плотность нагрузки пулов балансировки
pool-connections Количество соединений в пуле балансировки нагрузки
pool-complections соотношение pool-completeness и pool-connections
list-pools Список всех членов пула балансировки нагрузки
check-licenses Проверка лицензии
count-users Количество подключённых пользователей
check-config Проверка на наличие не сохранённых изменений конфигурации
check-connections Проверка качества связи
count-connections Считает количество соединений (клиент, сервер)
watch-fexes Проверка наличия Cisco Fexen
accesspoint-status Состояние точки доступа
count-accesspoints Количество подключённых точек доступа
watch-accesspoints Проверка наличия точек доступа
list-accesspoints Список управляемых точек доступа
phone-cm-status Состояние CallManager
phone-status Количество зарегистрированных / незарегистрированных / отклонённых телефонов
list-smart-home-devices Список Fritz!DECT 200
smart-home-device-status Статус устройства Fritz!DECT 200
smart-home-device-energy Проверка потребляемой мощности Fritz!DECT 200
walk Snmpwalk команды, необходимые для отладки
supportedmibs MIBs-список устройства

 

Продолжение статей о Icinga2 тут. 

 

Добавить комментарий


Logo