Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Для работы WNAM Radar QoW на ваших собственных вычислительных мощностях (on-premises, не в облаке) вам необходимо подготовить соответствующую инфраструктуру.WNAM Radar требует. Понадобится виртуальная или физическая машина с ОС Linux.

Рекомендуемые аппаратные характеристики сервера в зависимости от ожидаемой нагрузки:

Тип инсталляцииCPURAMHDDКомментарий
Минимальная (до 3 сенсоров и до 20 точек доступа)2850
Стандартная (до 10 сенсоров и до 100 точек доступа)41650+50Второй дисковый раздел: типа SSD, файловая система xfs

 

Большая (до 100 сенсоров и до 1000 точек доступа)

2850Сервер Proxy+MQTT
41650Сервер приложения QoW
416100Сервер базы данных, диск типа SSD, файловая система xfs

Для системных нужд достаточно диска стандартной производительности (типа SATA).

Выбор операционной системы

Рекомендуется использовать тот дистрибутив Линукса, с которым у вас больше опыта. WNAM QoW может работать на любом дистрибутиве, при наличии в его составе необходимых пакетов. Мы рекомендуем использовать Debian последнего поколения (релиз 13).

Работа под Windows также возможна при условии самостоятельной настройки вами необходимых системных пакетов (брокера MQTT, nginx, mongodb, авто-запуска приложения qow).

WNAM QoW требует следующих системных компонентов:

  • HTTP прокси-сервера nginx для работы веб-интерфейса
  • виртуальной машины Java версии 1.8 17 и выше для работы приложения сервера, который называется qos-server
  • базы данных MongoDB версии 4.2 4 или выше
  • Брокера MQTT, mosquitto

Вы можете установить все эти компоненты на одном сервере, а можете установить и на разных, в том числе в кластерной конфигурации. Минимальные настройки приведены далее.

Установка Java 

Необходимо установить Java JRE из штатного пакета вашего дистрибутива, это предпочтительнее.

Установка всех требуемых пакетов:

...

apt install openjdk-17-jdk-headless

Установка фронт-прокси сервера 

apt-get install nginx

Отредактируйте конфигурационный файл /etc/nginx/sites-available/qow:

server {
listen 80;
 access_log /var/log/nginx/access.log;
 location / { 
  proxy_pass http://127.0.0.1:8080/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 120;
proxy_connect_timeout 120;
}
} 

Если вы имеете SSL сертификат (купленный, или от Let's Encrypt) и хотите использовать сервер WNAM QoW так, чтобы он был доступен вам по протоколу HTTPS, используйте следующую конфигурацию:

server {
listen 80 default_server;
return 301 https://$server_name$request_uri;
server_name имя_вашего_сервера;
}
server {
listen 443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/имя_вашего_сервера/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/имя_вашего_сервера/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
root /var/www/html;
index index.html;
server_name имя_вашего_сервера;
location / { 
proxy_pass http://127.0.0.1:8080/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 120;
proxy_connect_timeout 120;
}
}

не забудьте сгенерировать файл dhparams:

openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096

Затем создайте ссылку: 

cd /etc/nginx/sites-enabled
ln -s ../sites-available/qow qow

Обязательно удалите /etc/nginx/sites-enabled/default :

rm /etc/nginx/sites-enabled/default

Проверьте правильность конфигурационного файла через: 

nginx -t

Перезапустите сервис:

service nginx restart

Установка брокера MQTT

apt-get install nginx mosquittomosquitto mosquitto-clients

Отредактируйте конфигурационные файлы /etc/mosquitto/mosquitto.conf :

pid_file /var/run/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

Обратите внимание, что расположение файлов (лог, pid и т.п.) зависит от версии дистрибутива ОС. Например, Ubuntu создаёт pid-файлы в var/run/mosquitto/mosquitto.pid

и /etc/mosquitto/conf.d/qow.conf :

port 1883

listener 8883
cafile /etc/mosquitto/ca_certificates/qow-ca.crt
certfile /etc/mosquitto/certs/qow-server.crt
keyfile /etc/mosquitto/certs/qow-server.key
tls_version tlsv1.2

Внимание! Для mosquitto версии 2 и выше добавьте в него также строку:

allow_anonymous true

Файлы qow-ca.crt, qow-server.crt и qow-server.key вы можете запросить на support@netams.com

Перезапустите службу: systemctl restart mosquitto.service и проверьте лог-файл  /var/log/mosquitto/mosquitto.log

Установка MongoDB

Внимание! Работа с MongoDB версий 3.х и 5.х не поддерживается!

Вы можете воcпользоваться инструкцией с сайта производителя: https://docs.mongodb.com/v4.4/administration/install-on-linux/

wgetwget -qO - https://www.mongodb.org/static/pgp/server-4.24.asc | apt-key add -
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.24 main" | tee /etc/apt/sources.list.d/mongodb-org-4.24.list
apt-get update 
apt-get install -y mongodb-org
systemctl unmask mongod
systemctl enable mongod
systemctl start mongod

Создания служебного пользователя и установка приложения QoW

useradd -m -U -s /bin/false radar qow
mkdir  /home/qow/logs
mv qos-server.jar /home/radarqow
chmod +x /home/radarqow/qos-server.jar
chown radarqow:radarqow /home/radarqow/qos-server.jar /home/qow/logs

В файл /etc/systemd/system/qos-server.service помещаем поместите конфигурацию авто-запуска:

[Unit]
Description=WNAM QoS Server Service

[Service]
WorkingDirectory=/home/radarqow
ExecStart=/usr/bin/java -jar -Dspring.profiles.active=qos -Dspring.config.location=/home/radarqow/application.properties /home/radarqow/qos-server.jar
SuccessExitStatus=143
Restart=on-failure
RestartSec=10
User=radarqow
Group=radar=qow

StandardOutput=file://home/qow/logs/console.log

[Install]
WantedBy=multi-user.target

Делаем ссылки на Включите авто-запуск:

systemctl enable qos-server

В файл /home/radarqow/application.properties помещаем поместите следующие настройки:

spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=radar
spring.mvc.locale=ru_RU
spring.mvc.locale-resolver=fixedapplication.name=WNAM QoS Server
server.use-forward-headers=true
server.tomcat.protocol-header=x-forwarded-proto
server.tomcat.remote-ip-header=x-forwarded-for
server.tomcat.basedir=.
server.port=8080
server.address=127.0.0.1
server.servlet.session.timeout=300m

netams.createDefaultAdmin=true
netams.serverUri=https://имя_вашего_сервера

#ya.apiKey=880c9fc2-78c7-46c5-9457-8dbb5eac419d
#ya.auth.clientSecret=секрет
#ya.auth.clientId=айди
#yaqos.stomp.sockjs=false
qos.db.init=true
qos.radar.silent=false
ya.api.key=
ya.client.secret=
ya.client.id=
ya.auth.callback=https://имявашегосервераимя_вашего_сервера/ya/auth/callback
qos#ya.notifications.enabled=truelocator.apiKey=AHqZql8BAAAA09JiAwIA1G7QasD2nDWlgY2PiEEozTaXlIIAAAAAAAAAAAARAi0kd2og83NEZIGkvj0pFHfBkw==

spring.data.mailmongodb.host=smtp.gmail.comdatabase=qow

spring.mail.port=587host=имя_вашего_почтового_сервера
spring.mail.usernameport=USERNAME25
springnetams.mail.password=PASSWORD
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

qos.sms.provider=dummy
qos.sms.smsc.login=login
qos.sms.smsc.password=password

qos.mqtt.server_uri=tcp://127.0.0.1:1883
qos.mqtt.client_id=wnamradarserver
qos.mqtt.venue=wnam

qos.mla.port=20003

qos.remote.token=ldsmgkalsgjklsdfgjsdklghj

from=admin@имя_вашего_сервера

netams.mqtt.serverUri=tcp://localhost:1883

netams.mqtt.clientId=qow
netams.remoteToken=snasjdfhasjkdflasdlkasdkjlasdgf
netams.licenseKey=ваш_лицензионный_ключ
netams.deviceType=qos

#rate for Scheduled com.netams.core.health.HealthCheckService#checkDevicesHealth
scheduled.health.check.devices.period=15000
#enable initialization tasks on startup
netams.initial.runInitialTasks=true



ЗапуститеЗапускаем:

systemctl start qos-server
systemctl status qos-server

Смотрим в Проверьте лог-файл /home/radarqow/qos.log

Открываем Попробуйте открыть веб-интерфейс сервера по http://имясервера/ или https:8000//имясервера/

Логин и пароль по умолчанию: admin

...