Документация по версии 1.4
Содержание
- 1 Введение
- 2 Системные требования
- 3 Поддерживаемые ОС
- 4 Обзор возможностей
- 5 Структурно-логическая схема работы системы
- 6 Структура директорий
- 7 Настройка действий на сервере доступа
- 8 Работа с документами и отчётами
- 9 Принцип работы с IPN абонентами
- 10 Установка и начальная настройка
- 11 Установка клиентской части
- 12 Защита от нелегального копирования =
- 13 Решение проблем
- 14 Варианты настройки
Введение
Руководство будет полезно как профессионалам, имеющим опыт работы с биллинг-системами, так и пользователям, впервые сталкивающимся с подобными программными комплексами.
Для опытных пользователей порекомендуем ознакомиться с особенностями развертывания системы (раздел «Установка и предварительная настройка»), а затем обратиться к разделу «Решение задач», при необходимости уточняя детали в соответствующих подразделах раздела «Использование системы».
Если вы ранее не занимались настройкой и эксплуатацией подобных систем, советуем вам продолжить чтение по порядку. В случае необходимости, уточняйте значение терминов в глоссарии («Приложение 1»).
Для каждого из разделов системы («Тарифные планы», «Периоды тарификации» и т.п.) описываются особенности их реализации и назначение, интерфейс, а также при необходимости приводятся примеры использования возможностей Expert Billing Admin. Раздел «Решение задач» целиком состоит из пошаговых руководств по решению типовых задач.
Общая информация о биллинг-системах
В современном мире ресурсы каналов интернет-доступа остаются ограниченными, поэтому поставщики услуг (провайдеры) стремятся добиться максимальной эффективности использования доступных интернет-мощностей.
Достичь высокой эффективности невозможно без гибкого управления потреблением интернет-услуг. Для учета и контроля объемов потребленных услуг интернет-доступа используются специализированные системы, которые на основе анализа сетевой статистики отслеживают активность (трафик) каждого пользователя и, в соответствии с установленными правилами, преобразуют её в единицы тарификации (как правило, деньги). Этот процесс называется тарификацией.
Системы биллинга, к которым принадлежит и Expert Billing System, производят учет и тарификацию предоставляемых услуг (в данном случае - интернет-трафика), а также автоматизируют процесс выставления клиентам счетов для оплаты.
Биллинг-системы бывают очень разными и могут классифицироваться по различным признакам: методам авторизации, принципам построения (модульности), особенности сбора статистики и управления серверами доступа.
Один из вариантов классификации современных биллинг-систем представлен на схеме:
В случае с использованием авторизации пользователей, отличной от RADIUS, практически всегда в биллинг встраиваются собственные средства снятия, обработки и записи наработанной статистики. Если же NAS (Network Access Server) и сам биллинг находятся на разных системах, то для снятия статистики используются проверенные средства: alive-пакеты от NAS-сервера, протокол SNMP (Simple Network Monitoring Protocol) либо NetFlow. Использование протокола NetFlow (протокол, разработанный компанией Cisco специально для мониторинга сети) позволяет получать подробнейшую информацию о сетевой активности пользователей. Данный способ сбора статистики является основным для построения мощных и отказоустойчивых систем.
ExpertBilling относится к виду биллинг-систем с логически разделённой системой управления доступом и системой тарификации, хотя они и могут находиться на одном физическом сервере.
Системные требования
Минимальные системные требования позволят запустить биллинг-систему со всеми компонентами и обеспечат работу систем тарификации и управления доступом при объёме абонентской базы в среднем до 100-150 человек. Запись сырой статистики при этом рекомендуется отключить опцией write_flow = False в файле конфигурации ebs_config.ini
Рекомендуемая конфигурация(см.ниже) подойдёт для абонентской базы до 5000 человек при активном использоваии тарификации трафика и лимитов.
Оптимальная конфигурация компьютера для системы Expert Billing System зависит от ширины обслуживаемого биллингом канала и количества активных пользователей.
При решении типовых задач рекомендуется использовать компьютер с процессором, работающем на тактовой частоте не ниже 1 ГГц, снабженный не менее чем 512 МБ оперативной памяти.
Требования к объёму свободного места на диске напрямую зависят от того, насколько активно эксплуатируется система и требуется ли вам хранить NetFlow статистику. В случае хранения этой статистики мы рекомендуем использовать винчестеры объемом от 80 ГБ.
Обратите внимание: требования к объему свободного дискового пространства вызваны тем, что база данных при активном использовании биллинг-системы может значительно увеличиваться в объеме. Для корректной работы ExpertBilling необходимо обеспечить достаточное количество свободного дискового пространства на разделе с базой данных.
Поддерживаемые ОС
- Debian 5.1-6 32-bit
- Ubuntu 9.04-10.10 32-bit. Рекомендуется 10.04
- Ubuntu Server 9.04-10.10 32-bit - Рекомендуется 10.04
- Другие операционные системы на кодовой базе Debian/Ubuntu 32-bit
Использование 64-битных операционных систем не рекомендуется по причине наличия в составе биллинга встроеного оптимизатора, который не будет работать на 64-битной операционной системе. Тем самым будет наблюдаться падение производительности до 300% на некоторых задачах.
Минимальные системные требования
- CPU: 1GHz
- RAM: 512MB
- HDD: 20GB
Рекомендуемая конфигурация
- CPU: 2-4 ядерный процессор от 2 GHz на ядро
- RAM: 4GB
- HDD: >250GB
Обзор возможностей
Структурно-логическая схема работы системы
Expert Billing System построена на базе устоявшейся схемы с разделёнными компонентами авторизации, сбора статистики и ядром, отвечающим за логику работы системы. Структура биллинг-системы позволяет легко расширять её за счёт установки дополнительных RADIUS-серверов и коллекторов статистики.
Expert Billing System состоит из серверной и клиентской частей. Серверная часть включает следующие компоненты:
- Модуль core
- Модуль rad
- Модуль nf
- Модуль nfroutine
- Модуль rpc
- Веб-кабинет для пользователей
Модуль core – ядро биллинга, отвечающее за бизнес-логику (тарификация, списание средств, управление состоянием пользователей и др.)
Модуль rad предназначен для взаимодействия с сервером доступа по протоколу RADIUS.
Модуль nf используется в качестве коллектора NetFlow v5 статистики.
Модуль nfroutine производит агрегацию и обработку собранной модулем nf статистики о сетевой активности пользователей.
Модуль rpc предоставляет интерфейс для доступа к ядру биллинга извне (интерфейс администратора, интерфейс кассира, некоторые функции веб-кабинета).
Веб-кабинет пользователя представляет собой веб-приложение, написанное наязыке Python с использованием веб-фреймворка Django.
Клиентская часть Expert Billing System включает следующие компоненты:
- Интерфейс администриратора Expert Billing Admin
- Интерфейс кассира
Интерфейс администратора Expert Billing Admin является основным интерфейсом администратора для управления Expert Billing System, она выполнена в качестве отдельного приложения.
Интерфейс кассира также является отдельным приложением, которое позволяет управлять счетами пользователей (списание средств, пополнение счета и др.), переводить пользователей на другие тарифные платы и просматривать статистику по лимитам и остатку предоплаченного трафика.
Структура директорий
/opt/ebs/ data/ dicts/ - RADIUS словари ebscab/ - копия веб-кабинета fonts/ - шрифты, используемые ядром для генерации графиков init.d/ - init-скрипты log/ - каталог с лог-файлами core_log - лог-файл процесса core(ядра) rad_log - лог-файл сервера RADIUS nf_log - лог-файл NetFlow коллектора nfroutine_log - лог-файл агрегатора и тарификатора NetFlow rpc_log - лог-файл rpc-сервера modules/ - каталог системных библиотек nf_dump/ - каталог буферного хранения NetFlow статистики. scripts/ - каталог с дополнительными скриптами sql/ - каталог с первоначальным дампом базы данных temp/ - каталог хранения NetFlow статистики ebs_config.ini - основной файл настроек биллинг-системы ebs_config_runtime.ini - дополнительный внутрисистемный файл настроек биллинг-системы core - ядро биллинг-системы rad - радиус сервер nf - NetFlow коллектор nfroutine - NetFlow агрегатор и тарификатор rpc - RPC-сервер license.lic - файл лицензии web/ ebscab/ settings.py - файл настроек веб-кабинета
Настройка действий на сервере доступа
Настройка действий на сервере доступа.
Работа с документами и отчётами
Принцип работы с IPN абонентами
ExpertBilling позволяет обслуживать как коммутируемые(PPTP/PPPOE/HoSpot), так и некоммутируемые соединения. В случае работы с IPN(IP Network, IPoE) тарифными планами, или PPPOE/PPTP тарифными планами с дублированием IPN действий схема работы системы выглядит следующим образом.
Схема работы с IPN тарифными планами
Биллинг-система ExpertBilling 1.4 спроектирована таким образом, чтобы иметь возможность выполнять IPN действия для аккаунта и для субаккаунтов. Начиная с версии 1.4 возможность назначать аккаунтам IP/MAC была перенесена в субаккаунты. Таким образом выполнение IPN действий для аккаунта актуально только в случае выполнения групповых действий над всеми субаккаунтами или самим аккаунтом. К примеру блокирование всех правил на сервере доступа с комментарием, равным ID аккаунта. Данный подход может так же применяться в случае продажи услуг, доступ к которым может осуществляться по логину/логину паролю без назначения IP/mac адресов и других сетевых атрибутов аккаунта (хостинг, веб-почта, шаринг и д.р.).
Выполнение IPN действий происходит методом парсинга комманд сервера доступа(вторая закладка настроек сервера доступа) и их отправки на сервер доступа по протоколу SSH. В случае использования опции ssh_backend в конфиг-файле, транспортом между биллингом и сервером доступа может быть любой сетевой протокол, который будет реализовать бэкенд. Это может быть ssh/telnet/routeros api или любой другой. В команды сервера доступа могут быть подставлены переменные из аккаунта, субаккаунта, сервера доступа и настройки скорости. Подробнее читайте об этом в разделе о серверах доступа.
Команды управления по-умолчанию позволяют полноценно выполнять необходимые действия на сервере доступа, однако вы их можете изменять по своему усмотрению.
Управление аккаунтом
При создании абонента система посылает на сервер доступа команду "Добавить абонента" из настроек сервера доступа в интерфейсе администратора. Команда "Добавить абонента" является шаблоном, в котором служебные слова заменяются соответствующими значениями. Резальтатом работы команды должны стать добавленные, но неактивированные записи.
Для использования в шаблоне команды могут быть использованы следующие переменные аккаунта:
$account_id $ballance $credit $datetime $tarif_id $access_parameters_id $time_access_service_id $traffic_transmit_service_id $cost $reset_tarif_cost $settlement_period_id $tarif_active $acctf_id $account_created $disabled_by_limit $balance_blocked $nas_id $ipn_status $ipn_speed $vpn_speed $ipn_added $allow_express_pay $account_status $username $password $current_acctf $allow_ipn_with_null $allow_ipn_with_minus $allow_ipn_with_block $userblock_max_days
Так же могут быть использованы переменные сервера доступа:
$id $type $name $ipaddress $secret $login $password $allow_pptp $allow_pppoe $allow_ipn $user_add_action $user_enable_action $user_disable_action $user_delete_action $vpn_speed_action $ipn_speed_action $reset_action $speed_vendor_1 $speed_vendor_2 $speed_attr_id1 $speed_attr_id2 $speed_value1 $speed_value2 $identify $subacc_add_action $subacc_enable_action $subacc_disable_action $subacc_del_action $subacc_ipn_speed_action $acct_interim_interval
Активация абонента должна приводить к активации добавленных на сервер доступа записей. Активация происходит в том случае, если абонент не активен и у него нет блокировок или ограничений по размеру баланса. Для активации используется соответствующий NAS Actions из параметров сервера доступа. В данной команде можно использовать те же подстановочные символы, что и для добавления абонента.
Деактивация абонента должна приводить к деактивации добавленных на сервер доступа записей. Деактивация происходит в том случае, если абонент активен и у него появилась одна или несколько блокировок.
Удаление абонента происходит при его удалении из системы. Используемые подстановочные символы аналогичны команде добавления. Обратите внимание, что команда удаления с сервера доступа так же выставляет в системе статус "Не активен на сервере доступа" для аккаунта.
Состояние каждого аккаунта и его субаккаунтов вы можете контроллировать через EBS Admin в списке абонентов.
Управление субаккаунтами
Управление субаккаунтами осуществляется аналогично управлению аккаунтами, за тем исключением что становится доступно 3 дополнительные команды: установить IPN скорость, установить VPN скорость, сбросить VPN сессию.
Добавление/удаление субаккаунта происходит при соответствующих действиях в системе. При этом доступны следующие переменные:
$id $account_id $username $password $vpn_ip_address $ipn_ip_address $ipn_mac_address $nas_id $ipn_added $ipn_enabled $need_resync $speed $switch_id $switch_port $allow_dhcp $allow_dhcp_with_null $allow_dhcp_with_minus $allow_dhcp_with_block $allow_vpn_with_null $allow_vpn_with_minus $allow_vpn_with_block $associate_pptp_ipn_ip $associate_pppoe_ipn_mac $ipn_speed $vpn_speed $allow_addonservice $allow_ipn_with_null $allow_ipn_with_minus $allow_ipn_with_block $vlan $vpn_ipv6_ip_address $ipv4_ipn_pool_id $ipv4_vpn_pool_id
Так же могут быть использованы переменные сервера доступа:
$id $type $name $ipaddress $secret $login $password $allow_pptp $allow_pppoe $allow_ipn $user_add_action $user_enable_action $user_disable_action $user_delete_action $vpn_speed_action $ipn_speed_action $reset_action $speed_vendor_1 $speed_vendor_2 $speed_attr_id1 $speed_attr_id2 $speed_value1 $speed_value2 $identify $subacc_add_action $subacc_enable_action $subacc_disable_action $subacc_del_action $subacc_ipn_speed_action $acct_interim_interval
и переменные аккаунта
$account_id $ballance $credit $datetime $tarif_id $access_parameters_id $time_access_service_id $traffic_transmit_service_id $cost $reset_tarif_cost $settlement_period_id $tarif_active $acctf_id $account_created $disabled_by_limit $balance_blocked $nas_id $ipn_status $ipn_speed $vpn_speed $ipn_added $allow_express_pay $account_status $username $password $current_acctf $allow_ipn_with_null $allow_ipn_with_minus $allow_ipn_with_block $userblock_max_days
Активация/деактивация аккаунта выполняется аналогичным способом с использованием тех же переменных.
Установка скорости производится аналогичным способом через NAS Actions. В дополнение к подстановочным символам из команды на добавление абонента здесь используются $access_type, $session, $max_limit_tx, $max_limit_rx, $burst_limit_tx, $burst_limit_rx, $burst_treshold_tx, $burst_treshold_rx, $burst_time_tx, $burst_time_rx, $priority, $min_limit_tx, $min_limit_rx. Следуюет обратить внимание, но то, что перед добавлением записи, система должна перестраховаться и удалить уже возможно существующую с таким же идентификатором. Биллинг посылает команду на установку/изменение скорости в случае если скорость ещё не установлена или изменилась.
Состояние каждого субаккаунта вы можете видеть в его карточке.
Статус аккаунта
Пять иконок напротив каждого абонента означают (слева-направо) "У клиента достаточно средств на лицевом счету для работы в текущем расчётном периоде", "У клиента нет блокировок по лимитам", "Пользователь неактивен на NAS", "Пользователь не добавлен на NAS", "У пользователя есть активные RADIUS сессии".
IPN действия для VPN тарифов
ExpertBilling позволяет использовать IPN действия и для PPTP/PPPOE тарифных планов.
Схема использования IPN действий для PPTP/PPPOE тарифных планов.
IPN действия для PPTP/PPPOE тарифных планов отличаются от работы с IPN тарифными планами лиш тем, что настройки скорости для абонентов устанавливаются после каждой RADIUS авторизации.
Использование IPN действий целесообразно тогда, когда вы не хотите запрещать PPTP/PPPOE абонентам авторизацию при их блокировке, однако хотите закрыть доступ к определённым ресурсам или перенаправлять всех таких абонентов на какие-то ресурсы.
Установка и начальная настройка
Установка биллинга
Установка и апгрейд биллинга ExpertBilling 1.4 изменена и теперь осуществляется скриптом, идующим в комплекте.
Для установки выполните в консоли с правами суперпользователя:
cd ~ tar -xvzf путь к архиву с биллингом
В итоге у вас должен распаковаться файл ebs_manage.py и архив с биллинг-системой, который будет иметь вид ebs-номер сборки.tar.gz
Далее установим требуемые библиотеки и создадим начальные папки:
apt-get update apt-get install mc openssh-server python-twisted python-psycopg2 openssl python-paramiko python-dateutil python-pytils python-crypto libpython2.6 libapache2-mod-wsgi python-jsonpickle python-simplejson rrdtool snmp mkdir /opt/ebs mkdir /opt/ebs/data/ apt-get install postgresql-8.4 postgresql-contrib-8.4
Создадим базу данных и импортируем функции для работы с типами данных. После команды createuser -P -s ebs система спросит у вас пароль для пользователя базы данных ebs. Запишите и запомните его.
su postgres createuser -P -s ebs createdb -O ebs ebs psql ebs -f /usr/share/postgresql/8.4/contrib/int_aggregate.sql psql ebs -f /usr/share/postgresql/8.4/contrib/_int.sql exit
Запустите утилиту установки биллинга и вводите требуемые значения для доступа к БД. Скрипт 3 раза спросит пароль для доступа к базе данных, имя и параметры подключения к базе данных. Введите пароль, указанный выше при создании пользователя базы данных.
python ebs_manage.py install имя распакованного архива с биллингом(вид ebs-*****.tar.gz)
Часть установки веб-кабинета инсталлятор выполнит автоматически. Для окончания настройки укажите параметры подключения к базе данных и свою временную зону в файле /opt/ebs/web/ebscab/settings.py.
После этого выполните команду billing start и проверьте лог-файлы биллинг-системы на предмет наличия ошибок. Остановить все процессы биллинг-системы можно командой billing start или billing force-start. Для корректного завершения рекомендуем пользоваться первым вариантом команды.
Инструкция по установке серверной части биллинг-системы ExpertBilling 1.4(устаревшее, вариант ручной установки)
Установка веб-кабинета
Инструкция по установке веб-кабинета.
Установка и настройка дополнительных скриптов
Вспомогательные скрипты и утилиты
Система мониторинга загрузки серверов доступа
Установка клиентской части
Защита от нелегального копирования =
Внимание!!! Expert Billing System является продуктом интеллектуального труда. Его нелегальное распространение и использование преследуется по закону.
Каждый серверный компонент Expert Billing System при установке привязывается к аппаратной конфигурации сервера. Это означает, что при изменении конфигурации системы (в частности, переразбивке/замене/добавлении/удалении жестких дисков, изменении номера активного интерфейса, добавлении/удалении любых IDE/SATA/SСSI-устройств, добавлении/извлечении USB дисков) и смене ОС система не будет работать из-за ограничений, налагаемых защитой от нелегального копирования. При изменении конфигурации оборудования вам необходимо обратиться к разработчику для получения новой копии Expert Billing System.
В комплекте поставки системы имеется файл license.lic, уникальный для каждого легального пользователя системы. Он является частью системы защиты Expert Billing System от нелегального распространения и не подлежит модификации и удалению. В случае его отсутствия или изменения, биллинг-система не будет работать.
В соответствии с лицензионным соглашением, покупатель получает права на модификацию и распространение кода веб-кабинета. При этом компания-разработчик Expert Billing System не несет никакой ответственности за возможный ущерб, нанесенный по причине использования модифицированного веб-кабинета.
Решение проблем
Решение проблем с интерфейсом администратора
Решение проблем с веб-кабинетом
Варианты настройки
Настройка команд сервера доступа для привязки IP к MAC на IPN тарифе