====== Добавление устройства в мониторинг PON ====== Работает начиная с версии биллинга: 3.13.04 ===== Настройка ===== ==== SNMP шаблоны ==== \\ Для начала нужно создать SNMP шаблон. \\ Сделать это можно в разделе: **Настройки => Система => SNMP Шаблоны** {{:billing:howto:snmp_templates.jpg?500|}} \\ У шаблона есть параметр **система опроса** которая указывает модулю сбора данных что нужно делать с устройством у которого указан данный шаблон. \\ У данного параметра есть два значения: * Биллинг - MikBiLL будет стараться автоматически определить тип устройства и если обнаруженный тип есть в списке поддерживаемых устройств, модуль начнет сбор данных. * Внешний скрипт - модуль сбора данных запустит определенный скрипт и будет ожидать в результате нужные данные \\ После создания шаблона, нужно создать тип устройства где и будет указан созданный шаблон На данный момент в автоматическом режиме биллинг поддерживает устройства: * BDCOM * P3310 * P3608 * P3616 * GP3600-08B ==== Типы устройств ==== \\ Для этого перейдем в раздел **Настройки => Система => Типы устройств** {{:billing:howto:snmp_devtype.jpg?800|}} \\ В новом типе устройства нужно выбрать * **Тип оборудования** - OLT * **Мониторинг** - ранее созданный snmp шаблон ==== Устройства ==== \\ Теперь можно создать устройство, перейдем в **Настройки => Система => Устройства** {{:billing:howto:snmp_device.jpg?500|}} \\ В новом устройстве нужно * Указать тип устройства * Указать 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 \\ Остальные файлы можно глянуть на [[https://github.com/Nekkoy/ponCollector|Github]] - [[https://github.com/Nekkoy/ponCollector/blob/main/devtype_6.php|devtype_6.php]] - [[https://github.com/Nekkoy/ponCollector/blob/main/bdcom_3310.php|bdcom_3310.php]] - [[https://github.com/Nekkoy/ponCollector/blob/main/NetSNMP.php|NetSNMP.php]] Файлы **bdcom_3310.php** и **NetSNMP.php** должны размещаться рядом с **devtype_6.php** ==== Ожидаемый формат ответа ==== { "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 * [[#tab-debian|Debian]] * [[#tab-radhat|Centos]] service cron restart service crond restart