Определите, какие версии модулей АСР LANBilling хотите установить, и по таблице совместимости подберите компоненты ОС.
Как правило, требуются следующие компоненты:
Для дальнейшей установки и настройки вам потребуются:
python3-simplejson — используется некоторыми скриптами. Например, платёжным скриптом банка Тинькофф.
dirmngr — служба для управления сетевыми сертификатами.
atop — аналитическая система, требуется для анализа производительности АСР LANBilling и сервера в целом.
logrotate — утилита ротации логов. Она должна быть на каждом сервере, где будут установлены компоненты АСР LANBilling.
zstd — архиватор.
nano — текстовый редактор.
Чтобы установить дополнительные пакеты, введите команду:
apt install -y python3-simplejson dirmngr atop logrotate zstd nano
Направление | Сервер | Протокол | Номер порта | Описание |
---|---|---|---|---|
На вход | Сервер, на котором установлены административный интерфейс АСР LANBilling и личный кабинет абонентов | HTTP\HTTPS | 80 (443) | Для доступа к административному интерфейсу и личному кабинету |
На вход | Сервер LBcore | JSON\JSON-SSL | 1502 (1503) | Для связи LBcore с модулями сетевых агентов. Также к этому порту обращается веб-интерфейс |
На вход | Сервер LBcore | SOAP | 34012 | Для связи LBcore с личным кабинетом абонента и со старым административным интерфейсом (объявлен deprecated с 2.0.30). Также — для доступа по API |
На вход | Сервер БД | MySQL | 3306 | Используется, если MySQL находится на отдельном сервере. LBcore и модули агентов должны иметь доступ к этому порту. Обратите внимание: MySQL по умолчанию слушает только 127.0.0.1 (параметр bind) |
На выход | До сервера lic.lanbilling.ru | Лицензирование | 34100 во внешнюю сеть | Используется, чтобы активировать лицензию |
На вход | Сервер, на котором установлен модуль LBarcd | RADIUS | 1812\UDP и 1813\UDP | 1812\UDP — для авторизации; 1813\UDP — для аккаунтинга |
На вход | Сервер, на котором установлен модуль LBucd | NetFlow | 7223\UDP | Для сбора статистики о трафике |
Ограничьте диапазон выдаваемых портов. Если этого не сделать, могут возникнуть сбои — например, LBcore попытается дважды подключиться к одному порту, и все процессы будут заблокированы.
Откройте файл конфигурации:
nano /etc/sysctl.conf
``
Добавьте в него строку:
net.ipv4.ip_local_port_range = 35000 60999
``
Также рекомендуем оптимизировать работу памяти сервера. Задайте параметры:
vm.zone_reclaim_mode = 1
vm.swappiness = 5
``
Подробнее об этих параметрах — в официальной документации Linux Kernel.
Чтобы не перезагружать ОС, можно выполнить команду:
sysctl net.ipv4.ip_local_port_range='35000 60999' vm.swappiness=5 vm.zone_reclaim_mode=1
``
Установите дополнительные утилиты:
apt install -y --no-install-recommends curl ca-certificates lsb-release wget gnupg2
``
Подключите репозиторий MySQL-сервера с помощью пакета mysql-apt-config. Сначала проверьте версию пакета на странице разработчика. Затем скачайте пакет:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb
``
Установите пакет:
dpkg -i mysql-apt-config_0.8.22-1_all.deb
``
Во время установки автоматически запустится утилита-конфигуратор. В пункте «MySQL Server & Cluster» установите значение «mysql-8.0». Далее нажмите клавишу 4 либо перейдите к пункту Ok и нажмите Enter.
Обновите подключённые репозитории:
apt update
``
Установите MySQL-сервер:
apt install mysql-server
``
Если вы устанавливаете MySQL 8.x, потребуется выбрать тип аутентификации. Выберите «Use Legacy Authentication Method (Retain MySQL 5.x Compatibility)».
Остановите MySQL, чтобы продолжить настройку:
systemctl stop mysql
``
Откройте файл mysqld.cnf:
nano /etc/mysql/mysql.conf.d/mysqld.cnf
``
Укажите параметры. Если какие-то параметры в файле уже заданы — сверьте их с описанием, приведённым ниже. Установите те значения, которые вам подходят.
Обратите внимание: в одной секции не должно быть одного и того же параметра с разными значениями.
Параметры в секции mysqld:
default-authentication-plugin = mysql_native_password
character-set-server = utf8
character-sets-dir = /usr/share/mysql/charsets
skip-character-set-client-handshake
skip-name-resolve
innodb_file_per_table = ON
ssl = 0
bind-address = 127.0.0.1 #Если Вы планируете подключаться к MySQL с другого хоста, следует изменить на 0.0.0.0
#For 8.x
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
#For 5.7
#sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
innodb_stats_on_metadata = 0
group_concat_max_len = 1000000000
enforce_gtid_consistency = OFF
gtid_mode = OFF
performance_schema = OFF
explicit_defaults_for_timestamp
key_buffer_size = 64M
max_heap_table_size = 128M
tmp_table_size = 128M
innodb_buffer_pool_size = 512M
innodb_buffer_pool_instances = 1
#innodb_log_file_size = 64M #Данный параметр стоит менять если Вы знаете как он меняется
slow_query_log = 1
innodb_flush_method=O_DIRECT
innodb-flush-log-at-trx-commit = 2
``
Выберите, нужно ли включить бинарное логирование.
Чтобы выключить, используйте параметр:
disable-log-bin
Чтобы включить, используйте параметр log-bin. Если указать для него значение, он включает бинарное логирование и задаёт общее имя файлов логов на диске. Значение по умолчанию: mysql-bin.
log-bin = mysql-bin
Обратите внимание: параметры log-bin и disable-log-bin взаимоисключающие. Если в конфигурации указаны оба, то действует тот, который указан позже.
Измените владельца директории:
chown -R mysql:mysql /var/lib/mysql/
Запустите сервер:
systemctl start mysql
В MySQL работает плагин validate_password — он не позволяет устанавливать простые пароли. Чтобы отменить его действие, сначала установите новый пароль, затем удалите плагин. После этого можно установить любой пароль, в том числе и пустой.
Найдите пароль root от MySQL в его логе:
grep "temporary password is generated for" /var/log/mysqld.log
``
Чтобы изменить пароль, выполните команду:
mysqladmin --user root --password password 'ваш_пароль_для_root_пользователя_mysql'
``
Введите пароль, найденный в логе MySQL, и нажмите Enter.
Если хотите установить простой или пустой пароль, удалите плагин validate_password:
UNINSTALL COMPONENT 'file://component_validate_password';
``
Задайте новый пароль. В примере — как установить пустой пароль:
mysqladmin --user root --password password ""
``
Далее в инструкции предполагается, что установлен пустой пароль.
Проверьте список поддерживаемых версий. Установите веб-сервер.
Пакеты для Debian 10:
apt install apache2 php7.3 php7.3-soap php7.3-json php7.3-gd php7.3-gmp php7.3-curl php7.3-mysql php7.3-bcmath php7.3-xml php7.3-mbstring libtiff5 libpng16-16
``
Пакеты для Debian 11:
apt install apache2 php7.4 php7.4-soap php7.4-json php7.4-gd php7.4-gmp php7.4-curl php7.4-mysql php7.4-bcmath php7.4-xml php7.4-mbstring libtiff5 libpng16-16
``
Добавьте веб-сервер в автозагрузку ОС:
systemctl enable apache2
``
Для Debian 11 включите модуль cgi. Он нужен для работы
a2enmod cgi
``
Для корректной работы веб-интерфейса рекомендуем выполнить эту настройку.
Откройте файл php.ini.
Путь в Debian 10:
nano /etc/php/7.3/apache2/php.ini
``
Путь в Debian 11:
nano /etc/php/7.4/apache2/php.ini
``
В файле уже заданы параметры. Раскомментируйте их и приведите к этим значениям:
date.timezone = Europe/Moscow
max_execution_time = 3600
default_socket_timeout = 3600
memory_limit = 1024M
session.gc_probability = 0
max_input_vars = 2500
``
В параметре date.timezone укажите свою временную зону. Полный список зон можно посмотреть здесь.
Если включён firewall (ufw status), добавьте правила:
ufw allow 80/tcp
ufw allow 443/tcp
ufw reload
``
Если необходим https, подключите его:
a2enmod ssl
a2ensite default-ssl
systemctl restart apache2
``
Выполните команду:
systemctl start apache2
Дистрибутив АСР LANBilling распространяется в виде готовых пакетов для пакетных менеджеров.
Вам потребуются:
пакет lbcore сборки 2.0.39 — чтобы установить ядро АСР LANBilling;
пакеты lbweb-common и lbweb-admin — чтобы установить административный интерфейс;
пакеты lbweb-common и lbweb-client — чтобы установить личный кабинет для абонентов;
пакеты для установки модулей сетевых агентов. Конкретный список модулей зависит от того, какие платформы вы будете использовать.
Платформа | Сетевой агент | Модуль |
---|---|---|
Платформа «интернет», DialUp, авторизация абонентов | RADIUS | LBarcd |
Платформа «интернет», широкополосный доступ, без авторизации | Netflow | LBucd |
Телефония | LBPhone | LBphone |
IP-телефония | VoIP | LBircd |
В названии пакета содержатся основные сведения о нём. Рассмотрим на примере lbcore_2.0.37.0-5.git6a112fb7.debian10_amd64.deb:
В личном кабинете перейдите на вкладку «Загрузки».
Нажмите в строке с названием пакета.
Перенесите пакет на сервер, где будете устанавливать модуль.
LBcore — модуль ядра АСР LANBilling. В этой инструкции предполагается, что вы устанавливаете MySQL и LBcore на один сервер.
Процесс установки описан исходя из того, что установочный пакет сохранён на сервере в директории /root/.
Убедитесь, что уже установили:
Установите пакет ядра. Пример:
dpkg -i /root/lbcore_2.0.39.0-57.git6a112fb7.debian10_amd64.deb
``
Добавьте LBcore в автозагрузку ОС:
systemctl enable lbcore
``
Зайдите в MySQL под пользователем root — команда mysql
. Если вы задавали пароль — mysql -p%пароль%
.
Создайте базу данных LBcore. Укажите сведения о пользователях и настройте доступ АСР LANBilling к БД.
CREATE DATABASE `billing` DEFAULT CHARSET UTF8;
CREATE USER IF NOT EXISTS 'billing'@'localhost' IDENTIFIED WITH mysql_native_password BY 'billing';
GRANT ALL ON `billing`.* TO 'billing'@'localhost';
CREATE USER IF NOT EXISTS 'billing'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY 'billing';
GRANT ALL ON `billing`.* TO 'billing'@'127.0.0.1';
exit
``
Создайте структуру БД LBcore и подключите справочник адресов — КЛАДР:
mysql billing < /usr/local/billing/mysql/create.sql
mysql billing < /usr/local/billing/mysql/claddr.sql
``
Откройте файл конфигурации:
nano /etc/billing.conf
``
Убедитесь, что указаны параметры доступа, которые вы задавали при создании БД. Если нет, исправьте их. Данные должны быть в формате dbuser:dbpass@dbhost:dbport/dbname.
Если не указать dbport, будет использоваться порт 3306. Пример для случая, когда LBcore и MySQL установлены на одном сервере и используется порт по умолчанию:
# DB access parameters
database = mysql://billing:billing@127.0.0.1/billing
``
Запустите ядро АСР LANBilling:
systemctl start lbcore
``
Чтобы убедиться, что ядро запущено и работает, выполните одну из команд:
ps ax | grep -i lbcore
``
или
systemctl status lbcore
``
Убедитесь, что на сервере установлены logrotate и zstd:
dpkg -l|grep 'logrotate\|zstd'
``
Если этих утилит нет, установите их:
apt install -y logrotate zstd
``
Лог-файлы по умолчанию находятся в директории /var/log/billing/
. Настройте их ротацию одним из двух способов.
Способ 1: воспользуйтсь утилитой logrotate. Этот способ подойдёт, если объём логов небольшой. По умолчанию logrotate прописывается в cron.daily и запускается каждый день в 03:01.
Пример настройки ротации логов находится в файле lbrotate.conf. Скопируйте его в директорию logrotate:
cp /etc/lanbilling/lbrotate.conf /etc/logrotate.d/
Способ 2: вручную добавьте задание в планировщик cron. Этот способ удобен, если за сутки накапливается большой объём логов. Вы сможете выбрать произвольный интервал для ротации — например, каждый час.
Добавьте в файл /etc/crontab
строку-задание:
0 * * * * root /usr/sbin/logrotate /etc/lanbilling/lbrotate.conf
Подробнее о структуре файла и параметрах можно прочитать здесь.
Административный интерфейс — веб-приложение, в котором работает оператор связи. Например, системные администраторы задают в нём настройки сети, а менеджеры оператора создают профили абонентов и следят за списаниями.
Обратите внимание: для первого старта интерфейс нужно установить на том же сервере, что и ядро. По умолчанию LBcore принимает запросы только с localhost или 127.0.0.1. В дальнейшем вы можете развернуть административный интерфейс на другом хосте.
Убедитесь, что уже установили и настроили:
Убедитесь, что скачали пакеты lbweb-common и lbweb-admin. Процесс установки описан исходя из того, что установочные пакеты сохранены на сервере в директории /root/.
Установите пакеты. Вместо X.Y.Z-Z укажите версию релиза:
dpkg -i lbweb-common-X.Y.Z-Z.deb
lbweb-admin-X.Y.Z-Z.deb
``
Пример:
dpkg -i lbweb-common_2.21.1+202011101204gitfeeac85627a7-1_all.deb lbweb-admin_3.12.0+202012061255gita8a0656bac61-1_all.deb
``
При установке пакета создаётся пример файла конфигурации. Создайте из него файл конфигурации:
cp /etc/lanbilling/phpclient/admin/admin.ini.sample /etc/lanbilling/phpclient/admin/admin.ini
``
Добавьте конфигурацию административного интерфейса АСР LANBilling в настройки веб-сервера:
cp /etc/lanbilling/phpclient/apache2/lbweb-admin.apache2.sample /etc/apache2/sites-available/lbweb-admin.conf
a2ensite lbweb-admin.conf
``
Перезапустите веб-сервер:
systemctl restart apache2
``
Административный интерфейс установлен. Он доступен по адресу http://%IP-адрес-сервера%/lbweb-admin. По умолчанию для входа используется логин admin, без пароля.
Если вы будете работать с административным интерфейсом на том же сервере, где установлено ядро, просто активируйте лицензию.
Если вы будете использовать другой сервер, сначала установите на нём веб-сервер и административный интерфейс. Затем активируйте лицензию.
После покупки АСР LANBilling оператор получает ключ активации — он доступен в личном кабинете Satisfy CRM.
Порядок действий:
Обратите внимание: если вы сначала активируете лицензию, а потом переименуете оператора, понадобится новый ключ.
С помощью сетевых агентов АСР LANBilling обменивается данными с операторским оборудованием — это позволяет собирать информацию о трафике и тарифицировать услуги.
Прежде чем устанавливать модули для сетевых агентов, убедитесь, что выполнили обязательные шаги.
Порядок установки и настройки зависит от того, какой сетевой агент вам нужен.
Сетевой агент | Описание | Модуль |
---|---|---|
RADIUS | Для платформы «интернет». Он служит для авторизации абонента и оборудования на сервере, а также для обработки абонентского соединения. Работает с тарифами типа DialUp | LBarcd |
Netflow | Для платформы «интернет». Отвечает за подсчёт трафика, не проводит авторизацию абонентов. Работает с тарифами типа «Выделенная линия» | LBucd |
LBPhone | Для телефонии. С его помощью АСР LANBilling получает от АТС статистическую информацию о звонках в виде cdr-файлов | LBphone |
VoIP | Для IP-телефонии. Обработка звонков происходит по протоколу RADIUS | LBircd |
«Услуги» | Чтобы вести учёт разовых или периодических услуг — к примеру, монтажа оборудования или аренды хостинга | Модуль не нужен |
Если вы устанавливаете модуль сетевого агента на отдельный сервер (не туда же, где установлен LBcore), настройте на нём ротацию лог-файлов.
Личный кабинет — веб-интерфейс для абонентов. Например, в личном кабинете абоненты могут подключать новые услуги или переходить с одного тарифа на другой.
Убедитесь, что уже установили и настроили:
Убедитесь, что скачали пакеты lbweb-common и lbweb-client.
Установите пакеты. Вместо X.Y.Z-Z укажите версию релиза:
dpkg -i lbweb-common_X.Y.Z-Z.deb
dpkg -i lbweb-client_X.Y.Z-Z.deb
``
Пример:
dpkg -i lbweb-common_2.21.1+202011101204gitfeeac85627a7-1_all.deb lbweb-client_3.7.0+202012021334gitc33fdc0d56d3-1_all.deb
``
Добавьте конфигурацию личного кабинета в настройки веб-сервера.
cp /etc/lanbilling/phpclient/apache2/lbweb-client.apache2.sample /etc/apache2/sites-available/lbweb-client.conf
a2ensite lbweb-client.conf
a2enmod rewrite
``
Перезапустите Apache2, чтобы применить изменения:
systemctl restart apache2
``
Личный кабинет установлен. Он доступен по адресу http://%IP-адрес-сервера%/lbweb-client/. Настройка личного кабинета описана здесь.
Есть вопросы по документации? Пожалуйста, напишите их