Добавление BDCOM OLT в ABillS

В этой статье я приведу пример добавления BDCOM-P3310C и BDCOM-P3310B в биллинговую систему ABillS на операционной системе Ubuntu Server 16.04.

BDCOM OLT должен быть добавлен через меню «Обслуживание» — «Оборудование», после чего в меню «Настройка» — «Сервер доступа» можно редактировать пароль доступа (который должен быть одинаковым для SNMP и telnet), посмотреть статистику устройства можно в «Обслуживание» — «Оборудование» — «PON».

Чтобы рисовались графики установим необходимые компоненты и RRD::Simple:

apt-get install -yq cpanminus build-essential librrdtool-oo-perl rrdtool librrds-perl
cpanm RRDTool::OO

Посмотреть установленную версию можно так:

cpan -D RRDTool::OO

Чтобы собирались данные, добавим в /etc/crontab:

# Every 5m
*/5 * * * * root /usr/abills/libexec/billd equipment_pon

Если необходимо выполнять скрипт реже, например каждые 10 минут, то:

# Every 10m
*/10 * * * * root /usr/abills/libexec/billd equipment_pon STEP=600

Или раз в сутки в 3:55 ночи:

55 3 * * * root /usr/abills/libexec/billd equipment_pon STEP=86400

Чтобы cron не слал вывод команды на email, можно добавить в конце команды:
> /dev/null 2>&1
Или чтобы писать дебаг лог:
DEBUG=5 >/tmp/graph.log 2>&1

В случае проблем, запустим с DEBUG 1-7:

/usr/abills/libexec/billd equipment_pon DEBUG=1

Замечу что данные на графике начинают рисоваться после второго-третьего выполнения equipment_pon и если вы меняли STEP, то лучше удалить старые rrd файлы.

Чтобы стереть старые данные из базы и нановово внести ONU:

/usr/abills/libexec/billd equipment_pon RELOAD=1

Если в OLT была добавлена PON плата, то ее нужно добавить в биллинг с использованием RELOAD=1:

/usr/abills/libexec/billd equipment_pon NAS_IDS=55 RELOAD=1 SKIP_RRD=1 TRANSACTION=1

При большом количестве ONU для записи rrd файлов необходимо использовать отдельный диск либо например raid10 из ssd. У меня при количестве rrd файлов более 7000 и размере 700 Мб, это около 3000 ONU), equipment_pon выполнялся около 10 минут (это нормально), а вот при записи rrd файлов SSD диск сватал в ступор на 10+ секунд, из-за чего тоже база не отвечала, по этому нужно выполнять equipment_pon с низким приоритетом диска и cpu, например:

55 3 * * * root nice -n 19 ionice -c2 -n7 /usr/abills/libexec/billd equipment_pon STEP=86400 >/dev/null 2>&1

Посмотреть количество файлов и их размер можно например так:

ls -f /usr/abills/var/db/rrd/ | wc -l 
du -h -s /usr/abills/var/db/rrd/

Пример просмотра и очистки записей через базу:

SELECT * FROM equipment_pon_onu LIMIT 50
SELECT * FROM equipment_pon_onu ORDER BY datetime DESC LIMIT 50
TRUNCATE TABLE equipment_pon_onu;
TRUNCATE TABLE equipment_pon_ports;

Чтобы собирались данные но не рисовались графики добавим:

SKIP_RRD=1

Можно указать конкретные OLT (сервера доступа), по умолчанию все данные собираются со всех:

NAS_IDS='1;2;5;7'

Для поиска и оповещения о дублирующихся ONT можно добавить в cron:

/usr/abills/libexec/billd equipment_pon SERIAL_SCAN=1

На странице услуги клиента выбираем через поиск BDCOM OLT как сервер доступа, выбираем через поиск порт (onu), например находим по описанию (у меня все ONT подписаны в конфигурации BDCOM и эти описания подтягиваются по SNMP в ABillS)

Готово, теперь на странице клиента можно увидеть статус ethernet порта ONT, уровень сигнала и прочую информацию.

Для одного из OLT скрипт equipment_pon не заносил epon порты в базу данных, поэтому я добавил их вручную:

snmpwalk -v2c -c public 192.168.2.2 .1.3.6.1.2.1.2.2.1.2
INSERT INTO equipment_pon_ports VALUES ('37','7','9','epon','0/1','EPON0/1','0');
INSERT INTO equipment_pon_ports VALUES ('38','8','9','epon','0/2','EPON0/2','0');
INSERT INTO equipment_pon_ports VALUES ('39','9','9','epon','0/3','EPON0/3','0');
INSERT INTO equipment_pon_ports VALUES ('40','10','9','epon','0/4','EPON0/4','0');

Удалить если что можно так:

DELETE FROM equipment_pon_ports WHERE id=37;

Еще пример ручного добавления портов Huawei MA5683T OLT:

INSERT INTO equipment_pon_ports (snmp_id, nas_id, pon_type, branch, branch_desc, vlan_id)
VALUES ('4194328576', '12', 'gpon', '0/3/0', 'Huawei-MA5600-V800R008-GPON_UN', '0');
INSERT INTO equipment_pon_ports (snmp_id, nas_id, pon_type, branch, branch_desc, vlan_id)
VALUES ('4194328832', '12', 'gpon', '0/3/1', 'Huawei-MA5600-V800R008-GPON_UN', '0');

SNMP шаблон находится в /usr/abills/Abills/modules/Equipment/Bdcom.pm, а equipment_pon.pm в /usr/abills/libexec/billd.plugins/equipment_pon.pm

rrd файлы графиков хранятся в /usr/abills/var/db/rrd/, например формат имени файла NAS-ID_ONU-SNMP-ID_signal.rrd

Однажды один график не рисовался, по этому я убрал его и он создался при следующем выполнении скрипта, и начал рисоваться:

mv /usr/abills/var/db/rrd/12_4194304512.4_signal.rrd /tmp/12_4194304512.4_signal.rrd

Смотрите также мои статьи:
Настройка BDCOM P3310 EPON
Установка и настройка биллинговой системы ABillS

Оставьте комментарий

Добавить комментарий