Установка и настройка IOT VEGA Server + Admin Tool + Pulse на Linux Ubuntu

Обновлено Обновлено: Опубликовано Опубликовано:

VEGA Server — программное обеспечение для приема данных из различных устройств. Например, вместе с Pulse его можно использовать для получения и отображения показаний водосчетчиков, электросчетчиков, счетчиков газа с импульсными выходами.

Дистрибутив сервера распространяется как deb-пакет, поэтому установка будет выполняться на Linux Ubuntu. Инструкция также будет работать для Debian.

Предварительная настройка

Прежде чем начать, выполним некоторые настройки.

Обновление пакетов

В Ubuntu важно вручную обновлять кэш репозитория. В противном случае могут возникать ошибки во время установки пакетов.

Выполняем команду:

apt update

Если сервер новый, то можно также обновить пакеты:

apt upgrade

Установка CURL

В инструкции для загрузки файлов мы будем использовать утилиту curl. Необходимо убедиться, что она есть в системе:

apt install curl

Настройка брандмауэра

По умолчанию, в Ubuntu фаервол настроен, чтобы пропускать все пакеты, и настройка не требуется. Однако, если в вашей системе брандмауэр блокирует входящие, нам нужно будет открыть порты udp/8001 и tcp/8002.

Как правило в системах Deb, это делается с помощью утилиты iptables:

iptables -I INPUT -p udp --dport 8001 -j ACCEPT

iptables -I INPUT -p tcp --dport 8002 -j ACCEPT

Для сохранения правил используем iptables-persistent:

apt install iptables-persistent

netfilter-persistent save

Можно переходить к установке и настройке сервера VEGA.

Установка и запуск VEGA Server

Переходим на страницу iotvega.com/product/server и копируем ссылку на IOT Vega Server для Linux:

Копируем ссылку на IOT Vega Server для Linux

Скачиваем архив на сервере:

curl -sLO https://iotvega.com/content/ru/soft/server/iot-vega-server-1.9.0rc18.5-100.deb

* В данном примере скачивается версия 1.9.0.

Выполняем установку:

dpkg -i iot-vega-server-*.deb

После установочный файл лучше удалить:

rm -f iot-vega-server-*.deb

Открываем на редактирование файл конфигурации:

vi /opt/iot-vega-server/settings.conf

Редактируем IP-адрес, на котором сервис должен работать:

ip=192.168.1.10

* в данном примере сервер будет слушать на адресе 192.168.1.10.

Запускаем сервер:

/opt/iot-vega-server/iot-vega-server.sh

Мы должны увидеть сообщение об успешном запуске:

...
INFO: [01-11 10:10:09.937](void CCustomDbConnectionRoutine::getGatewayStatistics(DB_UNI::SDbRequstParams):5968) - Collecting  gateways statistics is starting...
INFO: [01-11 10:10:09.937](CCustomDbConnectionRoutine::getGatewayStatistics(DB_UNI::SDbRequstParams)::<lambda()>:5972) - Collecting  gateways statistic is ended
INFO [11-01-2025 10:10:09.938](void CUdpServer::start():103) - UDP socket has opened. IP[62.217.182.183:8001]
INFO [11-01-2025 10:10:09.939](void CWebSocketServer::threadStartedSlot():116) - WebSocketServer has opened. Port[8002]

"DEBUG(int CCoreApplication::attach():22) - Started controller CCoreApplication"

Оставим консоль и подключимся новой (еще одной). В списке прослушиваемых портов должны появиться 8001 и 8002:

ss -tunlp | grep 800[1,2]

udp  UNCONN  0  0  192.168.1.62:8001  *:*  users:(("iot-vega-server",pid=4381,fd=13))
tcp  LISTEN  0  50  :::8002  :::*  users:(("iot-vega-server",pid=4381,fd=6))

Для автозапуска сервиса необходимо вручную создать systemd юнит:

vi /usr/lib/systemd/system/iot-vega-server.service

[Unit]
Description=IOT Vega Server
After=network.target

[Service]
User=root
Group=root
Type=forking

ExecStart=/opt/iot-vega-server/iot-vega-server.sh
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target

Разрешаем автозапуск сервиса и стартуем его:

systemctl enable iot-vega-server --now

Для проверки работы, можно перезагрузить сервер и после загрузки проверить состояние службы:

systemctl status iot-vega-server

Хранение данных в MariaDB / MySQL

По умолчанию, данные хранятся в своей внутренней базе в файле /opt/iot-vega-server/server.db. Для работы с другой СУБД выполняем ряд действий, описанных ниже.

Установка MariaDB

Сначала установим ее:

apt install mariadb-server

Разрешаем автозапуск и запускаем:

systemctl enable mysql --now

Задаем пароль суперпользователю mysql:

mysqladmin -u root password

Создание базы и пользователя в СУБД

Заходим в оболочку SQL:

mysql -uroot -p

Создаем базу данных:

> CREATE DATABASE lorawan_server DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

* в данном примере создана база lorawan_server.

Создаем пользователя и даем ему полные права на созданную базу:

> GRANT ALL PRIVILEGES ON lorawan_server.* TO vega@localhost IDENTIFIED BY 'vega123' WITH GRANT OPTION;

* в данном примере создана учетная запись vega с паролем vega123.

Выходим из оболочки sql:

> \q

Настройка библиотек IOT VEGA

Для работы с MySQL необходимо, чтобы все библиотеки или симлинки на них находились в каталоге /opt/iot-vega-server. Для проверки библиотек, переходим в каталог:

cd /opt/iot-vega-server/sqldrivers

Запускаем команду:

LD_LIBRARY_PATH=/opt/iot-vega-server/ ldd libqsqlmysql.so | grep "not found"

В моем случае был ответ такой:

        libssl.so.10 => not found
        libcrypto.so.10 => not found

... это означает, что симлинки libssl.so.10 и libcrypto.so.10 ведут на несуществующие файлы. Сначала удалим неправильные ссылки:

\rm /opt/iot-vega-server/libssl.so.10

\rm /opt/iot-vega-server/libcrypto.so.10

Теперь найдем правильное местоположение библиотек:

find {/usr/lib,/lib} -name "libssl*"

find {/usr/lib,/lib} -name "libcrypto*"

* в данном примере мы пытаемся найти нужные нам библиотеки в каталогах /lib и /usr/lib. В одном из них должны находиться нужные нам библиотеки.

После создадим правильные симлинки на существующие файлы. У меня получилось так:

ln -s /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 /opt/iot-vega-server/libssl.so.10

ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /opt/iot-vega-server/libcrypto.so.10

Снова запускаем проверку:

LD_LIBRARY_PATH=/opt/iot-vega-server/ ldd libqsqlmysql.so | grep "not found"

... команда ничего не должна вернут.

Настройка Вега сервера

Для того, чтобы наш сервер начал использовать внешнюю базу, открываем его конфигурационный файл:

vi /opt/iot-vega-server/settings.conf

Редактируем следующее:

...
[external_db]
...
useExternalDb=1
...
userExternalDb=vega
passwordExternalDb=vega123
...

useExternalDb указывает, использовать ли внешнюю базу данных; userExternalDb задает имя пользователя; passwordExternalDb — пароль для пользователя базы.

Перезапускаем демона vega:

systemctl restart iot-vega-server

Проверяем работу сервиса:

systemctl status iot-vega-server

* если сервис запускается с ошибкой, снова открываем конфигурационный файл /opt/iot-vega-server/settings.conf и задаем настройки подключения к базе под пользователем root.

Установка Admin Tool

Для управления сервером с помощью веб-интерфейса, ставим веб-сервер и Admin Tool.

Веб-сервер

В качестве веб-сервера достаточно установить NGINX. Для его установки вводим:

apt install nginx

Разрешаем автозапуск и стартуем сервис:

systemctl enable nginx --now

Если в системе брандмауэр блокирует входящие, нам нужно будет открыть порт 80:

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

netfilter-persistent save

Можно переходить к установке и настройке сервера VEGA.

Для проверки работы сервера открываем браузер и переходим на страницу http://<IP-адрес сервера>/ — должна откыться страница приветствия NGINX:

Страница приветствия NGINX

Admin Tool

Заходим на тот же сайт iotvega.com/product/server и копируем ссылку на портал управления:

Копируем ссылку на IOT Vega Admin Tool

С помощью данной ссылки скачиваем архив на сервер:

curl -sLO "https://iotvega.com/content/ru/soft/server/IoT%20Vega%20AdminTool%20v1.1.7.zip"

* так как в пути есть спецсимволы, необходимо адрес вставить в кавычки.

Устанавливаем unzip для распаковки архива:

apt install unzip

Распаковываем архив:

unzip IoT%20Vega%20AdminTool%20v*.zip

Архив можно удалить:

rm -f IoT%20Vega%20AdminTool%20v*.zip

Переносим каталог с порталом к домашнюю директорию веб-сервера:

mv IoT\ Vega\ AdminTool\ v*/ /var/www/html/admin

Открываем настройки административной консоли:

vi /var/www/html/admin/config.js

Задаем адрес, на котором слушает сервер Vega:

const address_ws = 'ws://192.168.1.10:8002';

* в данном примере мы поменяли IP на 192.168.1.10 и порт на 8002. Адрес должен быть внутренним, если мы будем заходить на сервер по внутренней сети или внешним, если заходить будем из сети Интернет.

Открываем браузер и переходим по адресу http://<IP-адрес сервера>/admin/ — должна открыться страница входа в Admin Tool.

Вводим логин root и пароль 123 (по умолчанию; задаются в настройках Vega Server — файле /opt/iot-vega-server/settings.conf, опция password).

Установка Pulse

IOT Vega Pulse является клиентским веб-приложением. Оно нужно для отображения информации, которая была собрана сервером.

Для установки нам нужен веб-сервер. Его мы устанавливали на этапе, когда разворачивали Admin Tool. Теперь нам нужно просто скачать и распаковать портал Pulse.

Заходим на страницу iotvega.com/product/app и копируем ссылку на стабильную версию Pulse:

Копируем ссылку на стабильную версию Pulse

С помощью данной ссылки скачиваем архив на сервер:

curl -sLO https://iotvega.com/content/ru/soft/app/IoT%20Vega%20Pulse%20v1.1.14.zip

Распаковываем скачанный архив:

unzip IoT%20Vega%20Pulse%20v*.zip

* у нас должен быть установлен пакет unzip.

Архив можно удалить:

rm -f IoT%20Vega%20Pulse%20v*.zip

Переносим портал в каталог веб-сервера:

mv IoT\ Vega\ Pulse\ v*/ /var/www/html/pulse

Открываем на редактирование конфигурационный файл Pulse:

vi /var/www/html/pulse/config.js

Задаем адрес, на котором слушает сервер:

const address_ws = 'ws://192.168.1.10:8002';

* в данном примере IP 192.168.1.10 и порт 8002.

Открываем браузер и переходим по адресу http://<IP-адрес сервера>/pulse/ — должна открыться страница входа в Pulse.

Вводим логин root и пароль 123 (по умолчанию; задаются в настройках Vega Server — файле /opt/iot-vega-server/settings.conf, опция password).

Настройка IotVegaNotifier

IOT Vega Notifier — программа для отправки оповещений по SIP. С ее помощью мы можем получить звонок или уведомление на телефон при возникновении тревожных событий.

Данный софт распространяется в виде контейнера docker и требует его установки в систему:

apt install docker.io

Разворачиваем приложение:

docker run -it -d --name iotveganotifier vegaabsolute/iotveganotifier:disco

Запускаем командную консоль внутри контейнера iotveganotifier:

docker exec -it iotveganotifier bash

Открываем на редактирование конфигурационный файл для IotVegaNotifier:

nano IotVegaNotifier/config.ini

Меняем настройки для подключения к серверу

[ws]
  #The address of the server WebSocket IotVega
address=ws://192.168.1.10:8002
  #The user of the server WebSocket IotVega
user=root
  #The user password
password=123

* мы должны указать адрес сервера VEGA, а также логин и пароль для подключения к нему. В данном примере у нас сервер с адресом 192.168.1.10; логин и пароль root 123 — те, что заданы по умолчанию.

После задаем настройки для SIP:

[sip]
  #Enabled sip to take voice messages
  #boolean
enabled=true
  #The host of the SIP
host=sip.siplink.pro
  #The user of the SIP
user=1234567890
  #The user password
password=passw0rd

* в данных настройках мы включаем поддержку SIP (enabled); указываем сервер, предоставляющий услугу телефонии (host); задаем логин и пароль на подключение аккаунта (user и password).

Закрываем редактор и перезапускаем сервис оповещений:

pm2 restart 0

Выходим из оболочки контейнера docker, нажав Ctrl + D.

SSL шифрование для веб-трафика

Дополнительно рассмотрим процесс настройки https, чтобы веб-сервер nginx отдавал страницы по шифрованному каналу. Для этого нам нужно будет настроить как nginx, так и остальные компоненты VEGA.

NGINX

Для начала, нам нужен сертификат. Его можно купить или получить с помощью утилиты certbot от Let's Encrypt.

Предполагается, что наш сертификат расположен в файлах:

  • /etc/nginx/ssl/cert.crt — открытый ключ + цепочка сертификатов для CA.
  • /etc/nginx/ssl/cert.key — закрытый.

Тогда настройка будет следующей:

vi /etc/nginx/sites-enabled/default

Редактируем строку listen:

server {
        listen 443 ssl default_server;
        ...

Добавим директивы ssl_certificate и ssl_certificate_key:

server {
        ...
        ssl_certificate     /etc/nginx/ssl/cert.crt;
        ssl_certificate_key /etc/nginx/ssl/cert.key;
        ...

Также добавим новый раздел server для редиректа запросов с 80 на 443 порт:

server {
    listen 80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
}

Перечитываем конфигурацию nginx:

nginx -t && nginx -s reload

Vega Server

Открываем конфигурационный файл:

vi /opt/iot-vega-server/settings.conf

Редактируем строки:

useSSL=1
...
certFileName=/etc/nginx/ssl/cert.crt
...
keyFileName=/etc/nginx/ssl/cert.key

Перезапускаем iot-vega-server:

systemctl restart iot-vega-server

Admin и Pulse

Открываем файл:

vi /var/www/html/admin/config.js

Меняем:

const address_ws = 'ws://...

на:

const address_ws = 'wss://

То же самое делаем для файла:

vi /var/www/html/pulse/config.js

Проверка

Теперь наши порталы должны отвечать по https. Однако, некоторые браузеры кешируют запросы настолько, что мы увидим ошибку подключения к серверу.

В этом случае рекомендуется для проверки использовать другой браузер или почистить кеш текущему.

Обновление

Рассмотрим процесс обновления сервера и компонентов. Сначала создадим каталог, в котором будут резервные копии:

mkdir /backup

IOT VEGA Server

При выходе новой версии сервера, можно обновить приложение стандартной установкой, в ходе которой будут внесены изменения в саму серверную часть и базу данных.

Перед обновлением необходимо сделать резервную копию базы данных и конфигурационного файла.

Создадим каталог для хранения архивов сервера:

mkdir /backup/server

а) В нашем примере мы используем базу MariaDB — соответственно, делаем дамп mysql:

mysqldump -v -uroot -p lorawan_server > /backup/server/mysqldump.lorawan_server.sql

б) Если же мы используем встроенную базу, просто копируем файл server.db:

cp /opt/iot-vega-server/server.db /backup/server/server.db

После резервирования базы данных, копируем конфигурационный файл:

cp /opt/iot-vega-server/settings.conf /backup/server/

Теперь можно загружать новую версию сервера:

curl -sLO "https://iotvega.com/content/ru/soft/server/IOT%20Vega%20Server%20(linux)%20v1.2.1.tar.gz"

Распаковываем архив:

tar -xvf IOT\ Vega\ Server\ \(linux\)\ v*.tar.gz

Переходим в каталог с установочным пакетом:

cd IOT\ Vega\ Server\ \(linux\)\ v1.2.1/x64/

* в моем примере используется 64-х битная система. Посмотреть версию используемой системы можно командой uname -i

Выполняем обновление:

dpkg -i iot-vega-server-1.2.1.deb

* обратите внимание, что процесс обновления не отличается от установки — система сама определит, что IOT VEGA Server установлен и обновит его.

IOT Vega Pulse

Копируем каталог с текущей версией в папку backup:

cp -r /var/www/html/pulse /backup/pulse.1.1.10

* где 1.1.10 — версия pulse, которая у нас используется в данный момент.

Скачиваем новую версию Vega Pulse:

curl -sLO https://iotvega.com/content/ru/soft/app/IOT%20Vega%20Pulse%20V1.1.11_ru.zip

* на момент обновления инструкции последняя версия была 1.1.11.

Распаковываем скачанный архив:

unzip IOT\ Vega\ Pulse\ V1.1.11_ru.zip

Удаляем папку pulse с текущей версией программы:

rm -rf /var/www/html/pulse

Переносим портал в каталог веб-сервера:

mv IOT\ Vega\ Pulse\ V1.1.11_ru/Pulse /var/www/html/pulse

Возвращаем из резервной копии конфигурационный файл Pulse:

cp /backup/pulse.1.1.10/config.js /var/www/html/pulse/

Admin Tool

Процесс обновления Admin Tool схож с Pulse. Рассмотрим его по шагам.

Копируем каталог с текущей версией в папку backup:

cp -r /var/www/html/admin /backup/admin.1.1.4

* где 1.1.4 — версия admin tool, которая у нас используется в данный момент.

Скачиваем новую версию:

curl -sLO "https://iotvega.com/content/ru/soft/server/IOT%20Vega%20Admin%20Tool%20V1.1.5_ru.zip"

* на момент обновления инструкции последняя версия была 1.1.5.

Распаковываем скачанный архив:

unzip IOT\ Vega\ Admin\ Tool\ V1.1.5_ru.zip

Удаляем папку admin с текущей версией программы:

rm -rf /var/www/html/admin

Переносим портал в каталог веб-сервера:

mv IOT\ Vega\ Admin\ Tool\ V1.1.5_ru/Admin\ Tool /var/www/html/admin

Возвращаем из резервной копии конфигурационный файл Pulse:

cp /backup/admin.1.1.4/config.js /var/www/html/admin/

Дополнительно

Разберем некоторые дополнительные настройки.

Смена пароля root

Это одна из первых вещей, которые нужно сделать. По умолчанию, логин с паролем root / 123 — это не безопасно и каждый сможет управлять сервером.

Открываем конфигурационный файл Vega Server:

vi /opt/iot-vega-server/settings.conf

Редактируем пароль пользователя root:

[root]
        # Login for super user
root=root
        # Password for super user (recommendation: change this password to your own)
password=newpassword

* где нужно поменять значение параметра password.

Перезапускать сервер не нужно. Заходим в Admin Tool и Pulse — проверяем, что теперь система пускает под новым паролем.

Вход на веб из вне

Необходимо, чтобы клиент (браузер) мог напрямую подключиться к серверу по порту tcp 8002. Для этого в конфигурационном файле Pulse или Admin Tool нужно задать параметр address_ws с использованием внешнего адреса, например:

const address_ws = 'ws://90.156.242.197:8002';

* в данном примере 90.156.242.197 — это мой внешний адрес. Вам необходимо задать свой.

Если сервер подключен к сети Интернет не напрямую, а через шлюз, необходимо пробросить порты 8001/UDP и 8002/TCP.

# Ubuntu # Серверы
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет

Дмитрий Моск
— IT-специалист.
Настройка серверов, услуги DevOps.

Нужна бесплатная консультация?

Мини-инструкции

Установка панели управления ISPmanager на Ubuntu или CentOS

Установка и настройка своего локального репозитория CentOS

Установка и настройка сервера Redmine + Apache + passenger

Инструкция по настройке сервера IOT VEGA с веб-интерфейсом под Ubuntu

Настройка сервера мониторинга Zabbix на Ubuntu

Отправка почты от Postfix через почтовый сервер Яндекса

Установка и настройка SAMS для управления Squid на CentOS 7

Другие инструкции

Все статьи

Нужна помощь? Пишите:






Реклама