Для работы 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).
WNAM QoW требует следующих системных компонентов:
- HTTP прокси-сервера nginx для работы веб-интерфейса
- виртуальной машины Java версии 1.8 для работы приложения сервера
- базы данных MongoDB версии 4.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-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
Установка брокера 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/
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
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