... {toc} h1. Описание Система синхронизации исправляет сессии абонентов на оборудовании: она сравнивает их состояния на NAS и в биллинге, если обнаружена разница, добавляет нужные команд в стек для отправки. В биллинге эта система называется *sync_nasd*. Для того или иного маршрутизатора её запуск и работа зависят от следующих опций: * Вкладка "*Описание*" *- "*Синхронизировать пользователей на этом NAS*": синхронизация выполняется. *- "*В эксплуатации*": синхронизация выполняется и в случае если она завершена неудачно создаётся автоматическая заявка в портале HelpDesk {note}Во всех стандартных схемах опция "*Синхронизировать пользователей на этом NAS*" установлена по-умолчанию и не отключается{note} Для всех маршрутизаторов с включенной синхронизацией поочередно запускается скрипт *sync_nas*, который непосредственно выполняет все действия по загрузке списков и наполнению стека событий. h2. Настройка Настройки системы находятся в меню "*Настройки*" \-> "*Настройки (в файле)*" \-> "*Управление абонентами и тарифами*" и описаны в статье "[Настройки (в файле)|CarbonBilling:Настройки (в файле)]" h1. Схема работы С оборудования во временные файлы загружаются списки абонентов, подобные списки выгружаются из биллинга, они сравниваются и если обнаружена разница, на оборудование отправляется ряд команд для исправления ситуации. В зависимости от используемой схемы интеграции, временные файлы могут располагаться в следующимх местах: * Базовый скрипт событий: */var/lib/event/sync/*{color:#ff0000}{*}NAS-IP{*}{color}*/* * OSS-схема: */*{color:#ff0000}{*}OSS-директория{*}{color}*/cache/sync/*{color:#ff0000}{*}NAS-IP{*}{color}*/* Более детальное описание: # Используя функцию *users_from_nas()* [скрипта событий|CarbonBilling:Интеграция оборудования интернет], система загружает с оборудования IP-адреса абонентов: \\ \\ #* *auth_list.nas*: авторизованные #* *negbal_list.nas*: заблокированные по балансу #* *blocked_list.nas*: заблокированные администратором \\ \\ # Используя [API биллинга|CarbonBilling:API REST v2.0] выгружает IP-адреса абонентов и сравнивает с такими же списками загруженными с оборудования: \\ \\ #* *auth_list.billing*: авторизованные #* *negbal_list.billing*: заблокированные по балансу #* *blocked_list.billing*: заблокированные администратором \\ \\ #* *auth_list.nas.*{color:#3366ff}{*}add{*}{color} и *auth_list.nas.*{color:#ff9900}{*}del{*}{color}: абоненты, которых нужно добавить в лист авторизованных и удалить из него #* *negbal_list.nas.*{color:#3366ff}{*}add{*}{color} и *negbal_list.nas.*{color:#ff9900}{*}del{*}{color}: боненты, которых нужно заблокировать по балансу или снять соответствующую блокировку #* *blocked_list.nas.*{color:#3366ff}{*}add{*}{color} и *blocked_list.nas.*{color:#ff9900}{*}del{*}{color}:абоненты, которым нужно добавить административную блокировку или снять её \\ \\ # Используя полученные списки *add* и *del* добавляет следующие команды в стек на отправку - таблица *events_stack_compact* в БД биллинга: \\ \\ {note}Если в списки загруженные с оборудования попал адрес, не относящийся к кому-либо из абонентов биллинга, по нему не будет отправлено ни каких команд. В логе синхронизации будет ошибка: {code}ERROR' user_id= abonent_id= not found for 10.88.0.72 try direct call{code} В приведенном примере, синхронизатор нашел на NAS IP 10.88.0.72, но он не привязан какой-либо учетной записи.{note} \\ #* *auth_list.nas.add*: user_add #* *auth_list.nas.del*: user_del #* *negbal_list.nas.add*: user_redirect #* *negbal_list.nas.del*: user_redirect_cancel #* *blocked_list.nas.add*: user_drop #* *blocked_list.nas.del*: user_accept Минимально необходимые списки с оборудования: * Авторизованные абоненты
|
... h2. Для всех NAS *sync_nas* запускает синхронизацию всех маршрутизаторов сразу при запуске, перезапустить её вручную можно следующими способами: * В веб-интерфейсе: зайдите в настройки, снимите галочку "Включить систему синхронизации абонентов", сохраните настройки, после чего установите галочку и снова сохраните. * В командном интерфейсе: {code}chroot /app/asr_billing service sync_nasd restart{code} h2. Для конкретного NAS Выполните скрипт *sync_nas* {panel}chroot /app/asr_billing sync_nas --help{panel} {code}запускается для конкретного NAS, подключает scriptname, сравнивает всё, отправляет команды sync_nas --nas <nas ip> --scriptname <event script in /var/lib/event/> --oss_path <oss path to nas folder in /var/oss/ 'rtsh list' to list folders ex:/var/oss/core/mikrotik> --coa_psw <coa password> --radius_secret <radius secret> --telnet_password <telnet password> --debug # usage: example: sync_nas --nas 169.1.18.12 --scriptname xge_router.sh --coa_psw 12345pass --debug{code} h1. Отладка синхронизации Отладить систему Вы можете анализируя лог её работы: {code}/app/asr_billing/var/log/sync_nasd.log{code} Так же Вы можете выполнить скрипт синхронизации конкретного маршрутизатора с повышенным логированием, например: {code}bash -x /usr/local/bin/sync_nas --nas 169.1.18.12 --scriptname xge_router.sh --coa_psw 12345pass --debug{code} {note}Файл *sync_nasd.log* записывается только при запуске системы синхронизации *sync_nasd*, при запуске непосредственно скрипта *sync_nas* +логи записаны не будут+! Но Вы можете перенаправить вывод скрипта в отдельный файл для последующего анализа, например: {code}sync_nas --nas 169.1.18.12 --scriptname xge_router.sh --coa_psw 12345pass --debug &> sync_nas_xge_debug.log{code}{note}
|