====== Добавление устройства в мониторинг 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