Добавление устройства в мониторинг PON
Настройка
SNMP шаблоны
Для начала нужно создать SNMP шаблон.
Сделать это можно в разделе: Настройки ⇒ Система ⇒ SNMP Шаблоны
У шаблона есть параметр система опроса которая указывает модулю сбора данных что нужно делать с устройством у которого указан данный шаблон.
У данного параметра есть два значения:
- Биллинг - MikBiLL будет стараться автоматически определить тип устройства и если обнаруженный тип есть в списке поддерживаемых устройств, модуль начнет сбор данных.
- Внешний скрипт - модуль сбора данных запустит определенный скрипт и будет ожидать в результате нужные данные
После создания шаблона, нужно создать тип устройства где и будет указан созданный шаблон
На данный момент в автоматическом режиме биллинг поддерживает устройства:
- BDCOM
- P3310
- P3600-04
- P3600-08
- P3600-16
- P3608
- P3616
- GP3600-08B
- C-DATA
- FD1104
- FD1216
- Eltex
- LTP8X
- SmartFiber
- GPON
Типы устройств
Для этого перейдем в раздел Настройки ⇒ Система ⇒ Типы устройств
В новом типе устройства нужно выбрать
- Тип оборудования - OLT
- Мониторинг - ранее созданный snmp шаблон
Устройства
Теперь можно создать устройство, перейдем в Настройки ⇒ Система ⇒ Устройства
В новом устройстве нужно
- Указать тип устройства
- Указать IP адрес (должен быть доступен с сервера биллинга)
- Заполнить SNMP comunity
- Включить галочку SNMP
- В разделе "внешние ссылки" указать SNMP порт если он отличается от 161
Если нужно, можете заполнить логин и пароль и указать telnet порт в разделе "внешние ссылки"
Использование
Модуль сбора данных запускается консольной командой mbp_pon_poll, в случаи если в snmp шаблоне система опроса указана Внешний скрипт, то модуль проверит наличие файла:
/var/mikbill/custom_scripts/mikbill_pon_collector/olt_info/template_1/devtype_6.sh
в данном пути:
- template_1 - префикс template_ и ID шаблона.
- devtype_6 - префикс devtype_ и ID тип устройства.
Таким образом под каждый тип устройства можно использовать свой скрипт, либо один скрипт для всех типов устройств а данные забирать с другой системы (MySQL, Zabbix, PMon и т.д.)
При запуске на скрипт будут переданы параметры:
$1 - ID Устройства $2 - Название устройства $3 - IP адрес $4 - SNMP port $5 - SNMP comunity $6 - SNMP version $7 - telnet port $8 - telnet user $9 - telnet password
Пример скрипта:
#!/bin/bash cd /var/mikbill/custom_scripts/mikbill_pon_collector/olt_info/template_1 result=$(php devtype_6.php "$@") echo $result
Остальные файлы можно глянуть на Github
Ожидаемый формат ответа
{ "olt":{ "status":1, "uptime":"5d 23h 9m", "model":"P3310B", "version":"10.1.0B", "interfaces":{ "8":{ "index":8, "iface":"EPON0\/1", "sfp":1, "temperature":37, "signal":4.3, "operState":"up" }, "9":{ "index":9, "iface":"EPON0\/2", "sfp":1, "temperature":48.27, "signal":6.4, "operState":"down" } } }, "onu":{ "12":{ "index":12, "mac":"98:45:62:2f:24:eb", "ifname":"EPON0\/1:1", "distance":512, "online":1, "signal_rx":-21.5 }, "13":{ "index":13, "mac":"84:79:73:64:ee:b4", "ifname":"EPON0\/1:2", "distance":419, "online":1, "signal_rx":-25.4 } } }
- olt.status - устройство включено/выключено [1/0]
- olt.uptime - время работы устройства
- olt.model - модель устройства
- olt.version - версия прошивки
- olt.interfaces - список интерфейсов
- index - индекс интерфейса
- index - индекс интерфейса
- iface - название интерфейса
- sfp - это sfp интерфейс, да/нет [1/0]
- temperature - температура интерфейса
- signal - сигнал интерфейса
- operState - статус интерфейса
- olt.onu - список onu/ont терминалов
- index - индекс терминала
- index - индекс терминала
- mac - mac адрес терминала
- ifname - интерфейс терминала
- distance - дистанция до терминала
- online - статус терминала, онлайн/нет [1/0]
- signal_rx - сигнал от OLT к терминалу
CRON
Для автоматического запуска модуля сборщика, нужно добавить в крон запуск команды через скрипт
cd /var/mikbill/custom_scripts/ cat <<-EOF! > mbp_pon_poll.sh #!/bin/bash cd /var/www/mikbill/admin php index.php mbp_pon_poll EOF!
Дадим скрипту права запуска:
chmod +x mbp_pon_poll.sh
Далее добавим данный скрипт в крон на запуск каждые 5 минут:
echo "*/5 * * * * root /var/mikbill/custom_scripts/mbp_pon_poll.sh" >> /etc/crontab
И перезапустим cron