Для работы WNAM Radar QoW на ваших собственных вычислительных мощностях (on-premises, не в облаке) вам необходимо подготовить соответствующую инфраструктуру. Понадобится виртуальная или физическая машина с ОС Linux.
Рекомендуемые аппаратные характеристики сервера в зависимости от ожидаемой нагрузки:
Тип инсталляции | CPU | RAM | HDD | Комментарий |
---|---|---|---|---|
Минимальная (до 3 сенсоров и до 20 точек доступа) | 2 | 8 | 50 | |
Стандартная (до 10 сенсоров и до 100 точек доступа) | 4 | 16 | 50+50 | Второй дисковый раздел: типа SSD, файловая система xfs |
Большая (до 100 сенсоров и до 1000 точек доступа) | 2 | 8 | 50 | Сервер Proxy+MQTT |
4 | 16 | 50 | Сервер приложения QoW | |
4 | 16 | 100 | Сервер базы данных, диск типа SSD, файловая система xfs |
Для системных нужд достаточно диска стандартной производительности (типа SATA).
Выбор операционной системы
...
Рекомендуется использовать тот дистрибутив Линукса, с которым у вас больше опыта. WNAM QoW может работать на любом дистрибутиве, при наличии в его составе необходимых пакетов. Мы рекомендуем использовать Debian последнего поколения (релизы 10 или 11).
Работа под Windows также возможна при условии самостоятельной настройки вами необходимых системных пакетов (брокера MQTT, nginx, mongodb, авто-запуска приложения qow).
WNAM QoW требует следующих системных компонентов:
- HTTP прокси-сервера nginx для работы веб-интерфейса
- виртуальной машины Java версии 1.8 для работы приложения сервера, который называется qos-server
- базы данных MongoDB версии 4.2 4 или выше
- Брокера MQTT, mosquitto
Вы можете установить все эти компоненты на одном сервере, а можете установить и на разных, в том числе в кластерной конфигурации. Минимальные настройки приведены далее.
Установка
...
Java
wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | apt-key add -
add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/
apt install adoptopenjdk-8-hotspot
вы также можете установить Java JRE из штатного пакета вашего дистрибутива, это предпочтительнее.
apt install openjdk-11-jdk-headless
Установка фронт-прокси сервера
apt-get install nginx mosquitto mosquitto-clients 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
и /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=radarqowStandardOutput=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=300mnetams.createDefaultAdmin=true
netams.serverUri=https://имя_вашего_сервераya.apiKey=880c9fc2-78c7-46c5-9457-8dbb5eac419d
ya.auth.clientSecret=секрет
ya.auth.clientId=айдиqos.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
qosya.notifications.enabled=truelocator.apiKey=AHqZql8BAAAA09JiAwIA1G7QasD2nDWlgY2PiEEozTaXlIIAAAAAAAAAAAARAi0kd2og83NEZIGkvj0pFHfBkw==spring.maildata.mongodb.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=trueqos.sms.provider=dummy
qos.sms.smsc.login=login
qos.sms.smsc.password=passwordqos.mqtt.server_uri=tcp://127.0.0.1:1883
qos.mqtt.client_id=wnamradarserver
qos.mqtt.venue=wnamqos.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
Создание индексов.
Загружаем скрипт:
wget https://packages.wnam.ru/qow/create_indexes.js.gz
Запускаем создание индексов:
cat create_indexes.js.gz | gzip -d | mongosh mongodb://127.0.0.1:27017/qow