Руководство пользователя по установке АСР LANBilling FreeBSD 9

  1. Системные требования к аппаратно-программной части
  2. Установка необходимых для работы АСР LANBilling сервисов
  3. Установка АСР LANBilling
  4. Создание структуры БД АСР LANBilling
  5. Первоначальная настройка модуля LBucd (Netflow)
  6. Первоначальная настройка модуля LBarcd (RADIUS)
  7. Активация лицензии
  8. Запуск системы

Важно: начиная с релиза LANBilling 2.0.22 ОС FreeBSD 9 не поддерживается.


1. Системные требования к аппаратно-программной части

Для обеспечения функционирования АСР в штатном режиме (с использованием всех функций, предоставляемых ПО) необходима установка и настройка следующих программных компонентов:

Компоненты АСР:

  • пакет LBcore;
  • набор необходимых сетевых агентов.

Компоненты OC:

  • СУБД MySQL
    • 5.1.x - для релизов LANBilling 001 - 014. Начиная с релиза 015, поддержка версии прекращается.
    • 5.5.x - для релизов LANBilling 014 и выше.
    • 5.6.x - для релизов LANBilling 018 и выше.
    • 5.7.x - версия не поддерживается.
  • веб сервер (apache) с поддержкой версии PHP в зависимости от номера сборки:
    • 5.3.x - для релизов LANBilling 001 - 019. Начиная с релиза 020, поддержка версии прекращается.
    • 5.4.x - для релизов LANBilling 014 и выше.
    • 5.5.x - для релизов LANBilling 018 и выше.
  • Python 2.6.x или 2.7.x.

Библиотеки PHP:

  • mysql;
  • libjpeg;
  • libpng;
  • gd;
  • iconv;
  • soap;
  • multibyte strings;
  • sockets;
  • ghostscript (требуется для генерации шаблонов в pdf формате);
  • pdftk (библиотека для "склейки" pdf документов в один файл).

Перед началом установки должны быть открыты следующие сетевые порты 80 (443), 1502 (1503), 3306, 34012, 34100 и порты, указанные в файлах конфигурации агентов АСР, а также в настройках агентов АСР в веб-интерфейсе.


2. Установка необходимых для работы АСР LANBilling сервисов

Установка MySQL-сервера

Установку БД MySQL под FreeBSD производится через систему портов стандартным образом:

cd /usr/ports/databases/mysql55-server/ 
make WITH_CHARSET=utf8
make install clean
/usr/local/bin/mysql_install_db
chown -R mysql /var/db/mysql/

Конфигурация MySQL-сервера

Конфигурационный файл в FreeBSD расположен в /usr/local/etc/my.cnf.

В разделе клиента определяем следующие опции:

[client]
default-character-set = utf8
character-sets-dir = /usr/share/mysql/charsets

В разделе сервера добавляем следующие опции:

[mysqld]
character-set-server = utf8
character-sets-dir = /usr/share/mysql/charsets
skip-character-set-client-handshake
skip-name-resolve

innodb_data_home_dir = /var/lib/mysql/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql/
innodb_buffer_pool_size = 256M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 64M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

tmpdir = /tmp/

Если вы планируете использовать репликации БД на вторичный сервер, то вам так же следует включить опцию бинарного лога:

log-bin

Если репликация не планируется, то рекомендуется отключить данную опцию так как она создает существенную нагрузку. Параметры для innodb приведены для примера и указаны с расчетом если вы планируете учитывать трафик объемом 100-2000 Гб/мес., не используя детализации трафика. Если это не ваш случай, то данные параметры необходимо рассчитать самостоятельно исходя из конфигурации вашего сервера и обрабатываемым потоком данных. Для подбора оптимальных параметров можно также воспользоваться статьей или знанием 115, которое доступно в личном кабинете.

Запуск БД MySQL осуществляется соответствующим скриптом запуска из директории /etc/rc.d/init.d/ следующим образом:

/usr/local/etc/rc.d/mysql-server start

Если после установки БД и изменения конфигурационного файла my.cnf она не запускается, и в логе ошибок вы видите записи типа:

[ERROR] Plugin 'InnoDB' init function returned error. 
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 
[ERROR] Unknown/unsupported storage engine: InnoDB 
[ERROR] Aborting

Это означает, что некоторые настройки innodb, могут быть произведены только до первоначального запуска системы. В этом случае вам необходимо удалить следующие файлы:

rm -rf /var/lib/mysql/*-bin.*
rm -rf /var/lib/mysql/ib_logfile*
rm -f /var/lib/mysql/ibdata1

После этого запустить БД заново, воспользовавшись скриптом запуска, в результате чего структура БД будет вновь создана с новыми параметрами. Для автоматического запуска mysql выполняем команду:

echo 'mysql_enable="YES"' >> /etc/rc.conf

Следует обратить внимание на то, что местонахождение сокета mysql.sock различное при различных вариантах установки БД. При установке БД из «исходников» - это /tmp, а при установке через пакетный менеджер - это /var/lib/mysql. В связи с тем, что различные библиотеки компилируются статически с сетевым агентом, а не привязываются динамически, то местонахождение сокета задается собранной статически библиотекой, использующей его в директории /tmp. Соответственно, если после установки БД из пакета сокет находится в директории /var/lib/mysql, то в ряде случаев необходимо сделать «мягкую» ссылку в директории /tmp на /var/lib/mysql/mysql.sock:

ln –s /var/lib/mysql/mysql.sock /tmp/mysql.sock

Установка Web сервера

Для корректной работы web-интерфейса системы необходимо установить и настроить пакеты:

  • apache;
  • php;
  • gd;
  • php-gd;
  • php-mysql.
cd /usr/ports/www/apache22
make (в опциях отмечаем MySQL)
make install clean

Далее конфигурируем и собираем PHP с необходимыми расширениями:

cd /usr/ports/lang/php5/
make (в опциях отмечаем: Build apache module, Enable zend multibyte support)
make install clean
cd /usr/ports/lang/php5-extensions/
make

В опциях необходимо дополнительно отметить:

GD library support
iconv support
multibyte string support
MySQL database support
SOAP support
sockets support

Собираем и устанавливаем пакет командами:

make install clean

Конфигурация apache2

Отредактируйте основной конфигурационный файл apache2/usr/local/etc/apache22/httpd.conf в соответствии с нижеприведенной инструкцией:

  • раскомментировать директиву ServerName;
  • добавить директиву AddType application/x-httpd-php .php;
  • <IfModule mime_module>
    ...
    AddType application/x-httpd-php .php
    ...
    </IfModule>
    
  • в блоке <Directory "/usr/local/www/apache22/data"> необходимо изменить директиву:
AllowOverride None на AllowOverride All

Для автоматического запуска службы добавляем в файл /etc/rc.conf строку apache22_enable=”YES”:

echo 'apache22_enable="YES"' >> /etc/rc.conf

Для повышения безопасности при работе с web-интерфейсом АСР LANBilling целесообразно вместо открытого протокола http использовать соединение по шифрованному каналу (SSL) посредством протокола https. Поддержка SSL в apache обеспечивается модулем mod_ssl.so, поставляемым вместе с основным пакетом.


Конфигурация PHP

Для корректной работы web интерфейса рекомендуется установить следующие параметры в файле php.ini (/usr/local/etc/php.ini).

date.timezone = Europe/Moscow

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

max_execution_time = 3600
default_socket_timeout = 3600
memory_limit = 1024M
max_input_vars = 2500

После всех изменений перезапустите apache2:

/usr/local/etc/rc.d/apache22 restart

Установка python-simplejson

Для установки пакета python-simplejson необходимо воспользоваться командой:

pkg install py27-simplejson

Настройка портов для исходящих соединений

В процессе эксплуатации может возникнуть ситуация когда, например, модуль ядра АСР совершает попытку дважды подключиться к одному и тому же порту. В результате все процессы будут блокированы.

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

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

sysctl net.inet.ip.portrange.first=35000
sysctl net.inet.ip.portrange.last=60999
sysctl net.inet.ip.portrange.randomized=0

3. Установка АСР LANBilling

Дистрибутив АСР LANBilling для ОС FreeBSD поставляется в виде бинарного FreeBSD пакета tgz.

Все пакеты АСР LANBilling определены по одному и тому же правилу, разберем на примере пакета ядра для CentOS:

LBcore-2.0base-006-CentOS6_x86_64-20130521.rpm, где:

  • Lbcore — обозначение ядра или клиентов LBarcd, LBucd, LBusbox, LBhotel, LBinet, LBircd, LBtv, LBphone;
  • 0base-006 — версия системы АСР LANBilling;
  • CentOS6_x86_64 — версия и её битность;
  • 20130521 — дата данной сборки.

Начиная со сборки 018 изменился порядок именования дистрибутивов АСР LANBilling 2.0:

lbcore-2.0.18.0-1.el5.x86_64.rpm - пример пакета ядра АСР (релиз), где:

  • lbcore - наименование модуля;
  • 2.0 - версия релиза;
  • 18 - номер релиза;
  • 0 - порядковый номер прохождения полного тестирования (начиная с 0);
  • -1 - версия пакета (означает, что пакет с этой версией модуля собран первый раз)
  • el5.x86_64 - платформа, на которой собран пакет (в данном случае CentOS 5 x64).

lbcore-2.0.18.0-2.20150903git2c17585e.el6.x86_64.rpm - пример пакета ядра АСР (hotfix), где:

  • lbcore - наименование модуля;
  • 2.0 - версия релиза;
  • 18 - номер релиза;
  • 0 - порядковый номер прохождения полного тестирования (начиная с 0);
  • -2 - версия пакета (означает, что пакет с этой версией модуля собран повторно);
  • 20150903 - дата сборки пакета;
  • git2c17585e - номер ревизии модуля;
  • el6.x86_64 - платформа, на которой собран пакет (в данном случае CentOS 6 x64).

Установка пакетов выполняется следующим образом:

pkg_add LB*.tgz

В результате установки данных пакетов все запускаемые и сопутствующие файлы будут находиться в:

/usr/local/billing/
/etc/billing.conf*
/usr/local/etc/rc.d/

После установки LBcore необходимо скопировать каталог web-интерфейса в соответствии с конфигурацией apache:

cp -r /usr/local/billing/phpclient/*  /usr/local/www/apache22/data/

Для работы личного кабинета в папке client2 необходимо дать права на запись для пользователя под которым запущен apache директориям:

client2/client/runtime
client2/client/public/assets

Далее, необходимо указать в файле /etc/httpd/conf/httpd.conf для подключения папки в defaultHost через алиас (для apache) следующее:

Apache 2.2

Alias /client/ /var/www/client/client/public/
        <Directory /var/www/client/client/public/>
               Options FollowSymLinks
               AllowOverride All
               Order allow,deny
               allow from all
        </Directory>

Apache 2.4

Alias /client/ /usr/local/billing/phpclient/client2/client/public/
     <Directory /usr/local/billing/phpclient/client2/client/public/>
               Options FollowSymLinks
               AllowOverride All
               Require all granted
     </Directory>

После этого следует перезапустить httpd.

Личный кабинет будет доступен по ссылке http://SERVER_IP_ADDR/client.

Каждый компонент АСР LANBilling имеет свой конфигурационный файл. Для ядра системы это /etc/billing.conf, для всех сетевых клиентов это файлы /etc/billing.conf.Имя_Клиента, например для клиента RADIUS - /etc/billing.conf.LBarcd.

После установки пакетов необходимо развернуть базу данных.


4. Создание структуры БД АСР LANBilling

Взаимодействие модулей АСР LANBilling 2.0 происходит через базы данных. Всего существуют два режима работы:

  • main-режим - используя основную базу данных;
  • автономный safe-режим - используя отдельную (чаще всего локальную) базу данных.

Для настройки основной БД необходимо на сервере АСР:

1. Запусть MySQL с правами root-пользователя;

  mysql -u root -p

2. Создать пустую базу данных billing (как пример) и пользователя с правами администратора;

  CREATE DATABASE billing DEFAULT CHARSET utf8;
  GRANT ALL ON billing.* TO 'billing'@'127.0.0.1' IDENTIFIED BY 'billing';
  GRANT ALL ON billing.* TO 'billing'@'localhost' IDENTIFIED BY 'billing';

3. Применить скрипты для создания структуры БД billing;

  mysql -u root -p -A billing < /usr/local/billing/mysql/create.sql

4. В конфигурационном файле /etc/billing.conf прописать доступ к созданной БД в формате mysql://db_login:db_pass@db_ip/db_name;

  #Database address
  database = mysql://billing:billing@127.0.0.1/billing

где <<db_login>> и <<db_pass>> - реквизиты доступа созданного пользователя БД;

<<db_ip>> и <<db_name>> - хост сервера (например 127.0.0.1 или localhost), на котором создана БД и название БД - соответственно.

Для загрузки каталога телефонных кодов, если они необходимы, используется команда:

  mysql -u root -p -A billing < /usr/local/billing/mysql/catalog.sql

Для того чтобы загрузить справочник КЛАДР необходимо воспользоваться командой:

  mysql -u root -p -A billing < /usr/local/billing/mysql/claddr.sql

5. Первоначальная настройка модуля LBucd (Netflow)

Кабельный агент может работать (хранить статистику) как в основной (main-режим) так и отдельной (safe-режим) базе данных.

При использовании отдельной БД необходимо:

1. Запусть MySQL с правами root-пользователя;

  mysql -u root -p

2. Создать пустую базу данных billing_safe (как пример) и пользователя с правами администратора;

  CREATE DATABASE billing_safe DEFAULT CHARSET utf8;
  GRANT ALL ON billing_safe.* TO 'billing'@'127.0.0.1' IDENTIFIED BY 'billing';
  GRANT ALL ON billing_safe.* TO 'billing'@'localhost' IDENTIFIED BY 'billing';

3. Применить скрипт для создания структуры БД billing_safe;

Для сборок 2.0.19 - 2.0.20

  mysql -u root -p -A billing_safe < /usr/local/billing/mysql/lbucd_safe.sql

Для сборки 2.0.21

  mysql -u root -p -A billing_safe < /usr/local/billing/mysql/lbucd/create.sql

Примечание: в сборках LBucd 2.0.23 от 01.12.2017 и новее скрипты работы со структурой таблиц БД кабельного агента имеют префикс "ucd_". Таким образом команда для формирования структуры БД будет иметь вид:

    mysql -uroot -p billing_safe < /usr/local/billing/mysql/lbucd/ucd_create.sql
  

4. В конфигурационном файле /etc/billing.conf.LBucd прописать следующие параметры:

Доступ к созданной БД;

  # Local DB access parameters (for 'safe' mode only)
  dbhost = 127.0.0.1
  dbuser = billing
  dbpass = billing
  dbname = billing

где <<dbuser>> и <<dbpass>> - реквизиты доступа созданного пользователя БД;

<<dbhost>> и <<dbname>> - xoст сервера (например 127.0.0.1 или localhost), на котором создана БД и название БД billing_safe - соответственно.

Доступ к ядру АСР в формате login:pass@ip:port:

  # Access to LBcore server
  server = admin@10.140.10.250:1502

где <<login>> и <<pass>> - реквизиты доступа администратора АСР;

<<ip>> и <<port>> - IP-адрес и порт сервера, на котором установлена АСР.

Режим работы модуля LBucd;

  # Agent mode
  #   main: detail statistics stored in main DB
  #   safe: detail statistics stored in local DB
type = safe

Идентификатор Netflow-агента из административного интерфейса.

  # System id. (Must be unique)
  sysid = 0

Пример настройки для работы в автономном (SAFE) режиме:

  dbhost = 127.0.0.1
  dbuser = billing
  dbpass = billing
  dbname = billing_safe
  server = admin@10.140.10.250:1502
  type = safe
  sysid = 2

6. Первоначальная настройка модуля LBarcd (RADIUS)

RADIUS-агент работает только с отдельной базой данных (safe-режим). Для настройки необходимо:

1. Запусть MySQL;

  mysql -u root -p

2. Создать пустую базу данных radius (как пример) и пользователя с правами администратора;

  CREATE DATABASE radius DEFAULT CHARSET utf8;
  GRANT ALL ON radius.* TO 'billing'@'127.0.0.1' IDENTIFIED BY 'billing';
  GRANT ALL ON radius.* TO 'billing'@'localhost' IDENTIFIED BY 'billing';

3. Применить скрипты для создания структуры БД radius;

  mysql -u root -p radius < /usr/local/billing/mysql/lbarcd/create.sql

Примечание: в сборках LBarcd 2.0.21.1-2.0.23 от 09.10.2017 скрипты работы со структурой таблиц БД RADIUS-агента имеют префикс "rad_". Таким образом команда для формирования структуры БД будет иметь вид:

    mysql -uroot -p radius < /usr/local/billing/mysql/lbarcd/rad_create.sql
  

4. В конфигурационном файле /etc/billing.conf.LBarcd прописать следующие параметры:

Доступ к созданной БД в формате mysql://db_login:db_pass@db_ip/db_name;

  #Database address
  database = mysql://billing:billing@127.0.0.1/radius

где <<db_login>> и <<db_pass>> - реквизиты доступа созданного пользователя БД;

<<db_ip>> и <<db_name>> - IP-адрес сервера (например 127.0.0.1 или localhost), на котором создана БД и название БД RADIUS - соответственно.

Доступ к ядру АСР в формате login:pass@ip:port;

  # Access to LBcore server
  server = admin@10.140.10.250:1502

где <<login>> и <<pass>> - реквизиты доступа администратора АСР;

<<ip>> и <<port>> - IP-адрес и порт сервера, на котором установлена АСР.

Идентификатор RADIUS-агента из административного интерфейса;

  # Agent ID. (Must be unique)
  sysid = 1

Пример настройки агента LBarcd для работы в автономном (SAFE) режиме.

  database = mysql://billing:billing@127.0.0.1/radius
  server = admin@10.140.10.250:1502
  sysid = 1

RADIUS-агент может работать на том же сервере что и ядро АСР, либо отдельно - на другом сервере. После создания пустой БД для RADIUS-агента, при первом старте, происходит синхронизация структуры БД и необходимых данных из основной БД, с которой работает ядро АСР.

Важно: версии СУБД (MySQL), на которых настраивются БД для АСР и RADIUS-агента должны совпадать.

В зависимости от объема данных синхронизация может занимать продолжительное время (до 20 мин). Об успешности синхронизации можно судить по логам (файл /usr/local/billing/lbarcd.log) работы агента в режиме debug.

Для настройки в конфигурационном файле /etc/billing.conf.LBarcd необходимо изменить параметр <<log_level>>:

  # Log verbosity level: error, warning, info, verbose, debug
  log_level = debug

При успешном завершении синхронизации в логах будут сообщения вида "Synchronize with LBserver complete".

Примечание: журналирование событий в режиме debug требует большого количества дискового пространства и рекомендуется только при возникновении ошибок.


7. Активация лицензии

Заказчик, после приобретения АСР, получает лицензионный ключ, который всегда доступен в системе Helpdesk. Доступ к системе Helpdesk осуществляется с адреса https://client.lanbilling.ru.

После получения Лицензионного ключа, для запуска модулей АСР требуется провести активацию лицензии через сервер активации, расположенный в домене lanbilling.ru. Для этого необходимо: войти в административный web-интерфейс системы под атрибутами администратора и в разделе "Опции" выбрать пункт "Общие", раздел "Активация", "Получить лицензионный ключ". Затем ввести ключ активации и название компании в соответствующие разделы формы активации лицензии и нажать кнопку "Активировать".

Важно! название компании, должно совпадать с названием компании определенным в разделе "Опции" пункт меню "Реквизиты оператора" поле "Имя компании с формой собственности:".

При положительном ответе сервера активации продукт готов к эксплуатации.

Существующие клиенты, уже имеющие регистрацию в LANBilling HelpDesk, при обновлении АСР до версии 2.0 размещают запрос на получение лицензии с темой "Лицензионный ключ для версии 2.0", после чего получают Лицензионный ключ указанный в системе HelpDesk.

Лицензия содержит информацию, по которой определяется ряд рабочих параметров АСР: агентская схема телефонии, интеграция с Fidelio, модуль Email Connector, модуль инвентаризации, время действия, максимальное количество пользователей АСР и пр. При изменении любых из указанных параметров, связанных с реконфигурацией АСР, требуется повторное проведение активации нового ключа, содержащего скорректированные параметры.

Механизм активации учитывает возможность назначения тех или иных параметров функционирования АСР в процессе активации. В том случае, если набор ключевых параметров изменяется после проведения активации АСР, модуль контроля лицензионности копии вернет эти параметры к первоначальному значению.


8. Запуск системы

Запуск всех модулей осуществляется путем старта соответствующих скриптов запуска:

/usr/local/etc/rc.d/mysql-server start
/usr/local/etc/rc.d/apache22 start
/usr/local/etc/rc.d/LBcore.init.sh start
/usr/local/etc/rc.d/LBucd.init.sh start
/usr/local/etc/rc.d/LBarcd.init.sh start
/usr/local/etc/rc.d/LBtcd.init.sh start

После запуска этих компонентов, в списке процессов должны присутствовать все установленные модули. Проконтролировать это можно командой: ”ps ax | grep LB”. По каждому из агентов и серверу системы АСР LANBilling ведутся логи, находящиеся по умолчанию в директории /usr/local/billing и имеющие одноименные названия с запускаемыми файлами.

На этом этапе установка серверной части системы завершена, и, если все сконфигурировано правильно, то, запустив браузер Internet Explorer или Firefox и набрав в адресной строке IP-адрес web-сервера и затем через слеш admin (например, так: http://SERVER_IP_ADDR/admin, где SERVER_IP_ADDR — ip-адрес вашего сервера), в окне браузера отобразится окно авторизации к административному интерфейсу управления АСР LANBilling. По умолчанию доступ осуществляется под логином: admin и не заданным паролем.

В случае успешной установки apache с SSL при наборе в браузере https://SERVER_IP_ADDR/admin появится окно с информацией о сертификате, после подтверждения, которого пользователем отобразится административный web-интерфейс.

Важным условием запуска системы является тот факт, что на момент создания сетевых агентов должна быть осуществлена физическая связь между сетевыми агентами и центральным хранилищем. А также между php-интерфейсом, сервером LBcore и центральной базы данных. Сервер LBcore и web-интерфейс должны быть установлены на одной машине.

По умолчанию, в /etc/billing.conf отключен запуск всех внешних скриптов. Для настройки запуска скриптов по событиям установки/снятия блокировки и др. необходимо раскоментировать соответствующую скрипту запись в billing.conf и поместить скрипт с указанным именем в /usr/local/billing. Примеры скриптов находятся в /usr/local/billing/scripts. При этом, в случае обновления АСР, обновляются скипты только в папке scripts, остальные скрипты, скопированные в /usr/local/billing, остаются нетронутыми.

Мы преднамеренно не предоставляем программы, автоматизирующие процесс установки, в виду того, что в процессе установки пакетов, часто возникают различные ошибки, с которыми логика инсталлятора не в состоянии справиться, кроме того, большинство администраторов предпочитают контролировать все модификации системы, которые происходят в процессе установки нового ПО, такого как, например, LANBilling.


Назад к документации