Мониторинг Cisco устройств в Icinga2
Общая
В большой сетевой инфраструктуре очень сложно уследить за состоянием ваших маршрутизаторов и коммутаторов, а так же за перегрузкой каналов. Модуль 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
Получаем ответ
./configure
Получаем ответ
make
Получаем ответ
Если никаких ошибок не произошло то это означает, что файл создан и лежит в подпапке 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 тут.
- Просмотров: 25545
ибо если вводить строку в консоли - пашет
а если в icinga director -не пашет
соответственно если делать импорт из external plugins - показывает только температуру
Может как нибудь.
RSS лента комментариев этой записи