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


VEGA Server — программное обеспечение для приема данных из различных устройств. Например, вместе с Pulse его можно использовать для получения и отображения показаний водосчетчиков, электросчетчиков, счетчиков газа с импульсными выходами.
Дистрибутив сервера распространяется как deb-пакет, поэтому установка будет выполняться на Linux Ubuntu. Инструкция также будет работать для Debian.
Настройка VEGA Server
Использование MariaDB / MySQL
Установка MariaDB
Создание базы и пользователя
Настройка библиотек IOT VEGA для работы с mysql
Настройка VEGA Server для работы с mysql
Использование Admin Tool
Установка веб-сервера
Установка Admin Tool
Использование Pulse
Настройка IotVegaNotifier
Обновление
IOT VEGA Server
IOT Vega Pulse
Admin Tool
Дополнительные настройки
Смена пароля root
Вход на веб из вне
Установка и запуск VEGA Server
Переходим на страницу iotvega.com/product/server и копируем ссылку на IOT Vega Server для Linux:
Скачиваем архив на сервере:
wget "https://iotvega.com/content/ru/soft/server/IOT%20Vega%20Server%20(linux)%20v1.2.1.tar.gz"
* так как в пути есть спецсимволы, необходимо адрес вставить в кавычки. В данном примере скачивается версия 1.2.1.
Распаковываем архив:
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
Открываем на редактирование файл конфигурации:
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: Table queuetransmit is cleaned
INFO: Table "bufMacDevParams" is cleared
WebSocketServer has opened. Port[8002]
UDP socket has opened. IP[192.168.1.10:8001]
DEBUG: UdpServer handler is started
INFO: DB-secure scaner started...
DEBUG [CDevicesCountInfo]: vega[0], totalNonVega[1000], usedNonVega[0]
INFO: DB-secure scaner successfully finished
Оставим консоль и подключимся новой (еще одной). В списке прослушиваемых портов должны появиться 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))
Для автозапуска сервиса меняем права скрипту в init.d:
chmod +x /etc/init.d/iot-vega-server
chown root:root /etc/init.d/iot-vega-server
Разрешаем автозапуск сервиса и стартуем его:
systemctl enable iot-vega-server --now
Для проверки работы, можно перезагрузить сервер и после загрузки проверить состояние службы:
systemctl status iot-vega-server
Хранение данных в MariaDB / MySQL
По умолчанию, данные хранятся в своей внутренней базе. Для работы с другой СУБД выполняем ряд действий, описанных ниже.
Установка 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
Для проверки работы сервера открываем браузер и переходим на страницу http://<IP-адрес сервера>/ — должна откыться страница приветствия NGINX:
Admin Tool
Заходим на тот же сайт iotvega.com/product/server и копируем ссылку на портал управления:
С помощью данной ссылки скачиваем архив на сервер:
wget "https://iotvega.com/content/ru/soft/server/IOT%20Vega%20Admin%20Tool%20V1.1.4_ru.zip"
* так как в пути есть спецсимволы, необходимо адрес вставить в кавычки. В данном примере скачивается версия 1.1.4.
Устанавливаем unzip для распаковки архива:
apt install unzip
Распаковываем архив:
unzip IOT\ Vega\ Admin\ Tool\ V*.zip
Переносим каталог с порталом к домашнюю директорию веб-сервера:
mv IOT\ Vega\ Admin\ Tool\ V1.1.4_ru/Admin\ Tool /var/www/html/admin
Открываем настройки административной консоли:
vi /var/www/html/admin/config.js
Задаем адрес, на котором слушает сервер:
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:
С помощью данной ссылки скачиваем архив на сервер:
wget https://iotvega.com/content/ru/soft/app/IOT%20Vega%20Pulse%20V1.1.9_ru.zip
Распаковываем скачанный архив:
unzip IOT\ Vega\ Pulse\ V1.1.9_ru.zip
* у нас должен быть установлен пакет unzip.
Переносим портал в каталог веб-сервера:
mv IOT\ Vega\ Pulse\ V1.1.9_ru/Pulse /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.
Обновление
Рассмотрим процесс обновления сервера и компонентов. Сначала создадим каталог, в котором будут резервные копии:
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/
Теперь можно загружать новую версию сервера:
wget "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:
wget https://iotvega.com/content/ru/soft/app/IOT%20Vega%20Pulse%20V1.1.11_ru.zip
* на момент обновления инструкции последняя версия была 1.1.11.
Если мы получим ошибку сертификата ERROR: cannot verify iotvega.com's certificate, загружаем архив с добавлением опции --no-check-certificate:
wget --no-check-certificate https://iotvega.com/content/ru/soft/app/IOT%20Vega%20Pulse%20V1.1.11_ru.zip
Распаковываем скачанный архив:
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, которая у нас используется в данный момент.
Скачиваем новую версию:
wget "https://iotvega.com/content/ru/soft/server/IOT%20Vega%20Admin%20Tool%20V1.1.5_ru.zip"
* на момент обновления инструкции последняя версия была 1.1.5.
Если мы получим ошибку сертификата ERROR: cannot verify iotvega.com's certificate, загружаем архив с добавлением опции --no-check-certificate:
wget --no-check-certificate "https://iotvega.com/content/ru/soft/server/IOT%20Vega%20Admin%20Tool%20V1.1.5_ru.zip"
Распаковываем скачанный архив:
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.