Документация по версии 1.4 — различия между версиями

Материал из ExpertBilling
Перейти к: навигация, поиск
(Установка и начальная настройка)
 
(не показано 30 промежуточных версий 2 участников)
Строка 1: Строка 1:
{{H:h|Template:{{NAMESPACE}}:Editor toc}}
 
 
 
 
== Введение  ==
 
== Введение  ==
 
Руководство будет полезно как профессионалам, имеющим опыт работы с биллинг-системами, так и пользователям, впервые сталкивающимся с подобными программными комплексами.
 
Руководство будет полезно как профессионалам, имеющим опыт работы с биллинг-системами, так и пользователям, впервые сталкивающимся с подобными программными комплексами.
Строка 12: Строка 9:
  
 
=== Общая информация о биллинг-системах ===
 
=== Общая информация о биллинг-системах ===
В современном мире ресурсы каналов интернет-доступа остаются ограниченными, поэтому поставщики услуг (провайдеры) стремятся добиться максимальной эффективности использования доступных интернет-мощностей.
+
[[Общая информация о биллинг-системах]]
 
 
Достичь высокой эффективности невозможно без гибкого управления потреблением интернет-услуг. Для учета и контроля объемов потребленных услуг интернет-доступа используются специализированные системы, которые на основе анализа сетевой статистики отслеживают активность (трафик) каждого пользователя и, в соответствии с установленными правилами, преобразуют её в единицы тарификации (как правило, деньги). Этот процесс называется тарификацией.
 
 
 
Системы биллинга, к которым принадлежит и Expert Billing System, производят учет и тарификацию предоставляемых услуг (в данном случае ­­- интернет-трафика), а также автоматизируют процесс выставления клиентам счетов для оплаты.
 
 
 
Биллинг-системы бывают очень разными и могут классифицироваться по различным признакам: методам авторизации, принципам построения (модульности), особенности сбора статистики и управления серверами доступа.
 
 
 
Один из вариантов классификации современных биллинг-систем представлен на
 
схеме:
 
 
 
[[Файл:Ebs_020.gif]]
 
 
 
В случае с использованием авторизации пользователей, отличной от RADIUS, практически всегда в биллинг встраиваются собственные средства снятия, обработки и записи наработанной статистики. Если же NAS (Network Access Server) и сам биллинг находятся на разных системах, то для снятия статистики используются проверенные средства: alive-пакеты от NAS-сервера, протокол SNMP
 
(Simple Network Monitoring Protocol) либо NetFlow. Использование протокола NetFlow (протокол, разработанный компанией Cisco специально для мониторинга сети) позволяет получать подробнейшую информацию о сетевой активности пользователей. Данный способ сбора статистики является основным для построения мощных и отказоустойчивых систем.
 
 
 
ExpertBilling относится к виду биллинг-систем с логически разделённой системой управления доступом и системой тарификации, хотя они и могут находиться на одном физическом сервере.
 
  
 
== Системные требования ==
 
== Системные требования ==
Строка 55: Строка 36:
  
 
* CPU: 1GHz
 
* CPU: 1GHz
* RAM: 512MB
+
* RAM: 1GB
 
* HDD: 20GB
 
* HDD: 20GB
  
Строка 70: Строка 51:
 
[[Expert Billing System]] построена на базе устоявшейся схемы с разделёнными компонентами авторизации, сбора статистики и ядром, отвечающим за логику работы системы. Структура биллинг-системы позволяет легко расширять её за счёт установки дополнительных RADIUS-серверов и коллекторов статистики.
 
[[Expert Billing System]] построена на базе устоявшейся схемы с разделёнными компонентами авторизации, сбора статистики и ядром, отвечающим за логику работы системы. Структура биллинг-системы позволяет легко расширять её за счёт установки дополнительных RADIUS-серверов и коллекторов статистики.
  
[[Файл:ebs_029.png]]
+
[[Файл:ebs_029.png|center]]
  
 
[[Expert Billing System]] состоит из серверной и клиентской частей. Серверная часть включает следующие компоненты:
 
[[Expert Billing System]] состоит из серверной и клиентской частей. Серверная часть включает следующие компоненты:
Строка 117: Строка 98:
 
             nf_dump/ - каталог буферного хранения NetFlow статистики.
 
             nf_dump/ - каталог буферного хранения NetFlow статистики.
 
             scripts/ - каталог с дополнительными скриптами
 
             scripts/ - каталог с дополнительными скриптами
 +
              paymentgateways/ -система импорта платежей из текстовых файлов     
 
             sql/ - каталог с первоначальным дампом базы данных
 
             sql/ - каталог с первоначальным дампом базы данных
 +
              upgrade/ - каталог с sql файлами для апгрейда биллинг-системы на новые версии
 
             temp/ - каталог хранения NetFlow статистики
 
             temp/ - каталог хранения NetFlow статистики
 
             ebs_config.ini - основной файл настроек биллинг-системы
 
             ebs_config.ini - основной файл настроек биллинг-системы
Строка 130: Строка 113:
 
           ebscab/
 
           ebscab/
 
                   settings.py - файл настроек веб-кабинета
 
                   settings.py - файл настроек веб-кабинета
 +
          django/ - веб-фреймворк django
 +
          django.wsgi - скрипт для работы apache с веб-кабинетом
 +
        backup/ - бэкапы биллинг-системы, осуществляемые скриптом апгрейда
 +
        stats/ - rrd файлы о трафике пользователей для построения графиков
  
 
== Настройка действий на сервере доступа ==
 
== Настройка действий на сервере доступа ==
Строка 137: Строка 124:
 
[[Создание отчётов]]
 
[[Создание отчётов]]
  
== Принцип работы с IPN абонентами ==
+
== Работа с субаккаунтами и аккаунтами ==
ExpertBilling позволяет обслуживать как коммутируемые(PPTP/PPPOE/HoSpot), так и некоммутируемые соединения. В случае работы с IPN(IP Network, IPoE) тарифными планами, или PPPOE/PPTP тарифными планами с дублированием IPN действий схема работы системы выглядит следующим образом.
 
  
[[Файл:ipn_alg.png|center]]
+
[[Accounts and Subaccounts|Работа с субаккаунтами и аккаунтами]]
  
 +
== Принцип работы с IPN абонентами ==
  
=== Схема работы с IPN тарифными планами ===
+
[[Работа с IPN абонентами и тарифными планами.]]
Биллинг-система ExpertBilling 1.4 спроектирована таким образом, чтобы иметь возможность выполнять IPN действия для аккаунта и для субаккаунтов. Начиная с версии 1.4 возможность назначать аккаунтам IP/MAC была перенесена в субаккаунты. Таким образом выполнение IPN действий для аккаунта актуально только в случае выполнения групповых действий над всеми субаккаунтами или самим аккаунтом. К примеру блокирование всех правил на сервере доступа с комментарием, равным ID аккаунта. Данный подход может так же применяться в случае продажи услуг, доступ к которым может осуществляться по логину/логину паролю без назначения IP/mac адресов и других сетевых атрибутов аккаунта (хостинг, веб-почта, шаринг и д.р.).
 
  
Выполнение IPN действий происходит методом парсинга комманд сервера доступа(вторая закладка настроек сервера доступа) и их отправки на сервер доступа по протоколу SSH. В случае использования опции ssh_backend в конфиг-файле, транспортом между биллингом и сервером доступа может быть любой сетевой протокол, который будет реализовать бэкенд. Это может быть ssh/telnet/routeros api или любой другой. В команды сервера доступа могут быть подставлены переменные из аккаунта, субаккаунта, сервера доступа и настройки скорости. Подробнее читайте об этом в разделе о серверах доступа.
+
== Установка и начальная настройка ==
 
+
=== Установка Ubuntu ===
Команды управления по-умолчанию позволяют полноценно выполнять необходимые действия на сервере доступа, однако вы их можете изменять по своему усмотрению.
+
[[Руководство по установке Ubuntu 10.04]]
 
 
=== Управление аккаунтом ===
 
При создании абонента система посылает на сервер доступа команду "Добавить абонента" из настроек сервера доступа в интерфейсе администратора. Команда "Добавить абонента" является шаблоном, в котором служебные слова 
 
заменяются соответствующими значениями. Резальтатом работы команды должны стать добавленные, но неактивированные записи.
 
 
 
Для использования в шаблоне команды могут быть использованы следующие переменные аккаунта:
 
<pre>
 
$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
 
</pre>
 
Так же могут быть использованы переменные сервера доступа:
 
<pre>
 
$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
 
</pre>
 
Активация абонента должна приводить к активации добавленных на сервер доступа записей. Активация происходит в том случае, если абонент не активен и у него нет блокировок или ограничений по размеру баланса. Для активации используется соответствующий NAS Actions из параметров сервера доступа. В данной команде можно использовать те же подстановочные символы, что и для добавления абонента.
 
 
 
Деактивация абонента должна приводить к деактивации добавленных на сервер доступа записей. Деактивация происходит в том случае, если абонент активен и у него появилась одна или несколько блокировок.
 
 
 
Удаление абонента происходит при его удалении из системы. Используемые подстановочные символы аналогичны команде добавления. Обратите внимание, что команда удаления с сервера доступа так же выставляет в системе статус "Не активен на сервере доступа" для аккаунта.
 
 
 
Состояние каждого аккаунта и его субаккаунтов вы можете контроллировать через EBS Admin в списке абонентов.
 
 
 
[[Файл:account_ipn_status.png|center]]
 
=== Управление субаккаунтами ===
 
Управление субаккаунтами осуществляется аналогично управлению аккаунтами, за тем исключением что становится доступно 3 дополнительные команды: установить IPN скорость, установить VPN скорость, сбросить VPN сессию.
 
 
 
Добавление/удаление субаккаунта происходит при соответствующих действиях в системе. При этом доступны следующие переменные:
 
<pre>
 
$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
 
</pre>
 
Так же могут быть использованы переменные сервера доступа:
 
<pre>
 
$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
 
</pre>
 
и переменные аккаунта
 
<pre>
 
$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
 
</pre>
 
 
 
Активация/деактивация аккаунта выполняется аналогичным способом с использованием тех же переменных.
 
 
 
Установка скорости производится аналогичным способом через 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 тарифов===
+
=== Настройка MikroTik для работы с ExpertBilling ===
ExpertBilling позволяет использовать IPN действия и для PPTP/PPPOE тарифных планов.
+
[[Статья по настройке RouterOS MikroTik 5.7]]
  
Схема использования IPN действий для PPTP/PPPOE тарифных планов.
 
 
IPN действия для PPTP/PPPOE тарифных планов отличаются от работы с IPN тарифными планами лиш тем, что настройки скорости для абонентов устанавливаются после каждой RADIUS авторизации.
 
 
Использование IPN действий целесообразно тогда, когда вы не хотите запрещать PPTP/PPPOE абонентам авторизацию при их блокировке, однако хотите закрыть доступ к определённым ресурсам или перенаправлять всех таких абонентов на какие-то ресурсы.
 
 
== Установка и начальная настройка ==
 
 
=== Установка биллинга ===
 
=== Установка биллинга ===
 
Установка и апгрейд биллинга ExpertBilling 1.4 изменена и теперь осуществляется скриптом, идующим в комплекте.  
 
Установка и апгрейд биллинга ExpertBilling 1.4 изменена и теперь осуществляется скриптом, идующим в комплекте.  
Строка 363: Строка 147:
 
tar -xvzf путь к архиву с биллингом
 
tar -xvzf путь к архиву с биллингом
 
</pre>
 
</pre>
В итоге у вас должен распаковаться файл ebs_manage.py и архив с биллинг-системой, который будет иметь вид ebs-номер сборки.tar.gz
+
В итоге у вас должен распаковаться файл ebs_manage.py, архив с биллинг-системой, который будет иметь вид ebs-номер сборки.tar.gz, и инструкция по установке в файле install.txt.
  
 
Далее установим требуемые библиотеки и создадим начальные папки:
 
Далее установим требуемые библиотеки и создадим начальные папки:
 
<pre>
 
<pre>
 
apt-get update
 
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
+
apt-get install postgresql postgresql-contrib 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 python-pexpect python-pip
 +
 
 +
pip install ipaddr mako IPy
 +
 
 
mkdir /opt/ebs
 
mkdir /opt/ebs
mkdir /opt/ebs/data/
+
 
apt-get install postgresql-8.4 postgresql-contrib-8.4
 
 
</pre>
 
</pre>
Создадим базу данных и импортируем функции для работы с типами данных. После команды '''createuser -P -s ebs''' система спроси у вас пароль для пользователя базы данных ebs. Запишите и запомните его.
+
Создадим базу данных и импортируем функции для работы с типами данных. После команды '''createuser -P -s ebs''' система спросит у вас пароль для пользователя базы данных ebs. Запишите и запомните его.
 
<pre>
 
<pre>
 
su postgres
 
su postgres
createuser -P -s ebs
+
$createuser -P -s ebs
createdb -O ebs ebs
+
$createdb -O ebs ebs
psql ebs -f /usr/share/postgresql/8.4/contrib/int_aggregate.sql
+
Для версии postgresql<9
psql ebs -f /usr/share/postgresql/8.4/contrib/_int.sql
+
$psql ebs -f /usr/share/postgresql/8.4/contrib/int_aggregate.sql
 +
$psql ebs -f /usr/share/postgresql/8.4/contrib/_int.sql
 +
Для версии postgresql>9
 +
$psql ebs
 +
ebs=# create extension intagg;
 +
ebs=# create extension intarray;
 +
ebs=# exit;
 +
$exit
 
exit
 
exit
 
</pre>
 
</pre>
Строка 388: Строка 181:
 
</pre>
 
</pre>
 
Часть установки веб-кабинета инсталлятор выполнит автоматически. Для окончания настройки укажите параметры подключения к базе данных и свою временную зону в файле /opt/ebs/web/ebscab/settings.py.
 
Часть установки веб-кабинета инсталлятор выполнит автоматически. Для окончания настройки укажите параметры подключения к базе данных и свою временную зону в файле /opt/ebs/web/ebscab/settings.py.
 +
Затем  пара простых команд:
 +
<pre>
 +
cd /opt/ebs/web/ebscab/
 +
ln -s ../django django
 +
python manage.py syncdb --noinput
 +
</pre>
 +
После этого выполните команду billing start и проверьте лог-файлы биллинг-системы на предмет наличия ошибок. Остановить все процессы биллинг-системы можно командой billing stop или billing force-stop. Для корректного завершения рекомендуем пользоваться первым вариантом команды.
 +
 +
Сейчас откройте EBSAdmin, укажите IP-адрес сервера с биллингом, имя admin, пароль admin, и попробуйте подключиться.
 +
[[Инструкция по установке серверной части биллинг-системы ExpertBilling 1.4]](устаревшее, вариант ручной установки)
 +
 +
=== Обновление системы ===
 +
'''Внимание!!!'''
 +
Перед обновлением системы убедитесь, что папка /opt/ebs/data/temp пуста, иначе создание бэкапа может длиться очень долго.
 +
 +
Для обновления версии 1.4.1 на более свежую ревизию необходимо распаковать архив, полученный от разработчика. Обычно он имеет вид XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.tar.gz, где XXXXX - ключ keygetter-а.
 +
<pre>
 +
tar -xvzf XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.tar.gz
 +
</pre>
 +
В результате чего появятся файлы:
 +
<pre>
 +
ebs-XXXXM.tar.gz
 +
install.txt
 +
ebs_manage.py
 +
</pre>
 +
Необходимо просмотреть файл install.txt на предмет появления новых зависимостей и удовлетворить их.
 +
После чего нужно посмотреть в файле /opt/ebs/data/ebs_config.ini параметры подключения к БД и запустить обновление:
 +
<pre>
 +
python ebs_manage.py upgrade ebs-XXXXM.tar.gz
 +
</pre>
 +
Система несколько раз спросит данные от БД. Введите их.
 +
Во время обновления могут возникнуть ошибки обновления схемы базы данных, после чего система спросить продолжать ли обновление. В таких случаях желательно проимпортировать проблемные запросы руками через консоль psql и продолжить обновление, или обратиться к разработчику.
 +
В процессе обновления скрипт спросит обновлять ли веб-кабинет. Как правило, это необходимое действие. После обновления веб-кабинета нужно его заново настроить (/opt/ebs/web/ebscab/settings.py).
 +
Повторной настройки после каждого обновления можно избежать, если создать рядом с settings.py файл settings_local.py и переопределить в нём нужные настройки из settings.py.
  
После этого выполните команду billing start и проверьте лог-файлы биллинг-системы на предмет наличия ошибок. Остановить все процессы биллинг-системы можно командой billing start или billing force-start. Для корректного завершения рекомендуем пользоваться первым вариантом команды.
+
После окончания обновления выполните команду billing start.
  
 +
В случае, если потребовалось откатиться - дамп папки data, ebscab и базы данных скрипт обновления создаёт в /opt/ebs/backup/.
  
[[Инструкция по установке серверной части биллинг-системы ExpertBilling 1.4]](устаревшее, вариант ручной установки)
 
  
 
=== Установка веб-кабинета ===
 
=== Установка веб-кабинета ===
 +
Обратите внимание, что файл ebs_manage.py проводит всю работу и данное руководство нужно только, если вы будете устанавливать веб-кабинет руками.
 +
 +
 
[[Инструкция по установке веб-кабинета]].
 
[[Инструкция по установке веб-кабинета]].
 +
 +
=== Настройка HelpDesk ===
 +
[[HelpDeskSetup|Настройка HelpDesk]]
  
 
=== Установка и настройка дополнительных скриптов ===
 
=== Установка и настройка дополнительных скриптов ===
Строка 403: Строка 236:
  
 
== Установка клиентской части ==
 
== Установка клиентской части ==
 +
 +
== Формат хранения сырой статистики ==
 +
[[RawNetFlowStat| Формат хранения сырой статистики]]
 +
 +
== Установка и настройка HotSpot ==
 +
 +
[[HotSpot Mikrotik|Настройка и описание работы MikroTik HotSpot]]
  
 
== Защита от нелегального копирования ===
 
== Защита от нелегального копирования ===
Строка 420: Строка 260:
  
 
[[Решение проблем с веб-кабинетом]]
 
[[Решение проблем с веб-кабинетом]]
 +
 +
[[Перетарификация]]
 +
 +
[[Monit|Настройка мониторинга процессов биллинга]]
 +
 +
[[qiwi|Настройка приёма платежей QiWi]]
 +
 +
[[WebmoneyMerchantSetup|Настройка приёма платежей WebMoney]]
  
 
== Варианты настройки ==
 
== Варианты настройки ==
 
[[Настройка команд сервера доступа для привязки IP к MAC на IPN тарифе]]
 
[[Настройка команд сервера доступа для привязки IP к MAC на IPN тарифе]]
 +
 +
[[unlim-tarifs|Решение для провайдеров, предоставляющих безлимитные тарифные планы]]
 +
 +
[[traffic-tarifs|Решение для провайдеров, предоставляющих тарифные планы с тарификацией трафика]]
 +
 +
== Пользовательские статьи ==
 +
[[option249|Выдача маршрутов по DHCP]]

Текущая версия на 13:41, 8 июня 2012

Содержание

Введение

Руководство будет полезно как профессионалам, имеющим опыт работы с биллинг-системами, так и пользователям, впервые сталкивающимся с подобными программными комплексами.

Для опытных пользователей порекомендуем ознакомиться с особенностями развертывания системы (раздел «Установка и предварительная настройка»), а затем обратиться к разделу «Решение задач», при необходимости уточняя детали в соответствующих подразделах раздела «Использование системы».

Если вы ранее не занимались настройкой и эксплуатацией подобных систем, советуем вам продолжить чтение по порядку. В случае необходимости, уточняйте значение терминов в глоссарии («Приложение 1»).

Для каждого из разделов системы («Тарифные планы», «Периоды тарификации» и т.п.) описываются особенности их реализации и назначение, интерфейс, а также при необходимости приводятся примеры использования возможностей Expert Billing Admin. Раздел «Решение задач» целиком состоит из пошаговых руководств по решению типовых задач.

Общая информация о биллинг-системах

Общая информация о биллинг-системах

Системные требования

Минимальные системные требования позволят запустить биллинг-систему со всеми компонентами и обеспечат работу систем тарификации и управления доступом при объёме абонентской базы в среднем до 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: 1GB
  • HDD: 20GB

Рекомендуемая конфигурация

  • CPU: 2-4 ядерный процессор от 2 GHz на ядро
  • RAM: 4GB
  • HDD: >250GB

Обзор возможностей

Обзор возможностей

Структурно-логическая схема работы системы

Expert Billing System построена на базе устоявшейся схемы с разделёнными компонентами авторизации, сбора статистики и ядром, отвечающим за логику работы системы. Структура биллинг-системы позволяет легко расширять её за счёт установки дополнительных RADIUS-серверов и коллекторов статистики.

Ebs 029.png

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/ - каталог с дополнительными скриптами
              paymentgateways/ -система импорта платежей из текстовых файлов      
           sql/ - каталог с первоначальным дампом базы данных
              upgrade/ - каталог с sql файлами для апгрейда биллинг-системы на новые версии
           temp/ - каталог хранения NetFlow статистики
           ebs_config.ini - основной файл настроек биллинг-системы
           ebs_config_runtime.ini - дополнительный внутрисистемный файл настроек биллинг-системы
           core - ядро биллинг-системы
           rad - радиус сервер
           nf - NetFlow коллектор
           nfroutine - NetFlow агрегатор и тарификатор
           rpc - RPC-сервер
           license.lic - файл лицензии
       web/
          ebscab/
                 settings.py - файл настроек веб-кабинета
          django/ - веб-фреймворк django
          django.wsgi - скрипт для работы apache с веб-кабинетом
       backup/ - бэкапы биллинг-системы, осуществляемые скриптом апгрейда
       stats/ - rrd файлы о трафике пользователей для построения графиков

Настройка действий на сервере доступа

Настройка действий на сервере доступа.

Работа с документами и отчётами

Создание отчётов

Работа с субаккаунтами и аккаунтами

Работа с субаккаунтами и аккаунтами

Принцип работы с IPN абонентами

Работа с IPN абонентами и тарифными планами.

Установка и начальная настройка

Установка Ubuntu

Руководство по установке Ubuntu 10.04

Настройка MikroTik для работы с ExpertBilling

Статья по настройке RouterOS MikroTik 5.7

Установка биллинга

Установка и апгрейд биллинга ExpertBilling 1.4 изменена и теперь осуществляется скриптом, идующим в комплекте.

Для установки выполните в консоли с правами суперпользователя:

cd ~
tar -xvzf путь к архиву с биллингом

В итоге у вас должен распаковаться файл ebs_manage.py, архив с биллинг-системой, который будет иметь вид ebs-номер сборки.tar.gz, и инструкция по установке в файле install.txt.

Далее установим требуемые библиотеки и создадим начальные папки:

apt-get update
apt-get install postgresql postgresql-contrib 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 python-pexpect python-pip

pip install ipaddr mako IPy

mkdir /opt/ebs

Создадим базу данных и импортируем функции для работы с типами данных. После команды createuser -P -s ebs система спросит у вас пароль для пользователя базы данных ebs. Запишите и запомните его.

su postgres
$createuser -P -s ebs
$createdb -O ebs ebs
Для версии postgresql<9
$psql ebs -f /usr/share/postgresql/8.4/contrib/int_aggregate.sql
$psql ebs -f /usr/share/postgresql/8.4/contrib/_int.sql
Для версии postgresql>9
$psql ebs
ebs=# create extension intagg;
ebs=# create extension intarray;
ebs=# exit;
$exit
exit

Запустите утилиту установки биллинга и вводите требуемые значения для доступа к БД. Скрипт 3 раза спросит пароль для доступа к базе данных, имя и параметры подключения к базе данных. Введите пароль, указанный выше при создании пользователя базы данных.

python ebs_manage.py install имя распакованного архива с биллингом(вид ebs-*****.tar.gz)

Часть установки веб-кабинета инсталлятор выполнит автоматически. Для окончания настройки укажите параметры подключения к базе данных и свою временную зону в файле /opt/ebs/web/ebscab/settings.py. Затем пара простых команд:

cd /opt/ebs/web/ebscab/
ln -s ../django django
python manage.py syncdb --noinput

После этого выполните команду billing start и проверьте лог-файлы биллинг-системы на предмет наличия ошибок. Остановить все процессы биллинг-системы можно командой billing stop или billing force-stop. Для корректного завершения рекомендуем пользоваться первым вариантом команды.

Сейчас откройте EBSAdmin, укажите IP-адрес сервера с биллингом, имя admin, пароль admin, и попробуйте подключиться. Инструкция по установке серверной части биллинг-системы ExpertBilling 1.4(устаревшее, вариант ручной установки)

Обновление системы

Внимание!!! Перед обновлением системы убедитесь, что папка /opt/ebs/data/temp пуста, иначе создание бэкапа может длиться очень долго.

Для обновления версии 1.4.1 на более свежую ревизию необходимо распаковать архив, полученный от разработчика. Обычно он имеет вид XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.tar.gz, где XXXXX - ключ keygetter-а.

tar -xvzf XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.tar.gz

В результате чего появятся файлы:

ebs-XXXXM.tar.gz
install.txt
ebs_manage.py

Необходимо просмотреть файл install.txt на предмет появления новых зависимостей и удовлетворить их. После чего нужно посмотреть в файле /opt/ebs/data/ebs_config.ini параметры подключения к БД и запустить обновление:

python ebs_manage.py upgrade ebs-XXXXM.tar.gz

Система несколько раз спросит данные от БД. Введите их. Во время обновления могут возникнуть ошибки обновления схемы базы данных, после чего система спросить продолжать ли обновление. В таких случаях желательно проимпортировать проблемные запросы руками через консоль psql и продолжить обновление, или обратиться к разработчику. В процессе обновления скрипт спросит обновлять ли веб-кабинет. Как правило, это необходимое действие. После обновления веб-кабинета нужно его заново настроить (/opt/ebs/web/ebscab/settings.py). Повторной настройки после каждого обновления можно избежать, если создать рядом с settings.py файл settings_local.py и переопределить в нём нужные настройки из settings.py.

После окончания обновления выполните команду billing start.

В случае, если потребовалось откатиться - дамп папки data, ebscab и базы данных скрипт обновления создаёт в /opt/ebs/backup/.


Установка веб-кабинета

Обратите внимание, что файл ebs_manage.py проводит всю работу и данное руководство нужно только, если вы будете устанавливать веб-кабинет руками.


Инструкция по установке веб-кабинета.

Настройка HelpDesk

Настройка HelpDesk

Установка и настройка дополнительных скриптов

Вспомогательные скрипты и утилиты

Система мониторинга загрузки серверов доступа

Установка клиентской части

Формат хранения сырой статистики

Формат хранения сырой статистики

Установка и настройка HotSpot

Настройка и описание работы MikroTik HotSpot

Защита от нелегального копирования =

Внимание!!! Expert Billing System является продуктом интеллектуального труда. Его нелегальное распространение и использование преследуется по закону.

Каждый серверный компонент Expert Billing System при установке привязывается к аппаратной конфигурации сервера. Это означает, что при изменении конфигурации системы (в частности, переразбивке/замене/добавлении/удалении жестких дисков, изменении номера активного интерфейса, добавлении/удалении любых IDE/SATA/SСSI-устройств, добавлении/извлечении USB дисков) и смене ОС система не будет работать из-за ограничений, налагаемых защитой от нелегального копирования. При изменении конфигурации оборудования вам необходимо обратиться к разработчику для получения новой копии Expert Billing System.

В комплекте поставки системы имеется файл license.lic, уникальный для каждого легального пользователя системы. Он является частью системы защиты Expert Billing System от нелегального распространения и не подлежит модификации и удалению. В случае его отсутствия или изменения, биллинг-система не будет работать.

В соответствии с лицензионным соглашением, покупатель получает права на модификацию и распространение кода веб-кабинета. При этом компания-разработчик Expert Billing System не несет никакой ответственности за возможный ущерб, нанесенный по причине использования модифицированного веб-кабинета.

Решение проблем

Решение проблем с интерфейсом администратора

Решение проблем с ядром

Решение проблем с веб-кабинетом

Перетарификация

Настройка мониторинга процессов биллинга

Настройка приёма платежей QiWi

Настройка приёма платежей WebMoney

Варианты настройки

Настройка команд сервера доступа для привязки IP к MAC на IPN тарифе

Решение для провайдеров, предоставляющих безлимитные тарифные планы

Решение для провайдеров, предоставляющих тарифные планы с тарификацией трафика

Пользовательские статьи

Выдача маршрутов по DHCP