...
Rsync в схеме резервирования отвечает за синхронизацию служебных служебных файлов сервисов Eltex-EMS и Eltex-APB, а также файлов прошивок, шаблонов конфигурации, выгрузок конфигураций точек. Rsync представляет собой клиент серверное ПО. В данной схеме master-сервер выступает в роли клиента и синхронизирует каталоги slave-сервера с локальными.
...
Конфигурация сервера rsync
Для активации сервера rsync необходимо в файле /etc/default/rsync
установить значение:
RSYNC_ENABLE=true
Для запуска сервиса после остановки используется команда:
Без форматирования |
---|
root@swlc01-server:/# service rsync start |
Для остановки сервиса используется команда:
Без форматирования |
---|
root@swlc01-server:/# service rsync stop |
Для проверки — запущен ли сервис в данный момент, используется команда:
Без форматирования |
---|
root@swlc01-server:/# service rsync status |
В ответ последует сообщение:
Без форматирования |
---|
* rsync is running
|
в случае если сервис запущен,или
Без форматирования |
---|
* rsync is not running |
в случае если сервис не запущен.
Конфигурация сервера rsync
В /etc/ нужно создать конфигурационный файл rsyncd.conf
Листинг файла приведен ниже.
...
Для аутентификации необходимо настроить пользователя rsync
на обоих серверах, для этого на каждом сервере создайте файлы /etc/rsyncd.secrets
, в которых указать логин и пароль.
...
Блок кода | ||||
---|---|---|---|---|
| ||||
root@swlc01-server:/# crontab -l
root@swlc01-server:/# */1 * * * * /usr/lib/eltex-ems/scripts/rsync_ems_backup.sh # Должно быть так |
Если задача не добавилась или случайно добавилась несколько раз - редактируем список вручную
Блок кода | ||||
---|---|---|---|---|
| ||||
root@swlc01-server:/# crontab -e
Select an editor. To change later, run 'select-editor'.
1. /bin/nano <---- easiest
2. /usr/bin/vim.tiny
3. /usr/bin/code
4. /bin/ed
Choose 1-4 [1]: 1 # выбираем в каком редакторе открыть и редактируем |
Информация |
---|
Сервис cron должен быть запущен на обоих серверах |
Способ запуска/остановки
Для запуска сервиса используется команда:
Без форматирования |
---|
root@swlc01-server:/# service rsync start |
Для остановки сервиса используется команда:
Без форматирования |
---|
root@swlc01-server:/# service rsync stop |
Для проверки — запущен ли сервис в данный момент, используется команда:
Без форматирования |
---|
root@swlc01-server:/# service rsync status |
В ответ последует сообщение:
Без форматирования |
---|
* rsync is running
|
в случае если сервис запущен,или
Без форматирования |
---|
* rsync is not running |
в случае если сервис не запущен.
Настройка репликации MySQL
...
В секции [mysqld]
файла конфигурации /etc/mysql/my.mysql.conf.d/mysqld.cnf произвести следующие изменения:
...
Для работы репликации необходима служебная учетная запись на каждом из серверов. Под этой учетной записью сервер будет подключаться к master серверу и получать изменения в данных.
Создать в консоли MySQL учетную запись для репликации на первом сервере:
Блок кода | ||||
---|---|---|---|---|
| ||||
GRANT SELECT, SUPER, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replication'@'<ip_server2>' IDENTIFIED BY 'password';
GRANT SELECT, SUPER, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replication'@'<ip_server1>' IDENTIFIED BY 'password'; #необходимо для проверки состояния репликации из EMS
FLUSH PRIVILEGES; |
Создать Создать в консоли MySQL учетную запись для репликации на втором сервере:
Блок кода | ||||
---|---|---|---|---|
| ||||
GRANT SELECT, SUPER, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replication'@'<ip_server1>' IDENTIFIED BY 'password';
GRANT SELECT, SUPER, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replication'@'<ip_server2>' IDENTIFIED BY 'password'; #необходимо для проверки состояния репликации из EMS
FLUSH PRIVILEGES; |
Информация |
---|
Привилегия SELECT необходима для работы проверки репликации из GUI EMS |
Выдача прав сервисным юзерам
Открыть /usr/lib/eltex-ems/conf/config.txt, посмотреть какие username используются (по умолчанию - javauser)
Выдаем им права на внешний доступ на обоих серверах
Блок кода | ||||
---|---|---|---|---|
| ||||
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password';
|
Включение репликации
Запуск репликации на втором сервере
...
Блок кода | ||||
---|---|---|---|---|
| ||||
mysql> STOP SLAVE; mysql> CHANGE MASTER TO MASTER_HOST='<ip_server1>', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107; mysql> START SLAVE; |
где,
- MASTER_LOG_FILE='mysql-bin.000001' – указать значение File, полученное на первом сервере.
- MASTER_LOG_POS=107 – указать значение Position, полученное в предыдущем пункте (при первичной настройке рекомендуется указать 107).
...
Блок кода | ||||
---|---|---|---|---|
| ||||
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='<ip_server2>', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107;
START SLAVE; |
...
В MongoDB репликация осуществляется объединением нескольких (в типовой конфигурации - 3) узлов в Replica Set. Replica Set состоит из одного primary узла и нескольких secondary (подробнее https://docs.mongodb.com/v4.0/administration/replica-set-deployment/). Для упрощения предлагаем схему:
Primary — основной сервер mongoDB.
Secondary — точные копии баз(ы) данных с real-time синхронизацией.
Arbiter — сервер отвечает только за выборы преемника, сам стать преемником он не может, поэтому рекомендуется отдавать под арбитра минимальные ресурсы.
Минимальные характеристики для mongo-db arbiter:
vCore: 1, 64-bit x86 CPUs
vRAM: 2 ГБ
vHDD: 20Гб
Все операции по изменению данных выполняются только на primary. При этом MongoDB автоматически выполняет failover и смену primary на живой узел, если текущий primary выйдет из строя. Но это требует 3+ узлов в replica set.
Предупреждение |
---|
При конфигурации по умолчанию Replica Set из двух узлов полностью выходит из строя при отказе одного из них (даже secondary). |
Настройка replicaSet
В В /etc/
hosts на всех узлах необходимо добавить ноды по типу <IP_address> <hostname>/etc/mongod.conf
на всех узлах:
...
где <replica_set_name>
имя replica set, выбирается произвольно, но должно быть одинаково на обоих всех серверахИзменить строку.
Разрешить внешние подключения, прописав в параметре bindIp (bind_ip в старой версии mongo) адрес 0.0.0.0 (0.0.0.0 - разрешает подключения с любых ip адресов)
Блок кода | ||||
---|---|---|---|---|
| ||||
bind_ip = bindIp: 0.0.0.0 |
Перезапустить MongoDB
...
Создать конфигурацию replica set
Блок кода | ||
---|---|---|
| ||
> rs.initiate() |
Через некоторое время, приглашение shell должно смениться на такое:
Блок кода | ||
---|---|---|
| ||
replica_set_name:PRIMARY> |
Если в сети не используется DNS обязательно проверить, правильно ли добавился первый узел в конфигурацию Replica Set:
Блок кода | ||||
---|---|---|---|---|
| ||||
Информация | ||||
Если хотите использовать в конфигурации hostname вместо ip-адреса, то на всех узлах в /etc/hostname нужно указать названия нод и в /etc/hosts на всех узлах необходимо добавить все ноды по типу <IP_address> <hostname> |
Блок кода | ||
---|---|---|
| ||
> rs.initiate( { " _id" : "relicareplica_set_name", " version" : 632431, " members" : [ { _id: 0, host : "ip_mongo_primary:27017" }, " { _id": 1, host : 0"ip_mongo_secondary:27017" }, { _id: 2, "host" : "<hostnameip_server1>mongo_arbiter:27017,true" } ] } } ] } |
Предупреждение |
---|
Если у первого элемента (индекс 0) указан hostname вместо ip-адреса, и при этом в сети не используется DNS необходимо скорректировать настройку Replica Set до добавления второго узла. Если используется DNS и указано верное DNS имя, можно переходить к добавлению второго узла. |
...
) |
Через некоторое время, приглашение shell должно смениться на такое:
Блок кода | ||||
---|---|---|---|---|
| ||||
replica_set_name:PRIMARY> conf = rs.conf()
replica_set_name:PRIMARY> conf.members[<индекс>].host = "<ip_server1>:27017"
replica_set_name:PRIMARY> rs.reconfig(conf) |
...
Посмотреть конфиг можно командой:
Блок кода | ||||
---|---|---|---|---|
| ||||
replica_set_name:PRIMARY> rs.config()
{
"_id" : "relica_set_name",
"version" : 63243,
"members" : [
{
"_id" : 0,
"host" : "<ip_server1>:27017"
}
]
} |
Параметр "host"
должен содержать ip-адрес этого сервера.
...
Проверить состояние Replica Set можно выполнив в консоли MongoDB команду rs.status()
Добавление/удаление/изменение узов в Replica Set
Настройку узлов в Replica Set можно выполнять только на PRIMARY
Добавить в Replica Set узел Secondary:
Блок кода | ||||
---|---|---|---|---|
| ||||
replica_set_name:PRIMARY> rs.add("<ip_server2>server>:27017") { "ok" : 1 } |
Если MongoDB отвечает на эту команду ошибкой, возможно, нет связи со вторым узлом (или там прописан bind_ip = прописан bindIp: 127.0.0.1
), или там не настроен блок replication
. Правильный ответ должен быть таким.
На втором узле приглашение консоли управления MongoDB должно смениться на:
Блок кода | ||
---|---|---|
| ||
root@swlc01-server:/# mongo replica_set_name:SECONDARY> |
То же самое выполнить для остальных узлов.
Проверить состояние Replica Set можно выполнив в консоли MongoDB команду rs.status()
Добавить в Replica Set узел Arbiter:
Блок кода | ||||
---|---|---|---|---|
| ||||
replica_set_name:PRIMARY> rs.add("<ip_server>:27017",true)
{ "ok" : 1 } |
Удалить узел из Replica Set (выполнять на PRIMARY):
Блок кода | ||||
---|---|---|---|---|
| ||||
replica_set_name:PRIMARY> rs.remove("<ip_server>:27017")
{ "ok" : 1 } |
Для корректировки адреса сервера выполнить следующее:
Блок кода | ||||
---|---|---|---|---|
| ||||
replica_set_name:PRIMARY> cfg = rs.conf()
replica_set_name:PRIMARY> cfg.members[<индекс>].host = "<ip_server>:27017"
replica_set_name:PRIMARY> rs.reconfig(cfg) |
Работа Eltex-PCRF в режиме кластера
...
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
nbi.client.protocol=http nbi.client.mercury.host=localhost nbimercury.client.port=80806565 nbi.client.file=/axis2/services/RadiusNbiService?wsdl nbi.client.login=admin nbi.client.password=password nbi.client.mercury.pool.size=100 # Config filePath to cache cache.config=/etc/eltex-apb/ehcache.xml # list of permitted files to hosts.file=/etc/eltex-apb/hosts.json # RRM config rrm.conf.file=/etc/eltex-apb/rrmconf.json # Timeout waiting for subscribe-request after connecting the access point to the server, in seconds subscribe.idle.timeout=60 # Maximum count of outgoing messages to queue for each session session.outgoingQueue=100 nbi.client.login=admin nbi.client.password=password |
- Изменить
localhost
на<virtual_ip>
в строке 21.
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ "auth.address" : "0.0.0.0", "auth.port" : 31812, "auth.mac.open.timeout.s" : 3600, "auth.mac.welcome.service" : "WELCOME", "acct.address" : "0.0.0.0", "acct.portports" : [1813, 31813], "lease.saver.address" : "0.0.0.0", "lease.saver.port" : 4381, "aaa.instances" : 5, "aaa.host" : "127.0.0.1", "aaa.secret" : "testing123", "aaa.auth.port" : 1812, "aaa.acct.port" : 1813, "aaa.rest.port" : 7080, "aaa.timeout" : 10, "aaa.attempts" : 1, "web.monitoring.port" : 7070, "cluster.enable" : false, "cluster.eventBusPort" : 5801, "radius" : { "url" : "jdbc:mysql://localhost/radius?useUnicode=true&characterEncoding=utf8&relaxAutoCommitconnectTimeout=true5000&connectTimeoutsocketTimeout=5000&autoReconnect=true&useSSL=false", "user" : "javauser", "password" : "javapassword", "max_pool_size" : 16 }, "mongo.pcrf" : { "connection_string": "mongodb://localhost:27017/pcrf?waitQueueMultiple=500&connectTimeoutMS=10000&socketTimeoutMS=0", "db_name": "pcrf" }, "mongo.ott" : { "connection_string": "mongodb://localhost:27017/ott?waitQueueMultiple=500&connectTimeoutMS=10000&socketTimeoutMS=0", "db_name": "ott" }, "session.storage" : { "session.check.period.s" : 300, "unauth.store.time.s" : 600, "interval.number.expired" : 3, "min.interval.s" : 45, "default.interval.s" : 600 }, "bras.coa" : { "coa.timeout" : 10, "coa.attempts" : 1, "remote.coa.port" : 3799, "executor.size" : 100, "log.clean.period.s" : 600, "log.store.period" : { "period" : 14, "unit" : "D" } }, "sql.ems" : { "url" : "jdbc:mysql://localhost/eltex_ems?useUnicode=true&characterEncoding=utf8&relaxAutoCommitconnectTimeout=true5000&connectTimeoutsocketTimeout=5000&autoReconnect=true&useSSL=false", "user" : "javauser", "password" : "javapassword", "max_pool_size" : 16 }, "sql.wireless" : { "url" : "jdbc:mysql://localhost/wireless?useUnicode=true&characterEncoding=utf8&relaxAutoCommitconnectTimeout=true5000&connectTimeoutsocketTimeout=5000&autoReconnect=true&useSSL=false", "user" : "javauser", "password": "javapassword", "max_pool_size": 16 }, "sql.auth.service" : { "url": "jdbc:mysql://localhost/eltex_auth_service?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&connectTimeout=5000&socketTimeout=5000&useSSL=false", "user": "javauser", "password": "javapassword", "max_pool_size": 4 }, "language" : 16 } } |
...
"en",
"radius.nbi" : {
"wdsl.url" : "http://localhost:8080/axis2/services/RadiusNbiService?wsdl",
"username" : "softwlc_service",
"password" : "softwlc",
"connection.timeout.ms" : 30000,
"request.timeout.ms" : 120000
},
"tariffs.update.interval" : {
"interval" : 1,
"unit" : "hours"
},
"bras.cron.update.interval": {
"interval" : 1,
"unit": "hours"
},
"filters.cache.dir" : "/var/lib/eltex-pcrf/filters/",
"clickhouse": {
"url": "jdbc:clickhouse://localhost:8123/radius",
"user_name": "javauser",
"user_password": "javapassword"
},
"accounting.options": {
"use_clickhouse": false,
"use_mysql": true,
"batch_interval_ms": 300000,
"max_queue_load": 100
}
}
|
- Изменить
mongodb://localhost
наmongodb://ip_mongo_primary,ip_mongo_secondary
во всех строках. - Изменить
localhost
на<virtualip>
во всех строках.
- Изменить
127.0.0.1
на<virtualip>
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
auth-service { host = localhost port = 21812 timeout = 10s retries = 3 secret = eltex # pap, chap, mschapv2 protocol = pap } login { # Количество попыток входа в панель администратора до наступления блокировки admin.attempts=5 maxAttemptsLogin = 3 maxAttemptsIP = 5 # Количество минут блокировки после достижения максимального числа попыток входа в панель администратора admin.block.time=5 ########################################################################### #######################Eltex Auth Service settings######################### ########################################################################### auth.service.address=localhost auth.service.port=21812 auth.service.timeout=10 auth.service.secret=eltex auth.service.retries=3 # pap, chap, mschapv2, eap-mschapv2, eap-md5, eap-ttls auth.service.protocol=eap-md5 ########################################################################### ##########################DB ELTEX_PORTAL settings######################### ########################################################################### # Диалект SQL соответвующий типу БД portal.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect # Использовать кеш 2-го уровня portal.hibernate.use_second_level_cache=true # использовать кэширование sql запросов portal.hibernate.use_query_cache=true # выборка соседних сущностей portal.hibernate.batch_size=2 # количество записоей при 1-й итерации выборки portal.hibernate.fetch_size=100 # Показывать сгенерированный sql portal.hibernate.show_sql=false ########################################################################### # Драйвер БД portal.db.driver=com.mysql.jdbc.Driver # URL к БД portal.db.url=jdbc:mysql://localhost:3306/ELTEX_PORTAL?max_allowed_packet=32362048&useUnicode=true&characterEncoding=utf8 # имя пользователя БД portal.db.username=javauser # пароль пользователя БД portal.db.password=javapassword # запрос выполняемый пулом для проверки валидности соединения portal.db.validationQuery=select 1 # периодичность выполнения проверки соединения portal.db.validationQueryTimeout=500 # флаг проверять ли соедиение при получении его из пула portal.db.testOnBorrow=true # флаг проверять ли соедиение при возращении его в пул portal.db.testOnReturn=false # флаг проверять ли соедиение в состоянии ожидания использования portal.db.testWhileIdle=true # кол-во миллисекунд в момент borrow из пула portal.db.maxWait=10000 # минимальное кол-во соединений portal.db.initialSize=1 # максимальное кол-во соединений portal.db.maxActive=20 # максимальное кол-во соединений находящихся в состоянии ожидания portal.db.maxIdle=1 # минимальное кол-во соединений находящихся в состоянии ожидания portal.db.minIdle=1 # время между циклами проверки соедиения на валидность portal.db.timeBetweenEvictionRunsMillis=10000 # минимальное время в состоянии idle portal.db.minEvictableIdleTimeMillis=2000 # установка AutoCommit для соединения portal.db.defaultAutoCommit=false |
...
blockTime = 5m
}
access {
// Временно задаём plaintext-secret прямо здесь (HMAC256), потом будем использовать путь в FS до PEM-файла (RSA256)
secret = "secret"
}
database {
host = localhost
port = 3306
name = ELTEX_PORTAL
user = javauser
password = javapassword
pool {
# Time to wait for a connection
connectionTimeout = 10s
# Time to wait for connection validation
validationTimeout = 3s
min = 1
max = 10
}
cache {
# Limit of cached simple entries count (for each query type)
maxEntries = 1000
# Limit of total cached portal resources size
maxResourceBytes = 32m
# Maximum time to retain items in the cache
expireTime = 30s
}
}
sso {
enabled = false
# Must be in double quotes
version = "1.0"
rest {
scheme = http
host = localhost
port = 80
sso_api_path = /apiman-gateway/b2b_test
}
auth {
scheme = http
host = localhost
port = 80
authentication_path = /auth/realms/b2b/protocol/openid-connect/auth
logout_path = /auth/realms/b2b/protocol/openid-connect/logout
}
params {
client_id = id
# URL of epadmin, URL must be in double quotes (!!!)
redirect_uri = "http://localhost:8080/epadmin/sso"
client_secret = secret
}
}
jetty {
https {
port = 9444
keystorePass = 12345
keystoreFile = /etc/eltex-portal-constructor/localhost.pfx
keystoreType = PKCS12
keyAlias = 1
ciphers = [
TLS_RSA_WITH_AES_128_CBC_SHA2 |
- Изменить
localhost
на<virtualip>
в строках 2, 25, 58, 64, 74.
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#portal DB{ ELTEX_PORTAL # Диалект SQL соответвующийdefaultRedirectUrl типу БД portal.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect # Использовать кеш 2-го уровня portal.hibernate.use_second_level_cache=true # использовать кэширование sql запросов portal.hibernate.use_query_cache=true # выборка соседних сущностей portal.hibernate.batch_size=1 # количество записоей при 1-й итерации выборки portal.hibernate.fetch_size=100 # Показывать сгенерированный sql portal.hibernate.show_sql=false # Драйвер БД portal.db.driver=com.mysql.jdbc.Driver # URL к БД portal.db.url=jdbc:mysql://localhost:3306/ELTEX_PORTAL?max_allowed_packet=32362048&useUnicode=true&characterEncoding=utf8 # имя пользователя БД portal.db.username=javauser # пароль пользователя БД portal.db.password=javapassword # запрос выполняемый пулом для проверки валидности соединения portal.db.validationQuery=select 1 # периодичность выполнения проверки соединения portal.db.validationQueryTimeout=500 # флаг проверять ли соедиение при получении его из пула portal.db.testOnBorrow=true # флаг проверять ли соедиение при возращении его в пул portal.db.testOnReturn=false # флаг проверять ли соедиение в состоянии ожидания использования portal.db.testWhileIdle=true # кол-во миллисекунд в момент borrow из пула portal.db.maxWait=10000 # минимальное кол-во соединений portal.db.initialSize=5 # максимальное кол-во соединений portal.db.maxActive=50 # максимальное кол-во соединений находящихся в состоянии ожидания portal.db.maxIdle=5 # минимальное кол-во соединений находящихся в состоянии ожидания portal.db.minIdle=1 # время между циклами проверки соедиения на валидность portal.db.timeBetweenEvictionRunsMillis=10000 # минимальное время в состоянии idle portal.db.minEvictableIdleTimeMillis=2000 # установка AutoCommit для соединения portal.db.defaultAutoCommit=false portal.global_redirect_url=http://eltex-co.ru/ |
...
= "http://eltex-co.ru"
scheduler {
tariffCheckerPeriod = 1d
paymentsCleanerPeriod = "0 0 * * * ?"
}
}
jetty {
https {
port = 9443
keystorePass = 12345
keystoreFile = /etc/eltex-portal/localhost.pfx
keystoreType = PKCS12
keyAlias = 1
ciphers = [
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
]
}
}
database {
host = localhost
port = 3306
name = ELTEX_PORTAL
user = javauser
password = javapassword
pool {
# Time to wait for a connection
connectionTimeout = 10s
# Time to wait for connection validation
validationTimeout = 3s
min = 1
max = 10
}
cache {
# Limit of cached simple entries count (for each query type)
maxEntries = 1000
# Limit of total cached portal resources size
maxResourceBytes = 32m
# Maximum time to retain items in the cache
expireTime = 2m
}
}
// JWT validation. You need a key from Eltex Doors.
// Or you could generate it yourself.
validation {
public_key = "etc/eltex-doors/keys/public.pem" |
- Изменить
localhost
на<virtualip>
в строке 27.
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
# DB radius(alias=radius) radius.jdbc.driver=org.gjt.mm.mysql.Driver radius.jdbc.dbUrl=jdbc:mysql://localhost/radius?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000 radius.jdbc.username=javauser radius.jdbc.password=javapassword radius.jdbc.maxPoolSize=48 radius.jdbc.inUse=yes # DB radius replica(alias=radiusReplicaPool) #TODO: Change it to replica url radius.jdbc.replica.driver=org.gjt.mm.mysql.Driver radius.jdbc.replica.dbUrl=jdbc:mysql://localhost/radius?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000 radius.jdbc.replica.username=javauser radius.jdbc.replica.password=javapassword radius.jdbc.replica.maxPoolSize=48 radius.jdbc.replica.inUse=yes # DB ems(alias=ems) ems.jdbc.driver=org.gjt.mm.mysql.Driver ems.jdbc.dbUrl=jdbc:mysql://localhost/eltex_ems?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&noAccessToProcedureBodies=true ems.jdbc.username=javauser ems.jdbc.password=javapassword ems.jdbc.maxPoolSize=48 ems.jdbc.inUse=yes # DB wireless (alias=wireless) wireless.jdbc.driver=org.gjt.mm.mysql.Driver wireless.jdbc.dbUrl=jdbc:mysql://localhost/wireless?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000 wireless.jdbc.username=javauser wireless.jdbc.password=javapassword wireless.jdbc.maxPoolSize=48 wireless.jdbc.inUse=yes # DB logs (alias=logs) logs.jdbc.driver=org.gjt.mm.mysql.Driver logs.jdbc.dbUrl=jdbc:mysql://localhost/eltex_alert?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000 logs.jdbc.username=javauser logs.jdbc.password=javapassword logs.jdbc.maxPoolSize=48 logs.jdbc.inUse=yes # DB logs (alias=eltex_auth_service) eltex_auth_service.jdbc.driver=org.gjt.mm.mysql.Driver eltex_auth_service.jdbc.dbUrl=jdbc:mysql://localhost/eltex_auth_service?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000 eltex_auth_service.jdbc.username=javauser eltex_auth_service.jdbc.password=javapassword eltex_auth_service.jdbc.maxPoolSize=48 eltex_auth_service.jdbc.inUse=no # адрес ems-northbound ems.nbi.host=127.0.0.1 ems.nbi.port=8080 ems.nbi.path=northbound ems.nbi.protocol=http # eltex_auth_service auth.port=22 auth.host=127.0.0.1 auth.username=username auth.password=password # freeradius-domain-1 freeradius-domain-1.port=22 freeradius-domain-1.host=192.168.0.1 freeradius-domain-1.username=username freeradius-domain-1.password=password # freeradius-domain-2 freeradius-domain-2.port=22 freeradius-domain-2.host=192.168.0.2 freeradius-domain-2.username=username freeradius-domain-2.password=password # tomcat url tomcat.host=172127.270.0.1.18 tomcat.port=8080 # pcrf stuff pcrf.enabled=true pcrf.url=http://localhost:7070 pcrf.username=admin pcrf.password=password # pcrf mongodb connector pcrf.mongodb.enabled=true pcrf.mongodb.uri=mongodb://localhost:27017/pcrf # wifi-customer-cab mongodb connector wificab.mongodb.enabled=true wificab.mongodb.uri=mongodb://localhost:27017/wifi-customer-cab # Eltex.SORM2.replicator MongoDB 'sorm2' connect sorm2.mongodb.enabled=false sorm2.mongodb.uri=mongodb://localhost:27017/sorm2 # wifi-customer-cab request settings wificab.timeout=90000 # Eltex.SORM2.replicator host to use API sorm2.enabled=false sorm2.url=http://localhost:7071 sorm2.username=admin sorm2.password=password #It enables records export to SORM3 while editing wifi users sorm3.enabled=false # ott mongodb connector ott.mongodb.enabled=true ott.mongodb.uri=mongodb://localhost:27017/ott # metrics metric.interval.s=900 ########################################################################### ##########################DB ELTEX_PORTAL settings######################### ########################################################################### portal.db.driver=com.mysql.jdbc.Driver portal.db.dialect=org.hibernate.dialect.MySQL5Dialect portal.db.url=jdbc:mysql://localhost:3306/ELTEX_PORTAL?max_allowed_packet=32362048&useUnicode=true&characterEncoding=utf8 portal.db.username=javauser portal.db.password=javapassword portal.hibernate.use_second_level_cache=false portal.hibernate.use_query_cache=falsejavapass |
- Изменить
mongodb://localhost
наmongodb://ip_mongo_primary,ip_mongo_secondary
- Изменить
localhost
на<virtualip>
в строках 3, 11, 19, 27, 35, 71, 77, 81, 85, 101 - Изменить
127.0.0.1
на<virtualip>
в строках 49, 66
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#Common gates settings #Current gate used for each type (config name, for example smpp_gate.conf) sms.gate.outgoing.sms.config=smsc_gate.conf #For incoming sms/calls fields for numbers in configs should be set sms.gate.incoming.sms.config= sms.gate.incoming.call.config= #Gate pool settings sms.gate.pool.size=50 sms.gate.pool.wait.millis=5000 #Port to listen for requests server.port=8040 #============================= #=======database settings===== #============================= #mongodb.uri=mongodb://192.168.1.1,192.168.1.2:27017/notification-gw mongodb.host=localhost mongodb.port=27017 #mongodb.user=user #mongodb.password=password mongodb.name=notification-gw #============================= #=======email settings======== #============================= mail.smtp.submitter=test@email.com mail.smtp.password= mail.smtp.auth=true mail.smtp.host=email.com mail.smtp.port=587 mail.smtp.sendpartial=true mail.smtp.starttls.enable=false mail.smtp.connectiontimeout=5000 mail.gate.pool.size=20 mail.pool.wait.millis=10000 |
- Изменить
localhost
на<virtualip>
наip_mongo_primary,ip_mongo_secondary
в строке 19.
Блок кода | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
# Ports on which the server will listen auth_port=1812 acct#acct_port=1813 inner_tunnel_port=18121 # MySQL database db_host="localhost" db_port=3306 db_login="radius" db_password="radpass" db_name="radius" # Enable checking that SSID is locked (1 - enabled, other values - disabled) # Check is performed using query to 'wireless' database ssid_check_enabled=1 # MySQL 'wireless' database wireless_db_host="localhost" wireless_db_port=3306 wireless_db_login="javauser" wireless_db_password="javapassword" wireless_db_name="wireless" # PCRF # If you setting pcrf_enabled=0, then you also should enable accounting port listening in "default" server pcrf_host="127.0.0.1" pcrf_port=7080 pcrf_enabled=1 # EAP ca_cert_name="defaultlocal.pem" tls_key_password="eltex1234" # Proxying proxy_auth=0 proxy_domain_regex="^(.+\.)?enterprise\.root$" proxy_host="127.0.0.1" proxy_port=18121 proxy_secret="eltex" # Ubiquity vendor detection ubi_vendor_regex="Apple|Ubiquiti" vendor_group_enabled=1 # Settings of runtime NAS discovery dynamic_clients=false dynamic_client_subnet=192.168.0.0/16 dynamic_client_lifetime=3600 dynamic_client_rate_limit=false # Proxy SSID (for example to eltex-eap-tls) #139679 proxy_ssid_enabled=0 proxy_ssid_value="EAP_TLS" proxy_ssid_host="127.0.0.1" proxy_ssid_port=18122 proxy_ssid_secret="eltex" |
- Изменить
localhost
на<virtualip>
в строках 7, 18 - Изменить
127.0.0.1
на<virtualip>
в строке 25
Блок кода | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <entry key="mongoaddress">mongodb://localhost:27017/wifi-customer-cab</entry> <entry key="nbiaddress">http://172.27.1.18localhost:8080/axis2/services/RadiusNbiService?wsdl</entry> <entry key="nbi.serviceLogin.user">softwlc_service</entry> <entry key="nbi.serviceLogin.password">softwlc</entry> <entry key="nbi.serviceLogin.requestTimeout.sec">120</entry> <!--Bonnie or NBI--> <entry key="data.service.type">NBI</entry> <entry key="bonnie.service.host">localhost</entry> <entry key="bonnie.service.port">9070</entry> <!-- параметры, применяемые при авторизации через eltex-auth-service --> <entry key="radius.auth.address">localhost</entry> <entry key="radius.auth.shareSecret">eltex</entry> <entry key="radius.auth.authPort">21812</entry> <entry key="radius.auth.acctPort">21813</entry> <entry key="radius.auth.timeout.sec">10</entry> <entry key="radius.auth.retries">5</entry> </properties> |
...
!-- Support link -->
<entry key="support.page.enabled">false</entry>
<entry key="support.page.url">http://eltex-co.ru</entry>
<!-- DPI link -->
<entry key="dpi.page.enabled">false</entry>
<entry key="dpi.page.url">https://filter.wifi.rt.ru/</entry>
<!-- SSO Settings -->
<entry key="sso.enabled">false</entry>
<entry key="sso.redirectUri">http://localhost:8080/wifi-cab/sso</entry>
<entry key="sso.clientSecret"></entry>
<entry key="sso.clientId"></entry>
<!-- SSO Auth -->
<entry key="sso.auth.server.protocol">http</entry>
<entry key="sso.auth.server.address"></entry>
<entry key="sso.auth.server.port">80</entry>
<entry key="sso.auth.auth.path">/auth/realms/b2b/protocol/openid-connect/auth</entry>
<entry key="sso.auth.logout.path">/auth/realms/b2b/protocol/openid-connect/logout</entry>
<!-- SSO REST -->
<entry key="sso.rest.server.protocol">http</entry>
<entry key="sso.rest.server.address"></entry>
<entry key="sso.rest.server.port">80</entry>
<entry key="sso.rest.server.timeout.sec">10</entry>
<entry key="sso.rest.protocol.version">2.0</entry>
<entry key="sso.rest.username"></entry>
<entry key="sso.rest.password"></entry>
<entry key="sso.rest.getToken.path">/apiman-gateway/b2b_test/getToken</entry>
<entry key="sso.rest.getUserInfo.path">/apiman-gateway/b2b_test/getUserInfo</entry>
<entry key="sso.rest.addUser.path">/apiman-gateway/b2b_test/addUser</entry>
<entry key="sso.rest.updateUser.path">/apiman-gateway/b2b_test/updateUser</entry>
<entry key="sso.rest.delUser.path">/apiman-gateway/b2b_test/delUser</entry>
<entry key="sso.rest.addUserParam.path">/apiman-gateway/b2b_test/addUserParam</entry>
<entry key="sso.rest.delUserParam.path">/apiman-gateway/b2b_test/delUserParam</entry>
<entry key="sso.rest.getUserByName.path">/apiman-gateway/b2b_test/getUserByName</entry>
<entry key="sso.rest.resetPassword.path">/apiman-gateway/b2b_test/resetPassword</entry>
<entry key="sso.rest.getUserByParam.path">/apiman-g
|
- Изменить
mongodb://localhost
наmongodb://ip_mongo_primary,ip_mongo_secondary
- Изменить
localhost
на<virtualip>
Блок кода | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
# DB Event
poolName1=event
event.jdbc.driver=org.gjt.mm.mysql.Driver
event.jdbc.dbUrl=jdbc:mysql://localhost/eltex_alert?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000
event.jdbc.username=javauser
event.jdbc.password=javapassword
event.jdbc.maxPoolSize=32
event.jdbc.inUse=yes
# remote db host access with su privileges
# event.ssh.login=
# event.ssh.password=
# event.ssh.port=
# DB Tree
poolName2=tree
tree.jdbc.driver=org.gjt.mm.mysql.Driver
tree.jdbc.dbUrl=jdbc:mysql://localhost/eltex_ems?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&noAccessToProcedureBodies=true
tree.jdbc.username=javauser
tree.jdbc.password=javapassword
tree.jdbc.maxPoolSize=20
tree.jdbc.inUse=yes
# DB Ont
poolName3=ont
ont.jdbc.driver=org.gjt.mm.mysql.Driver
ont.jdbc.dbUrl=jdbc:mysql://localhost/eltex_ont?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000
ont.jdbc.username=javauser
ont.jdbc.password=javapassword
ont.jdbc.maxPoolSize=40
ont.jdbc.inUse=yes
# DB Syslog
poolName4=syslog
syslog.jdbc.driver=org.gjt.mm.mysql.Driver
syslog.jdbc.dbUrl=jdbc:mysql://localhost/Syslog?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000
syslog.jdbc.username=javauser
syslog.jdbc.password=javapassword
syslog.jdbc.maxPoolSize=4
syslog.jdbc.inUse=yes
# remote db host access with su privileges
# syslog.ssh.login=
# syslog.ssh.password=
# syslog.ssh.port=
# DB acsmain (alias=cpe)
poolName5=cpe
cpe.jdbc.driver=org.gjt.mm.mysql.Driver
cpe.jdbc.dbUrl=jdbc:mysql://localhost/acsmain?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000
cpe.jdbc.username=javauser
cpe.jdbc.password=javapassword
cpe.jdbc.maxPoolSize=2
cpe.jdbc.inUse=yes
# DB acscmds(alias=cmds)
poolName6=cmds
cmds.jdbc.driver=org.gjt.mm.mysql.Driver
cmds.jdbc.dbUrl=jdbc:mysql://localhost/acscmds?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000
cmds.jdbc.username=javauser
cmds.jdbc.password=javapassword
cmds.jdbc.maxPoolSize=2
cmds.jdbc.inUse=yes
# DB acsinf(alias=inf)
poolName7=inf
inf.jdbc.driver=org.gjt.mm.mysql.Driver
inf.jdbc.dbUrl=jdbc:mysql://localhost/acsinf?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000
inf.jdbc.username=javauser
inf.jdbc.password=javapassword
inf.jdbc.maxPoolSize=2
inf.jdbc.inUse=yes
# DB acscache(alias=cache)
poolName8=cache
cache.jdbc.driver=org.gjt.mm.mysql.Driver
cache.jdbc.dbUrl=jdbc:mysql://localhost/acscache?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000
cache.jdbc.username=javauser
cache.jdbc.password=javapassword
cache.jdbc.maxPoolSize=2
cache.jdbc.inUse=yes
# DB radius(alias=radius)
poolName9=radius
radius.jdbc.driver=org.gjt.mm.mysql.Driver
radius.jdbc.dbUrl=jdbc:mysql://localhost/radius?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000
radius.jdbc.username=javauser
radius.jdbc.password=javapassword
radius.jdbc.maxPoolSize=40
radius.jdbc.inUse=yes
# remote db host access with su privileges
# radius.ssh.login=
# radius.ssh.password=
# radius.ssh.port=
# ------------------------------------------- SSID ---------------------------------------------
# DB wireless (alias=wireless)
poolName10=wireless
wireless.jdbc.driver=org.gjt.mm.mysql.Driver
wireless.jdbc.dbUrl=jdbc:mysql://localhost/wireless?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000
wireless.jdbc.username=javauser
wireless.jdbc.password=javapassword
wireless.jdbc.maxPoolSize=30
wireless.jdbc.inUse=yes
# memcached server address
#memcached_server_ip_port=127.0.0.1:11211
|
Изменить localhost
на <virtualip>
в строках 4, 17, 26, 35, 48, 57, 66, 75, 84, 98.
Смена настроек в GUI
Также нужно настроить модули SoftWLC при помощи графического интерфейса.
...
В разделе Настройки → Интеграция в параметрах PCRF URL и , URL NGW-клиента и URL конструктора порталов изменить localhost на виртуальный ip-адрес:
...
Системные настройки → Доступ к NGW
Системные настройки → БД платежей
Системные настройки → Доступ к PCRF
EMS-GUI
В графическом интерфейсе сервера EMS изменить localhost (либо 127.0.0.1) на виртуальный ip-адрес в следующих разделах:
...