Поиск по базе знаний

FAQ

Частые вопросы

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

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

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

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

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

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

#

Объект лицензии — это абонент, ONU, коммутатор, узел связи, колодец, муфта или линия связи. Лимит задаётся отдельно по каждому типу, поэтому общее число объектов может превышать размер лицензии.

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

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

Как включить уведомления в Telegram

#
  1. Откройте карточку сотрудника и нажмите Редактировать.
  2. Заполните поле Уведомления → Telegram chat_id.
  3. Укажите токен бота в разделе Настройки → Уведомления → Messenger, поле Bot token.
  4. Сотрудник должен первым написать боту, иначе Telegram не даст отправить сообщение.

Проверка: создайте заявку на этого сотрудника — в чат придёт сообщение со ссылкой на задание. Набор типов заданий, по которым уходят уведомления, задаётся в Настройки → Задания.

Если сервер не имеет прямого доступа к Telegram, настройте прокси — см. вопрос «Как добавить proxy для Telegram».

Как настроить главную страницу

#

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

Какие горячие клавиши доступны в системе

#

Горячие клавиши работают только в четырёх местах: схема коммутации сооружения связи, карта покрытия, карточка задания и логическая схема здания.

Сочетание Где Действие
Ctrl + Левый Click Схема коммутации, логическая схема Переключение линии по волокну или порту
Ctrl + Левый Click Схемы, карта Выделение объекта: делитель, кросс, оборудование, кабельная линия
Ctrl + Z Схемы Отмена последнего действия
Ctrl + Левый Click Карточка задания Открыть карточку настройки по названию типа
Ctrl + Левый Click Карта, по «Полигону» Открыть карточку объекта
Alt + Левый Click Карта, по сооружению связи Открыть схему коммутации
Alt + Левый Click Карта, по полигону здания Открыть план здания
Alt + Левый Click Карта, по «Полигону» Перейти к правке координат

Примечание

«Полигон» реагирует на два сочетания: Ctrl + Левый Click открывает карточку, Alt + Левый Click — правку координат.

Почему в карточке клиента доступны не все типы заданий

#

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

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

#

Несколько абонентов из одного импорта не создаётся. Обрабатывается первый лицевой счёт, остальные пропускаются.

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

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

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

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

#

Добавление выполняется тремя последовательными вызовами.

1. Завести ONU на склад — 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.

2. Передать ONU абоненту — cat=inventory&action=transfer_inventory.

Обязательные: inventory_id, dst_account. Необязательные: comment, employee_id.

3. Создать коммутацию — cat=commutation&action=add.

Обязательные: object_type, object_id, object1_side, object1_port, object2_type, object2_id, object2_side, object2_port.

Как добавить proxy для Telegram

#

Прокси указывается в настройках уведомлений как URL. Поддерживаются socks5 и http.

Примерsocks://telegram.proxy
tcp://telegram.proxy:8125

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

Пример

Если прокси слушает нестандартный порт, указывайте его явно: tcp://telegram.proxy:8125.

#
  1. Зарегистрируйтесь на dadata.ru.
  2. Получите API key и secret.
  3. Укажите их в Настройки → Основная → Покрытие → Геокодинг.
  4. Включите опцию Поиск по карте с помощью DaData.ru.

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

#

На OLT переключите режим таблицы интерфейсов:

Командыmib-compatibility iftable v2

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

Почему зависает OLT BDCOM при опросе списка ONU

#

Причина — слабый CPU OLT и низкий приоритет SNMP-опроса. Под нагрузкой коммутатор не успевает отвечать и зависает.

Восстановление занимает 30–60 минут после пика нагрузки. Временная мера — перезагрузка; стабильная работа держится около недели.

Важно

Для серии 3310 прошивок с исправлением нет — программно проблему не решить. Серия 36** стабильнее, но при предельной нагрузке зависает так же.

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

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

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

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

#

В конфигурации nginx после строки server { подключите отдельный файл:

/etc/nginx/sites-available/cubalink.confserver {
    include /etc/nginx/conf.d/blacklist.conf;

Файл /etc/nginx/conf.d/blacklist.conf:

/etc/nginx/conf.d/blacklist.confallow 192.168.0.0/16; # Local
allow 172.16.0.0/16; # Local
deny all;

Строка deny all; обязательна: без неё директивы allow ничего не ограничивают и доступ остаётся открытым для всех.

Примените конфигурацию:

Командыsudo nginx -t
sudo /etc/init.d/nginx restart

Что означает ошибка Redis ... used by another copy

#

Redis-база привязана к URL установки. Если на одном сервере развёрнуто несколько копий системы, второй экземпляр получает эту ошибку — номер базы Redis уже занят первой копией.

Решение — назначить новой копии другой номер базы Redis.

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

Командыsudo -u www-data php install.phar remove_cached_url

Важно

redis-cli ... flushall удаляет данные во всех базах Redis на сервере, включая кеш и очереди других приложений. Используйте remove_cached_url. flushall допустим только на выделенном Redis, который не использует больше никто.

Как исправить ICMP Socket permission error

#

Ошибка возникает у usm_poller: процесс не имеет права открывать ICMP-сокет.

Остановите опрос, исправьте владельца лога и перезапустите 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-сокеты для всех групп:

Командыecho 'net.ipv4.ping_group_range = 0 2147483647' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Примечание

Если sysctl отвечает invalid argument, задайте диапазон 0 65535 — часть ядер не принимает значения больше 65535.

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

#

Пользовательские файлы лежат в каталоге установки:

  • {DOCUMENT_ROOT}/public/main/js/user_script.js — сценарии;
  • {DOCUMENT_ROOT}/public/main/css/user_style.css — стили.

Создайте файлы и передайте их веб-серверу:

Командыcd /var/www/erp/public/main
touch js/user_script.js css/user_style.css
sudo chown www-data:www-data js/user_script.js css/user_style.css

Обновления системы эти файлы не затирают.

Основные CSS-переменные:

Пример:root {
    --main-color: #1871A5;
    --main-color-hover: #3F51B5;
    --main-color-left-menu-icon: #008000;
}

Как изменить ограничение на размер загружаемых файлов

#

Правьте php.ini:

/etc/php/8.2/fpm/php.ini; Maximum allowed size for uploaded files.
upload_max_filesize = 2M
post_max_size = 8M

post_max_size должен быть не меньше upload_max_filesize. Перезапустите PHP:

Командыsudo systemctl restart php*-fpm

Для установок под Apache или с встроенным PHP перезапустите apache2 или nginx соответственно.

Как изменить разрешённые для загрузки расширения файлов

#

Откройте Настройка → Основная → Разное, найдите поле Расширения файлов, разрешенные для загрузки, добавьте нужные расширения через разделитель и сохраните.

Важно

Не добавляйте php и pl. Загрузка исполняемых скриптов приводит к компрометации сервера.

Почему загруженные файлы повреждаются и не открываются

#

Веб-сервер обрабатывает тело multipart-запроса как текст, перекодирует его и ломает структуру файла.

Симптомы: размер и контрольная сумма файла меняются после загрузки и скачивания, скачанный файл не открывается.

Отключите перекодирование в конфигурации Apache:

/etc/apache2/conf-enabled/charset.confCharsetRecodeMultipartForms Off

Перезапустите веб-сервер:

Командыsudo systemctl restart apache2

Для других веб-серверов перезапустите используемый сервер.

Как удалить неиспользуемые объекты, созданные при импорте

#

Откройте служебный маршрут:

Примерhttps://erp.example.ru/oper/?core_section=settings_main&action=diag_delete_unuse_address

Замените erp.example.ru на адрес вашей установки. Страница удаляет объекты, созданные при импорте и не привязанные ни к одному абоненту.

Резервные копии и восстановление

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

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

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

#

База данных, SQL-скрипт со сжатием:

Команды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

Команды можно поставить в crontab. Для копии «с полями» сохраняйте весь каталог установки.

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

#

Из SQL-скрипта:

Команды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-файла:

Команды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

Важно

dropdb удаляет текущую базу без возможности отката. Убедитесь, что копия читается и содержит нужные данные, до запуска восстановления.

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

Опишите задачу — команда поможет разобраться.