Сервис Eltex-bonnie предназначен для выборки и обработки статистики аккаунтинга из ClickHouse. Использует MariaDB и ClickHouse только на чтение. Сервис написан на Golang и основан на протоколе gRPC. Используется Личным кабинетом для получения данных.
Существует два способа установить модуль: вручную и вместе с остальными сервисами с помощь скрипта-помогатора.
Ручная установка:
Автоматическая установка:
--clickhouseСервис автоматически запускается после установки.
| Действие | Команда |
|---|---|
| Проверка состояния | service eltex-bonnie status |
| Запуск сервиса | service eltex-bonnie start |
| Остановка сервиса | service eltex-bonnie stop |
| Перезапуск сервиса | service eltex-bonnie restart |
Содержит основные настройки сервиса.
serviceConfiguration = {
ApplicationConfiguration = {
GrpcPort = 9070
// if this environment equals to 'production', all logs will transmit to graylog
// else if this environment equals to 'k8s', all logs will be written to stdout
Environment = "production"
GelfEnabled = false // inclusion of sending logs to graylog
mysqlConfiguration = {
ConnectionString = "tcp(127.0.0.1:3306)"
DBName = "radius"
Login = "javauser"
Password = "javapassword"
}
clickhouseConfiguration = {
ConnectionString = "tcp://127.0.0.1:9003"
DBName = "radius"
Login = "javauser"
Password = "javapassword"
}
}
}
logs = {
LoggerConfiguration = {
LogLevel = "info"
FileLog = "/var/log/eltex-bonnie/bonnie.log" // name of log file
MaxSize = 5 // maximal size of log file (unit: megabyte)
MaxAge = 30 // maximum log lifetime (unit: days)
MaxBackups = 10 // maximum number of backups (unit: amount of log files)
Compress = true // the need of compression
GelfHostWithPort = "lab3-test.eltex.loc:12201" // address of graylog server
}
} |
...
GrpcPort = 9070
... |
...
mysqlConfiguration = {
ConnectionString = "tcp(127.0.0.1:3306)"
DBName = "radius"
Login = "javauser"
Password = "javapassword"
}
... |
...
clickhouseConfiguration = {
ConnectionString = "tcp://127.0.0.1:9003"
DBName = "radius"
Login = "javauser"
Password = "javapassword"
}
... |
Для использования нескольких нод ClickHouse в ConnectionString необходимо указать адреса в формате:
ConnectionString = "tcp://127.0.0.1:9003?alt_hosts=host2:9003&connection_open_strategy=in_order" |
...
// if this environment equals to 'production', all logs will transmit to graylog
// else if this environment equals to 'k8s', all logs will be written to stdout
Environment = "production"
GelfEnabled = false // inclusion of sending logs to graylog
...
LoggerConfiguration = {
LogLevel = "info"
FileLog = "/var/log/eltex-bonnie/bonnie.log" // name of log file
MaxSize = 5 // maximal size of log file (unit: megabyte)
MaxAge = 30 // maximum log lifetime (unit: days)
MaxBackups = 10 // maximum number of backups (unit: amount of log files)
Compress = true // the need of compression
GelfHostWithPort = "lab3-test.eltex.loc:12201" // address of graylog server
}
... |
Для того чтобы Личный кабинет получал данные статистики аккаунтинга из ClickHouse надо указать верные порт, адрес и источник в /etc/eltex-wifi-cab/system.xml:
... <!--Bonnie or NBI--> <entry key="data.service.type">Bonnie</entry> <entry key="bonnie.service.host">localhost</entry> <entry key="bonnie.service.port">9070</entry> ... |
Сервис может быть запущен в docker-контейнере. Для этого необходимо подготовить файл с переменными окружения .env и docker-compose.yml
version: "3"
services:
bonnie:
image: hub.eltex-co.ru/softwlc/eltex-bonnie:1.21-<tag>
ports:
- 9070:9070
volumes:
- "/var/log/eltex-bonnie:/var/log/eltex-bonnie"
environment:
- LogLevel=${BONNIE_LOG_LEVEL}
- ClickHouseUrl=${BONNIE_CH_URL}
- ClickHouseDBName=${BONNIE_CH_DBNAME}
- ClickHouseUsername=${BONNIE_CH_USERNAME}
- ClickHousePassword=${BONNIE_CH_PASSWORD}
- MySQLUrl=${BONNIE_MYSQL_URL}
- MySQLDBName=${BONNIE_MYSQL_DBNAME}
- MySQLUsername=${BONNIE_MYSQL_USERNAME}
- MySQLPassword=${BONNIE_MYSQL_PASSWORD}
- TZ=${TZ} |
| Вместо <tag> необходимо указать актуальную версию, которую можно посмотреть по ссылке. |
BONNIE_LOG_LEVEL=debug BONNIE_CH_URL=tcp://<IP-address>:9003 BONNIE_CH_DBNAME=radius BONNIE_CH_USERNAME=javauser BONNIE_CH_PASSWORD=javapassword BONNIE_MYSQL_URL=tcp(<IP-address>:3306) BONNIE_MYSQL_DBNAME=radius BONNIE_MYSQL_USERNAME=javauser BONNIE_MYSQL_PASSWORD=javapassword #Настройка часового пояса TZ=Asia/Novosibirsk |
Настройка часового пояса