...
Информация |
---|
Привилегия 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; |
...
Предупреждение |
---|
При конфигурации по умолчанию Replica Set из двух узлов полностью выходит из строя при отказе одного из них (даже secondary). |
Настройка replicaSet
В В /etc/
hosts на всех узлах необходимо добавить ноды по типу <IP_address> <hostname>/etc/mongod.conf
на всех узлах:
...
Создать конфигурацию replica set
Через некоторое время, приглашение shell должно смениться на такое:
Блок кода |
---|
|
replica_set_name:PRIMARY> |
Если в сети не используется DNS обязательно проверить, правильно ли добавился первый узел в конфигурацию Replica Set:
Блок кода |
---|
|
replica_set_name:PRIMARY> rs.config()
Информация |
---|
Если хотите использовать в конфигурации 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 отвечает на эту команду ошибкой, возможно, нет связи со вторым узлом (или там прописан bindIp: 127.0.0.1
), или там не настроен блок replication
. Правильный ответ должен быть таким.
На втором узле приглашение консоли управления MongoDB должно смениться на:
...
Добавить в Replica Set узел Arbiter (выполнять на первом сервере):
Блок кода |
---|
|
replica_set_name:PRIMARY> rs.add("<ip_server3>server>:27017",true)
{ "ok" : 1 } |
Проверить состояние Replica Set можно выполнив в консоли MongoDB команду rs.status()
Удалить узел из 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 в режиме кластера
...
Блок кода |
---|
theme | RDark |
---|
title | Файл /etc/eltex-pcrf/eltex-pcrf.json |
---|
linenumbers | true |
---|
collapse | true |
---|
|
{
"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.ports" : [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&connectTimeout=5000&socketTimeout=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&connectTimeout=5000&socketTimeout=5000&autoReconnect=true&useSSL=false",
"user": "javauser",
"password": "javapassword",
"max_pool_size": 16
},
"sql.wireless" : {
"url": "jdbc:mysql://localhost/wireless?useUnicode=true&characterEncoding=utf8&connectTimeout=5000&socketTimeout=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" : "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>
во всех строках.
...
Блок кода |
---|
theme | RDark |
---|
title | Файл /etc/eltex-radius-nbi/radius_nbi_config.txt |
---|
linenumbers | true |
---|
collapse | true |
---|
|
# 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=127.0.0.1
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.url=jdbc:mysql://localhost:3306/ELTEX_PORTAL?max_allowed_packet=32362048&useUnicode=true&characterEncoding=utf8
portal.db.username=javauser
portal.db.password=javapass |
- Изменить
mongodb://localhost
на mongodb://ip_mongo_primary,ip_mongo_secondary
во всех строках. - Изменить
localhost
на <virtualip>
во всех строках. - Изменить
127.0.0.1
на <virtualip>
во всех строках.
...
Блок кода |
---|
theme | RDark |
---|
title | Файл /etc/eltex-ngw/notification.properties |
---|
linenumbers | true |
---|
collapse | true |
---|
|
#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.
Блок кода |
---|
theme | RDark |
---|
title | Файл /etc/eltex-radius/local.conf |
---|
linenumbers | true |
---|
collapse | true |
---|
|
# Ports on which the server will listen
auth_port=1812
#acct_port=1813
inner_tunnel_port=18121
# MySQL database
db_host="localhost"
db_port=3306
db_login="radius"
db_password="radpass"
db_name="radius"
# 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="local.pem"
tls_key_password="1234"
# 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"
|
...
Блок кода |
---|
language | xml |
---|
theme | RDark |
---|
title | Файл /etc/eltex-wifi-cab/system.xml |
---|
linenumbers | true |
---|
collapse | true |
---|
|
<?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://localhost: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>
<!-- 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
в строке 4. - Изменить
localhost
на <virtualip>
во всех строках.
...
Изменить localhost
на <virtualip>
в строках 4, 17, 26, 35, 48, 57, 66, 75, 84, 98.
Смена настроек в GUI
Также нужно настроить модули SoftWLC при помощи графического интерфейса.
...