Для работы WNAM QoW на ваших собственных вычислительных мощностях (on-premises, не в облаке) вам необходимо подготовить соответствующую инфраструктуру. Понадобится виртуальная или физическая машина с ОС 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 версии 17 и выше для работы приложения сервера
  • базы данных MongoDB версии 4.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 mosquitto 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/

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | tee /etc/apt/sources.list.d/mongodb-org-4.4.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 qow
mkdir  /home/qow/logs
mv qos-server.jar /home/qow
chmod +x /home/qow/qos-server.jar
chown qow:qow /home/qow/qos-server.jar /home/qow/logs

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

[Unit]
Description=WNAM QoS Server Service

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

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

[Install]
WantedBy=multi-user.target

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

systemctl enable qos-server

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

spring.application.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=айди
#ya.auth.callback=https://имя_вашего_сервера/ya/auth/callback
#ya.locator.apiKey=AHqZql8BAAAA09JiAwIA1G7QasD2nDWlgY2PiEEozTaXlIIAAAAAAAAAAAARAi0kd2og83NEZIGkvj0pFHfBkw==

spring.data.mongodb.database=qow

spring.mail.host=имя_вашего_почтового_сервера
spring.mail.port=25
netams.mail.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/qow/qos.log

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

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







  • No labels