|
Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.
|
Изменения (4)
просмотр истории страницыh1. Для чего нужен nas_event_daemon |
|
Демон отправки событий *nas_event_daemon* забирает из стека(таблица базы "events_stack") команды для отправки и вызывает функции [session|CarbonBilling:Интеграция оборудования интернет] скрипта, передавая в него параметры абонента и NAS h1. Описание работы |
|
nas_event_daemon работает следующим образом: |
... |
{code}ps aux |grep nas{code} |
Не должно со временем расти. |
{note}* При управлении оборудованием по CoA средствами radiclient не должно возникать проблем с параллельной отправкой команд * При управлении оборудованием по ssh или telnet могут возникать проблемы: ssh может работать недостаточно быстро, telnet часто имеет ограничение на одновременное количество сессий{note} |
h1. Отладка Узнать количество команд в стеке с группировкой по типу команды можно выполнив скрипт *event_count.sh*: {code}chroot /app/asr_billing/ event_count.sh{code} Вывод будет приблизительно следующий: {code}# compact stack TOTAL COUNT 0 # main stack COUNT EVENT_TYPE 52 b_negbal 4 b_sys 44 u_b_negbal 207 user_accept 75 user_add 16 user_del 50 user_drop 73 user_edit 1 user_rate_set_cancel 168 user_redirect 89 user_redirect_cancel 122 usluga_activated 28 usluga_add 3 usluga_deactivated 4 usluga_del 1 usluga_disabled 28 usluga_recalc TOTAL COUNT 965{code} Скрипт смотрит два стека: # *compact stack* # *main stack* После сгруппированного списка по каждому стеку можно увидеть суммарное количество команд. Структура таблиц: # *compact stack* (таблица базы данных EVENTS_STACK_COMPACT) - изначально команды для отправки на оборудование добавляются в compact stack, его наполняют различные подсистемы (radiusd, sync_nasd) базовыми данными по событию которое нужно отправить на оборудование и обработчик абонентов переносит их в main stack дополняя нужными данными: #* *ABONENT_ID* - ID абонента #* *USER_ID* - ID учетной записи #* *CMD* - [Команда для выполнения|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=51708843|] (как в примере выше, названия команд в основном и компактном стеке одинаковы) #* *USER_IP* - IP абонента #* *NAS_IP* - IP NAS/BRAS #* *USLUGA_ID* - ID услуги (указывается при изменении статусов услуг абонента в событиях usluga_add, usluga_activated и т.д.) #* *ACCT_SESSION_ID* - Acct-Session-ID (уникальный ID сессии, используется при авторизации по RADIUS) # *main stack* (таблица базы данных EVENTS_STACK) - этот стек формируется из compact stack, к нему добавляются расширенные данные для передачи в скрипт управления оборудованием, после чего они обрабатываются демоном nas_event_daemon и удаляются из стека #* *ABONENT_ID* - ID абонента #* *USER_ID* - ID учетной записи #* *EVENT_TYPE* - [Команда для выполнения|CarbonBilling:Состояния пользователей, услуг и команды управления] (то же что CMD в compact stack) #* *NAS_TYPE* - ID [типа NAS или OSS схемы|CarbonBilling:Интеграция оборудования интернет] #* *EVENT_DATE* - дата добавления события в main stack #* *PARAMS* - набор переменных, передаваемый в скрипт событий #* *OWNER_SCRIPT* - подсистема [воркера|CarbonBilling:Worker] добавившая событие в стек #* *OWNER_FUNCTION* - функция этой под системы в которой вызвано добавление события в стек #* *NAS_ID* - ID NAS/BRAS #* *TRY_COUNT* - количество выполненных попыток отправки команд |