Для работы WNAM 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).
Вы можете установить все эти компоненты на одном сервере, а можете установить и на разных, в том числе в кластерной конфигурации. Минимальные настройки приведены далее.
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-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-enabledln -s ../sites-available/qow qow
Обязательно удалите /etc/nginx/sites-enabled/default :
rm /etc/nginx/sites-enabled/default
Проверьте правильность конфигурационного файла через:
nginx -t
Перезапустите сервис:
service nginx restart
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
Файлы qow-ca.crt, qow-server.crt и qow-server.key вы можете запросить на support@netams.com
Перезапустите службу: systemctl restart mosquitto.service и проверьте лог-файл /var/log/mosquitto/mosquitto.log
Внимание! Работа с 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
useradd -m -U -s /bin/false qow
mv qos-server.jar /home/qow
chmod +x /home/qow/qos-server.jar
chown qow:qow /home/qow/qos-server.jar
В файл /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=qowStandardOutput=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=300mnetams.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
Запустите:
systemctl start qos-server
systemctl status qos-server
Проверьте лог-файл /home/qow/qos.log
Попробуйте открыть веб-интерфейс сервера по http://имясервера/ или https://имясервера/
Логин и пароль по умолчанию: admin