Вводная
Понадобилось мне поставить на мониторинг станции Avaya. С версией Communication Manager выше R16.0.141 проблем не возникло — там в SNMP все очень хорошо и прозрачно видно, в том числе статусы транков и внутренних номеров. Но вот с более ранними версиями — засада. А если учесть, что таких станций было более 30 штук, да и транков на каждой не менее 10-20 (а на некоторых несколько сотен) — задача оказалась малость нетривиальной. Но так как сделать все же надо — пришлось решать). Итак…
Постановка задачи
Что нам надо:
- Отловить отказ транка в течение 1-2 часов после падения
- Отловить массовый отказ внутренних номеров (отключение 10-20% внутренних номеров в течение 10-20 минут)
- Отказ любого из кабинетов либо появление ошибок на них
- Поймать выход из строя ключевых внутренних номеров (входящие группы, випы и пр.)
- Следить за состоянием DECT-баз, подключенных к станциям
- Ну и хорошо бы получить актуальную информацию о версии ПО на станциях, серийных номерах и прочем.
Что имеем из оборудования
- Более 30 станций Avaya Aura версий от R13 до R16;
- 10-300 транков разных типов (CO, E1, H323, SIP и т.п.) на каждой станции, транки добавляются или удаляются крайне редко;
- 100-3000 телефонов на каждой станции. Есть как IP-аппараты, так и аналоговые и цифровые;
- С каждой DECT-станцией работают от 5 до 100 DECT-баз. По моделям: Avaya DECT R3, Avaya DECT R4, Spectralink IP-DECT Server 6500 и Spectralink IP-DECT Server 6500
- Linux-сервер, на котором развернуть zabbix
- Все объекты доступны по сети
Подготовительные работы
Настроим zabbix-сервер
- Условимся, что сервер уже настроен на работу с SNMP и SNMPtrap;
- Настроим разбивку rsyslog по разным файлам и разрешим принимать ему сообщения с других хостов. Для этого отредактируем конфиг rsyslog.conf
$UDPServerRun 514 $InputTCPServerRun 514 $template FROMHOSTIP,"%fromhost-ip%" $template FILENAME,"/var/log/rsyslog/%fromhost-ip%/syslog.log"
а затем перезапустим rsyslog;
- Положим файлы trunk2type.sh, trunk2ip.sh, и trunk2alive.sh из архива в каталог externalscripts;
- Положим файл convert_trunks.sh в любое место и настроим его выполнение через cron раз в 10 минут.
Не забудьте поменять этих скриптах переменную PATH_TXT на актуальную.
Настроим Avaya Aura Communication Manager
Включим SNMP
- Зайдем браузером на веб-интерфейс Communication Manager
- В меню Administration → Server Maintenance → Alarms → SNMP Agent установим следующие параметры:
- Access from IP-addressess: Any или укажем IP-адрес Zabbix-сервера
- Включим SNMP Community v2 и установим имя read-only community в public
- Сохраним настройки.
- Применим настройки, перезапустив агента (Alarms → Agent Status)
- В меню Security → Firewall разрешим snmp и snmptrap (надо поставить обе галки напротив соответствующих служб)
Включим сбор статистики по транкам
- Запустим Avaya Site Administration, подключимся к станции и выполним команду:
ch mea tru
А затем укажем все номера транков, по которым надо собирать статистику. На версиях R13 и ранее количеств наблюдаемых транков ограничено 20 транками.
Настроим DECT-станции
Avaya DECT R3
Настройки надо производить только на главной базе. Остальные базы подхватят эти параметры автоматически.
- При включении SNMP укажем IP-адрес сервера Zabbix и комюнити public.
- Его же укажем Syslog-сервере. Порт 514.
Avaya DECT R4
Настройки надо производить только на главной и бэкапной базах. Остальные базы подхватят эти параметры автоматически.
- При включении SNMP укажем IP-адрес сервера Zabbix и комюнити public.
- Его же укажем Syslog-сервере. Порт 514. уровень логирования 4 (Warnings) или 3 (Errors).
Spectralink IP-DECT Server 400/6500
Настройки надо производить только на главной базе. Остальные базы подхватят эти параметры автоматически. При применении настроек SNMP база потребует перезагрузки!!!
- При включении SNMP укажем IP-адрес сервера Zabbix, и комюнити public
- Его же укажем Syslog-сервере. Порт 514. уровень логирования 4 (Warnings) или 3 (Errors)
Настроим Медиа-шлюзы
После захода через telnet или ssh на медиашлюз введем следующие команды:
snmp-server community read-only public read-write <rw community>
set snmp trap <IP-адрес>
set snmp community trap public
Формируем список транков
Для мониторинга транка нам понадобится следующая информация по каждому из транков:
- Номер транка
- Название транка
- Тип транка
- Количесто линий в транке
- Количество линий out-of-service
- IP-адрес дальнего конца транка
Все эти данные можно получить через SNMP, но в этом случае не получится связать номер транка с адресом его дальней ноды. Поэтому придется это сделать в ручном режиме. Для облегчения этой задачи мной был создан в Excel`е файл, формирующий нужный нам список по результатам выполнения тех команд из Avaya Site Administration. Процедура следующая:
- В Avaya Site Administration нажимаем Ctrl+R и делаем отчеты в файлы csv по каждой из трех команд:
- li tru
- li sign
- li node-n a (на станциях ранее R15 эта команда выглядит как li node-n)
- Результаты каждой из трех команд импортируем в соответствующие листы файла Excel
- На листе Zabbix в результате мы получим нужную нам таблицу. Экспортируем ее в текстовый файл с названием avaya_node-names_<IP-адрес станции>.txt
Заведение узлов в Zabbix
В Zabbix заводим хосты станций, шлюзов и основных DETC-баз, прикрепляя к ним следующие шаблоны:
- Станция Avaya Aura версии младше R16.0.141:
- Template_Device_SNMP
- Template_ICMP
- Template SNMP AVAYA AURA PBX TRUNKS
- Template SNMP AVAYA AURA PBX MG
- Template SNMP AVAYA AURA EXTENSIONS (Если надо отдельно мониторить внутренние номера) Использовать с осторожностью — параметры внутренних номеров станция отдает очень неспешно!!!
- Медиашлюзы G4xx, G3xx, G7xx. Обратите внимание: мониторинг шлюзов G6xx не поддерживается!!!
- Template_Device_SNMP
- Template_ICMP
- Template SNMP AVAYA G3xx-G4xx-G6xx MEDIAGATE
- DECT-базы R3 и R4 (можно заводить все базы — как основные, так и работающие в slave-режиме)
- Template_Device_SNMPv1 (Да, эти станции держат только SNMPv1)
- Template_ICMP
- Template SNMP AVAYA IP-DECT R4
- DECT-базы Spectralink IP-DECT Server 6500 и 400 (можно заводить только master-базы)
- Template_Device_SNMP
- Template_ICMP
- Template SNMP Spectralink IP-DECT Server 6500_400
Так как часть параметров собирается раз в сутки и в шаблонах используется автообнаружение подавляющего большинства параметров учтите, что актуальные данные мы получим только через сутки-полтора.
Заключение
Есть несколько моментов, на которые хочу обратить внимание:
- На станциях R15 и по непонятным причинам может зависать SNMP-агент при четырех или более параллельных обращениях.
- Шаблон Template SNMP AVAYA AURA EXTENSIONS очень медленно работает при подключенных 100 и более телефонах. Советую включать его для первичного сканирования внутренних номеров, а затем отключить все группы датчиков не ключевых номеров (допустим кроме випов или входящих).
- По DECT-базам Avaya R3 и R4 крайне мало мониторинговой информации.
- При добавлении транка на станцию надо повторно сделать действия описанные в разделе «Заведение узлов в Zabbix».
- Анализ логов из rSyslog в данных шаблонах пока не реализован
Ссылки
Автор: ansealk