Документация

FAQ

Частые вопросы по лицензии, интерфейсу, Telegram-уведомлениям, API, резервным копиям и эксплуатации.

Для администраторов, инженеров и внедренцев: короткий путь к ответам, которые обычно ищут уже во время работы.

FAQ

Частые вопросы и инструкции

Это практическая база для администраторов, инженеров, внедренцев и сотрудников, которые каждый день работают в САП «Кубалинк».

Лицензирование и интерфейс

Базовые вопросы по работе с платформой

Ответы по учёту объектов, Telegram-уведомлениям, главной странице, горячим клавишам и повседневной работе сотрудников.

Как считаются объекты и как работает лимит лицензии#

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

Лицензия задаёт лимит на количество объектов по каждому типу, а ориентиром для лицензирования становится наибольшее число объектов в одной категории. Текущий лимит можно проверить в разделе Настройки → Лимиты объектов.

  • Абонент считается объектом.
  • ONU считается отдельным объектом.
  • Коммутаторы, кроссы, муфты, узлы связи, колодцы и линии связи также учитываются как объекты.
Пример: при лицензии до 20 000 объектов можно одновременно иметь 19 998 ONU, 19 999 муфт, 19 999 коммутаторов и 19 999 линий связи. После достижения лимита система покажет, что требуется расширение лицензии.
Как включить уведомления в Telegram#

Откройте карточку сотрудника и нажмите Редактировать. В поле Уведомления → Telegram chat_id должен быть указан корректный chat ID сотрудника.

После этого зарегистрируйте Telegram-бота, получите для него токен и укажите его в разделе Настройки → Уведомления → Messenger в поле Bot token.

  • Сотрудник должен первым написать боту любое сообщение.
  • Проверить настройку можно через создание заявки на сотрудника и переход по Telegram-ссылке в заявке.
  • Типы заданий, по которым уходят уведомления, настраиваются в Настройки → Задания.
Как настроить главную страницу#

Нажмите на свой профиль в правом верхнем углу интерфейса. После этого можно настраивать главную страницу как для себя, так и для остальных пользователей системы.

Какие горячие клавиши доступны в системе#
  • Ctrl + Левый Click в схеме коммутации позволяет быстро переключить волокно или порт без дополнительного элемента интерфейса.
  • Ctrl + Z в схеме коммутации отменяет последнее действие.
  • Ctrl + Левый Click по названию типа задания открывает форму настройки этого типа задания.
  • Alt + Левый Click по значку сооружения на карте покрытия открывает схему коммутации сооружения связи.
  • Alt + Левый Click по полигону здания на карте покрытия открывает план этого здания.
Почему в карточке клиента доступны не все типы заданий#

В разделе Техподдержка → Создать задание отображаются только те типы заданий, в которых можно выбрать дом. Если тип задания не поддерживает выбор дома, он не появится в карточке клиента.

Что будет, если у абонента несколько лицевых счетов#

Если у абонента несколько лицевых счетов, САП «Кубалинк» не создаёт несколько абонентов. Обрабатывается первый лицевой счёт, остальные пропускаются.

API и интеграции

Сценарии подключения внешних сервисов

Telegram, API-операции, геокодинг и интеграции — всё, что часто всплывает при внедрении и расширении системы.

Как добавить ONU через API#

Типовой сценарий состоит из трёх шагов: приход ONU на склад, перемещение на абонента и последующая кроссировка.

  1. Приход на склад: метод cat=inventory&action=add_inventory
Обязательные параметры:
inventory_catalog_id
trader_id
storage_id

Необязательные параметры:
amount
cost
comment
sn
barcode
inventory_number
document_number
document_date
additional_data_ip
additional_data_mac
is_check_serial_number
  1. Перемещение на абонента: метод cat=inventory&action=transfer_inventory
Обязательные параметры:
inventory_id
dst_account

Необязательные параметры:
comment
employee_id
  1. Коммутация: метод cat=commutation&action=add
Обязательные параметры:
object_type
object_id
object1_side
object1_port
object2_type
object2_id
object2_side
object2_port
Как добавить proxy для Telegram#

Поддерживаются стандартные прокси socks5 и http, которые указываются в виде URL.

socks://telegram.proxy
tcp://telegram.proxy:8125

Протокол MTProto не поддерживается, так как он бинарный и к HTTP-боту неприменим.

Почему не отображаются интерфейсы в списке ONU на OLT ZTE#

На OLT ZTE выполните команду:

mib-compatibility iftable v2

После этого перечитайте FDB-таблицу и проверьте, появились ли интерфейсы в списке ONU.

Эксплуатация и доступ

Настройка инфраструктуры и диагностика ошибок

Ограничение доступа, Redis, ICMP, пользовательские скрипты и обслуживание рабочей установки.

Как ограничить доступ к системе по подсетям#

Добавьте в конфигурацию nginx строку ниже сразу после server {:

include /etc/nginx/conf.d/blacklist.conf;

В файле blacklist.conf перечислите разрешённые подсети:

allow 192.168.0.0/16; # Local
allow 172.16.0.0/16; # Local

После внесения изменений проверьте конфигурацию и перезапустите nginx:

sudo nginx -t
sudo /etc/init.d/nginx restart
Что означает ошибка Redis...used by another copy...#

Ошибка возникает, когда одна и та же Redis-база используется несколькими копиями САП «Кубалинк» с разными URL. Система привязывает Redis-базу к URL установки, чтобы кэш не пересекался между разными копиями.

Если для новой копии случайно оставили тот же номер базы Redis, назначьте ей отдельную базу. Если же вы просто изменили URL уже существующей установки, сбросьте старую привязку командой:

sudo -u www-data php install.phar remove_cached_url

Если требуется полностью очистить базы Redis, используйте:

redis-cli -h 127.0.0.1 -p 6379 -a Ваш_пароль flushall
Как исправить ICMP Socket permission error#

Ошибка в usm_poller означает, что ОС не разрешает использовать ICMP для непривилегированного пользователя.

Сначала остановите poller, переведите службу на пользователя www-data, исправьте владельца лог-файла и перезапустите supervisor:

sudo supervisorctl stop usm_poller:*
sudo chown www-data:www-data /var/log/usm_poller/poller.log
sudo systemctl restart supervisor
sudo supervisorctl status

Если проблема остаётся, разрешите ICMP для непривилегированных пользователей через sysctl:

echo 'net.ipv4.ping_group_range = 0 2147483647' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Если получите invalid argument, установите диапазон 0 65535 и снова выполните sudo sysctl -p.

Как кастомизировать интерфейс и пользовательские сценарии#

Для пользовательских CSS- и JS-правок предусмотрены два файла:

{DOCUMENT_ROOT}/public/main/js/user_script.js
{DOCUMENT_ROOT}/public/main/css/user_style.css

Если файлов ещё нет, создайте их и назначьте владельца www-data:

touch {DOCUMENT_ROOT}/public/main/js/user_script.js
touch {DOCUMENT_ROOT}/public/main/css/user_style.css
chown www-data {DOCUMENT_ROOT}/public/main/js/user_script.js
chown www-data {DOCUMENT_ROOT}/public/main/css/user_style.css

Эти файлы не затираются при установке обновлений. Через них можно менять переменные интерфейса, добавлять свои скрипты и реализовывать сценарии вроде плавающей плашки или sticky header в карточке оборудования.

:root {
    --main-color: #1871A5;
    --main-color-hover: #3F51B5;
    --main-color-left-menu-icon: #008000;
}
Как удалить неиспользуемые объекты, созданные при импорте#

Для удаления адресов, созданных по ошибке при импорте из биллинга, используйте диагностический маршрут:

/oper/?core_section=settings_main&action=diag_delete_unuse_address
Резервные копии и восстановление

Подготовка к восстановлению и защита данных

Команды для бэкапа базы и файлов, восстановление из SQL-скрипта или dump-файла.

Как выполнять резервное копирование#

Для базы данных можно использовать SQL-скрипт или dump-формат PostgreSQL. Любую из команд ниже можно добавить в crontab для автоматического выполнения.

# SQL-script
sudo -u postgres pg_dump --no-acl -Fp -Z 5 cubalink > /backup/cubalink.sql.gz

# DUMP
sudo -u postgres pg_dump --no-acl -Fc cubalink > /backup/cubalink.dump

Для базового резервного копирования файлов достаточно архивировать конфигурацию и вложения:

sudo tar -czf /backup/cubalink.tgz .env common/config/settings.json var/attachments

Базы данных и этих файлов хватает для восстановления системы. Если хотите запас с полями, архивируйте весь каталог установки.

Как восстановить систему из резервной копии#

Для восстановления из SQL-скрипта нужно создать новую базу, подключить расширение postgis и затем импортировать дамп:

sudo -u postgres dropdb cubalink
sudo -u postgres createdb -e -E "UTF-8" -l "ru_RU.UTF-8" -O cubalink -T template0 cubalink
sudo -u postgres psql -d cubalink -c "CREATE EXTENSION postgis"
gunzip < cubalink.sql.gz | sudo -u postgres psql -d cubalink

Для восстановления из dump-файла используется полное восстановление базы через pg_restore:

sudo -u postgres dropdb cubalink
sudo -u postgres pg_restore --clean --if-exists --create --exit-on-error --dbname=postgres cubalink.dump

После любого способа восстановления обязательно очистите кэш приложения:

cd /var/www/erp
php run cache/flush-all
Нужна помощь

Не нашли ответ
в FAQ?