Ядро системы

9    

Введение#

Ядро системы – это основной модуль, отвечающий за работу с базой данных, обеспечение доступа к ней и обработку входящей информации согласно внутренним правилам (таким как тарификация, периодические списания). Ядро – это отдельный многопоточный процесс, работающий в пользовательском режиме. Структура ядра такова, что оно органично вписывается в многопроцессорные архитектуры и при высоких нагрузках равномерно использует все предоставленные ресурсы.

UTM_core.jpg

Рис. 1. Схема устройства ядра UTM версии 5.3-004.

Основные компоненты ядра#

Обработчик запросов URFA (UTM Remote Function Access) является сервером вызовов удалённых процедур. Он принимает соединения от клиентов системы и выполняет запрошенные команды внутри ядра. Этот компонент служит в большей степени для организации пользовательских и администраторских интерфейсов.

Буфер NetFlow принимает данные о трафике в формате NetFlow версий 5,7,9 и 10 (IPFIX). Для устройств, поддерживающих экспорт статистики по иным протоколам, необходимо воспользоваться преобразователем статистики в совместимый формат.

Классификатор трафика – модуль ядра, осуществляющий сортировку всего трафика по категориям (классам трафика) на основании параметров, заданных в настройках системы. Параметры классификации задаются в центре управления UTM5.

Нетарифицированная информация о трафике, принадлежащая одному абоненту, агрегируется в первичном хранилище. После тарификации эта информация переносится во вторичное хранилище и агрегируется в одну запись при одинаковой стоимости трафика. Списание по информации из вторичного хранилища происходит при превышении максимальной стоимости трафика или максимального времени хранения информации в одной записи (Настройки в интерфейсе администратора), при изменении стоимости трафика (например, если стоимость трафика изменяется после достижения определенного объема), при получении ядром сигнала SIGHUP и при закрытии отчетного периода.

Модуль бизнес-логики (тарификатор и классификаторы) отвечает за тарификацию всех услуг, в том числе услуг передачи IP-трафика. Он осуществляет перевод количества оказанных оператором услуг в денежный эквивалент с учетом всех зависимостей, указанных администратором системы.

Модуль журналирования регистрирует в log-файлах все события в работе системы UTM5. Он позволяет администраторам проводить диагностику системы и получать информацию о сбоях в ее работе.

Модуль доступа к базе данных (DBA) осуществляет перевод внутрисистемных запросов данных в запросы к внешней базе данных. В качестве системы управления базой данных используйте MySQL.

Прием данных происходит посредством буфера NetFlow и обработчика запросов URFA. Исходные данные считываются из базы данных при запуске.

 

Любые изменения в базе данных, сделанные напрямую через СУБД во время работы ядра, могут привести к неконтролируемому поведению системы.

Данные NetFlow поступают на обработку в бизнес-модуль, где рассчитываются все необходимые списания. В случае высокой пиковой загрузки поток NetFlow может быть буферизован для снижения возможных потерь. Необработанные данные NetFlow сохраняются в файлах специального формата. Модуль, сохраняющий эти данные, при запуске создаётсяв отдельной нити и, по возможности, с высоким приоритетом.

Запуск#

Исполняемый файл ядра UTM5 называется /netup/utm5/bin/utm5_core.

В командной строке можно передавать следующие параметры:

-p <путь>

Путь к pid-файлу.

-c <путь>

Путь к конфигурационному файлу.

-v

Вывод информации о полном номере сборки, времени сборки и допустимых параметрах командной строки.

Существуют три способа запуска utm5_core:

1.Непосредственный запуск бинарного файла /netup/utm5/bin/utm5_core с необходимыми параметрами;

2.Запуск с помощью скрипта watchdog с указанием параметра start

/netup/utm5/bin/safe_utm5_core start

Скрипт автоматически перезапустит utm5_core, если он по каким либо причинам некорректно завершит работу;

3.Запуск с помощью скрипта автоматического запуска (рекомендуемый способ).
В Linux:

/etc/init.d/utm5_core start

В FreeBSD:

/usr/local/etc/rc.d/utm5_core.sh start

Для остановки utm5_core и скрипта watchdog следует выполнить следующую команду:

в Linux –

/etc/init.d/utm5_core stop

в FreeBSD –

/usr/local/etc/rc.d/utm5_core.sh stop

Настройка#

Настройка ядра производится с помощью:

параметров, задаваемых в конфигурационном файле (см. Конфигурационный файл);

параметров, задаваемых с помощью интерфейса администратора (см. Настройки в интерфейсе администратора).

Параметры, задаваемые в конфигурационном файле, используются при инициализации ядра и компонентов системы. Изменения параметров вступают в силу при следующем запуске ядра.

Параметры, задаваемые с помощью интерфейса администратора, определяют поведение ядра и его компонентов после запуска. Существует возможность изменять значения данных параметров, если не указано обратное, в любой момент работы ядра. Изменения вступают в силу с момента их внесения.

Конфигурационный файл#

По умолчанию ядро биллинговой системы UTM5 использует конфигурационный файл /netup/utm5/utm5.cfg.

Формат конфигурационного файла:

параметр=значение

Набор символов, находящийся до знака равенства, является названием параметра, после – значением параметра. Пробелы учитываются. Пустые строки игнорируются. Строка, начинающаяся с символа #, считается комментарием.

Ниже приводится список возможных параметров.

Параметры, связанные с базой данных:

Параметр

Возможные значения

По умолчанию

Описание

database_type

mysql

обязательный параметр

Тип базы данных.

database

Строка

обязательный параметр

Название базы данных.

database_host

Строка

localhost

Адрес хоста, на котором находится база данных.

database_login

Строка

логин текущего пользователя

Логин для доступа к базе данных.

database_password

Строка

пустая строка

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

database_sock_path (a)

Строка

/tmp/mysql.sock

Путь к unix-сокету, используемому для подключения к серверу базы данных. Используется только в случае, когда database_host не указан или его значение равно localhost.

database_port (a)

Строка

3306

Номер порта для доступа к базе данных.

dbcount

Число от 2 до 64

6

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

dbcount_sys

Число от 2 до 64

4

Количество соединений, открываемых ядром биллинговой системы к базе данных для системных операций.

database_reconnect_count

Натуральное число

5

Количество попыток соединения с базой данных, если соединение не было установлено, или количество попыток выполнения SQL-запроса, если его выполнение закончилось неудачно.

database_reconnect_sleep

Натуральное число

2

Задержка в секундах перед повторной попыткой соединения с базой данных или перед повторным выполнением SQL-запроса.

database_charset (a)

Кодировка

utf8

Кодировка соединения с базой данных.

verify_database

enable, disable

enable

Верифицировать базу данных перед запуском ядра UTM5.

verify_archive_tables

enable, disable

disable

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

verify_database_index

enable, disable

disable

Верифицировать индексы перед запуском ядра UTM5.

 

a.Действует только для MySQL

Параметры, связанные c URFA-сервером:

Параметр

Возможные значения

По умолчанию

Описание

urfa_bind_host (a)

IP-адрес интерфейса или 0.0.0.0

сервер отключен

IP-адрес, на котором будет прослушиваться порт для приема URFA-запросов.

urfa_bind_port

Число от 1 до 65534

11758

Порт, который будет прослушиваться URFA-сервером.

 

a.Можно указать несколько значений

Параметры, связанные со Stream-сервером:

Параметр

Возможные значения

По умолчанию

Описание

stream_bind_host

IP-адрес интерфейса или 0.0.0.0

0.0.0.0

IP-адрес, на котором будет прослушиваться порт для приема Stream-запросов.

stream_bind_port

Число от 1 до 65534

12758

Порт, который будет прослушиваться Stream-сервером.

Параметры, связанные с NXT-серверами:

Параметр

Возможные значения

По умолчанию

Описание

nxt_bind_host

IP-адрес интерфейса или 0.0.0.0

0.0.0.0

IP-адрес, на котором будет прослушиваться порт для приема запросов NXT v.1.

nxt_bind_port

Число от 1 до 65534

11777

Порт, который будет прослушиваться сервером NXT v.1.

nxt_v2_bind_host

IP-адрес интерфейса или 0.0.0.0

0.0.0.0

IP-адрес, на котором будет прослушиваться порт для приема запросов NXT v.2.

nxt_v2_bind_port

Число от 1 до 65534

11778

Порт, который будет прослушиваться сервером NXT v.2.

iptv_cluster_host

IP-адрес

Не задан

IP-адрес NetUP IPTV cluster core.

iptv_cluster_port

Число от 1 до 65534

50500

Порт, который будет прослушивать IPTV cluster core в ожидании соединения.

Параметры буфера NetFlow:

Параметр

Возможные значения

По умолчанию

Описание

nfbuffer_host

Строка

0.0.0.0

IP-адрес, на котором будет прослушиваться UDP-порт для приема потока NetFlow.

nfbuffer_port

Строка

9997

Порт, на котором ядро принимает поток NetFlow.

nfbuffer_bufsize

Натуральное число

устанавливается ОС

Размер буфера UDP-сокета, используемого для приема потока NetFlow.

Параметры, связанные с подсчетом трафика:

Параметр

Возможные значения

По умолчанию

Описание

classifier_traffic_file

Путь к файлу

/netup/utm5/db/ traffic.dat

Файл для хранения информации о трафике при остановке ядра UTM5.

Параметры генерации документов:

Параметр

Возможные значения

По умолчанию

Описание

doc_path

Путь к директории

/netup/utm5/doc

Директория для хранения *.odt файлов.

tmp_path

Путь к директории

/tmp

Папка для хранения временных файлов.

libreoffice_path

Путь к файлу

/usr/bin/libreoffice

Путь к исполняемому файлу LibreOffice.

max_upload_size

Целое число (в байтах)

1000000

Максимальный размер загружаемого шаблона документа / договора.

Параметры журналирования (подробнее – в разделе Журналирование):

Параметр

Возможные значения

По умолчанию

Описание

log_level

Число
от 0 до 3

1

Определяет уровень сообщений, записываемых в основной поток сообщений.

log_file_main

Путь к файлу

Стандартный поток ошибок

Файл основного потока сообщений.

log_file_debug

Путь к файлу

Стандартный поток ошибок

Файл потока сообщений с диагностической и отладочной информацией.

log_file_critical

Путь к файлу

Стандартный поток ошибок

Файл потока сообщений о критических ошибках.

log_file_verificator

Путь к файлу

/netup/utm5/log/ ve-rificator.sql

Файл сообщений верификатора базы данных.

syslog_name

string

Не задано

Префикс, добавляемый к записям при включенной опции записи в системный журнал (syslog).

rotate_logs

yes, on, enable

Ротация отключена

Включает ротацию log-файлов.

max_logfile_count (a)

Число

Не ограничено

Максимальное количество хранимых log-файлов.

max_logfile_size (a)

Размер в байтах

10485760

Размер log-файла, при достижении которого производится ротация.

core_pid_file

Путь к файлу

/var/run/utm5_core.pid

PID-файл

a.Действует, если включена ротация log-файлов

Параметры, связанные с размером стека:

Параметр

Возможные значения

По умолчанию

Описание

thread_stack_size

Размер в байтах (не менее 65536)

8388608

Размер стека нити, отвечающей за бизнес-логику.

rpc_stack_size

Размер в байтах (не менее 65536)

Не задано

Размер стека нити URFA-сервера.

Параметры, связанные со специальной лицензией:

Параметр

Возможные значения

По умолчанию

Описание

ssl_cert_file

Путь к файлу

/netup/utm5/ cert.crt

Файл сертификата.

ssl_privkey_file

Путь к файлу

/netup/utm5/ privkey.pem

Файл приватного ключа.

ssl_privkey_passphrase

Строка

Пустая строка

Пароль приватного ключа.

Настройки в интерфейсе администратора#

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

Настройки тарификации

Настройки карточных пользователей

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

Настройки протокола SMTP

Настройки выставления счетов

Прочие настройки

Настройка сервера RADIUS

Откройте нужную группу настроек двойным щелчком мыши или нажатием кнопки btn_edit.png. Откроется окно со списком редактируемых параметров:

Settings_system_settings_billing.png

Если название параметра подчеркнуто, то при наведении на него курсора мыши отображается всплывающая подсказка с описанием параметра:

Settings_system_settings_tooltip.png

Параметры Период агрегации трафика и Пороговая сумма списания при агрегации трафика определяют периодичность списания средств со счетов пользователей.

 

Эти два параметра действуют одновременно, т. е. списание происходит при наступлении любого из условий: превышение периода агрегации или накопление пороговой суммы списания.

 

 

Чем меньше значения данных параметров, тем быстрее будут увеличиваться таблицы списания – наиболее объёмная часть БД, в связи с чем могут потребоваться специальные меры (см. Архивирование таблиц списаний).