Сетевой сервер LoRa
Выберите вкладку в соответствии с используемым семейством ОС.
- Windows
- Debian/Ubuntu/AstraLinux
- Fedora/РЕД ОС
После установки сетевого сервера LoRa необходимо отредактировать следующие параметры в файле конфигурации(по умолчанию C:\ReVizor\NetworkServer\appsettings.production.json):
HostArray— массив содержащий строки вида «<host>:<port>», гдеhost— это IP-адрес,port— это номер порта для входящих UPD-соединений для базовых станцийMaxOfflineLatency— максимальное время нахождения базовых станций, по истечении которого, если от базовой станции не было никаких данных, последняя переходит в статус «офлайн»MaxContextDwellTime— максимальное время на обработку контекстаAllowJoinRequests— true, если необходимо обрабатывать входящие JOIN_REQ запросAllowDownlink— true, если необходимо включить обратную связь(между сервером и конечным устройствами)MinPreferredSnr— минимальное предпочитаемое значение SNR для выбора базовой станции из списка для отправки downlink-сообщенийAdrHistoryCount— количество анализируемых записей в истории для расчёта индекса мощности TX при использовании ADRAdrExtraMargin— дополнительное значение для расчёта требуемого SNR при использовании ADRMaxTxAckTime— максимальное время ожидания в секундах подтверждения downlink-пакетов, после чего они будут удалены из очередиClassCReactTime— время реакции для устройств класса CClassCJoinDelay— указывает, необходимо ли добавлять паузу для JOIN_DELAY_1 для устройств класса CGarbageCollectionPeriod— период сбора «мусора» в миллисекундахNwkID— идентификатор сети; каждая сеть(каждый сетевой сервер LoRa) должен иметь уникальный идентификатор сети
Во время установки приложения в папку /opt/dotnet/ будет установлены runtime-библиотеки .NET Core.
- Под пользователем
revizorперейдите в домашнюю директорию и запустите установку ранее подготовленного пакета приложения сервера:
sudo apt-get install ./revizor-network-server-linux-x64-*.deb
- После установки будут доступны следующие файлы и директории:
/etc/opt/revizor/network-server/appsettings.production.json— файл конфигурации сетевого сервера,/etc/systemd/system/revizor-network-server.service— файл systemd настроек службы сетевого сервера,/opt/revizor/network-server/— папка с установленным приложением службы сетевого сервера,/opt/revizor/network-server/logs/— папка с журналами работы службы сетевого сервера - При первоначальной установке приложения на сервере PostgreSQL необходимо создать базу данных
ReVizorNetworkServerDb, пользователяrevizor(пользователя в СУБД, а не в ОС) и предоставить пользователю права доступа к базе. Если база и пользователь уже имеются, то этот шаг можно пропустить**(если компонент сервера уже установлен на текущей машине, то можно использовать того же пользователяrevizor)**, однако нужно убедиться, что у пользователяrevizorесть права доступка к базеReVizorNetworkServerDb(либо выполнить коммандуGRANTниже). Для создания необходимо запустить консольpsqlи выполнить следующие команды
Необходимо соблюдать регистр имён пользователей и БД, а также кавычки и точка-запятые в конце запросов!
sudo -u postgres psql postgres
CREATE DATABASE "ReVizorNetworkServerDb";
CREATE USER "revizor" WITH ENCRYPTED PASSWORD '*' CREATEDB SUPERUSER;
— где * — это пароль пользователя revizor, который необходимо будет далее внести в файл конфигурации в поле Password секции DbConfig
GRANT ALL PRIVILEGES ON DATABASE "ReVizorNetworkServerDb" TO "revizor";
\q — для выхода из консоли psql
Для корректной работы службы необходимо изменить настроечные параметры в файле конфигурации /etc/opt/revizor/network-server/appsettings.production.json. В секции AppConfig:
SecurityKey— секретный симметричный ключ JWT(ключ обязательно нужно заменить на другой), который, например, можно сгенерировать командойopenssl rand -hex 32HostиPort— IP-адрес и порт для входящих TCP-подключений и веб-интерфейсаWebAppUri— ссылка на приложение для внешних источников(например, если имеется домен и через него требуется доступ из сети Интернет, например,https://example.com), либо ссылка видаhttp://{Host}:{Port}
В секции DbConfig:
Server — IP-адрес сервера PostgreSQL
Port — порт сервера PostgreSQL(по умолчанию 5432)
UserID и Password — имя пользователя и пароль для входа на сервер PostgreSQL созданные выше
В секции PacketForwarder:
HostArray— массив содержащий строки вида «<host>:<port>», гдеhost— это IP-адрес,port— это номер порта для входящих UPD-соединений для базовых станцийMaxOfflineLatency— максимальное время нахождения базовых станций, по истечении которого, если от базовой станции не было никаких данных, последняя переходит в статус «офлайн»MaxContextDwellTime— максимальное время на обработку контекстаAllowJoinRequests—true, если необходимо обрабатывать входящиеJOIN_REQзапросAllowDownlink—true, если необходимо включить обратную связь(между сервером и конечным устройствами)MinPreferredSnr— минимальное предпочитаемое значение SNR для выбора базовой станции из списка для отправки downlink-сообщенийAdrHistoryCount— количество анализируемых записей в истории для расчёта индекса мощности TX при использовании ADRAdrExtraMargin— дополнительное значение для расчёта требуемого SNR при использовании ADRMaxTxAckTime— максимальное время ожидания в секундах подтверждения downlink-пакетов, после чего они будут удалены из очередиClassCReactTime— время реакции для устройств класса CClassCJoinDelay— указывает, необходимо ли добавлять паузу для JOIN_DELAY_1 для устройств класса CGarbageCollectionPeriod— период сбора «мусора» в миллисекундах NwkID — идентификатор сети; каждая сеть(каждый сетевой сервер LoRa) должен иметь уникальный идентификатор сети
Далее службу можно запустить средствами операционной системы командой:
sudo systemctl start revizor-network-server.service
СУБД
Для работы службы сервера необходимо установить СУБД PostgreSQL. Для установки следуйте инструкциям с официального сайта PostgreSQL. Для РЕД ОС можно воспользоваться инструкцией с сайта РЕД ОС Установка PostgreSQL.
Если ранее уже была установлена служба сервера ReVizor с СУБД, то данный шаг можно пропустить и перейти к созданию базы и пользователя ниже.
Перед первоначальной установкой службы сетевого сервера LoRa в установленной СУБД необходимо создать базу данных ReVizorNetworkServerDb, пользователя revizor и предоставить пользователю права доступа к базе. Если база и пользователь уже имеются, то этот шаг можно пропустить. Для создания необходимо запустить консоль psql и выполнить следующие команды:
- Переключитесь на пользователя
rootи введите пароль:
su -
- Переключитесь на пользователя
postgres
su - postgres
- Запустите
psqlи выполните следующие команды ниже. После ввода команд для выхода из консолиpsqlвведите\q.
CREATE DATABASE "ReVizorNetworkServerDb";
CREATE USER "revizor" WITH ENCRYPTED PASSWORD '*' CREATEDB SUPERUSER;
, где * — это пароль пользователя revizor, который необходимо будет далее внести в файл конфигурации в поле Password секции DbConfig
Если ранее уже была установлена служба сервера ReVizor с СУБД, то можно использовать существующего пользователя revizor.
GRANT ALL PRIVILEGES ON DATABASE "ReVizorNetworkServerDb" TO "revizor";
Установка и настройка
- Скопируйте пакет службы сетевого сервера LoRa на машину, где требуется установка, и запустите процесс командой(замените
*- на имеющуюся версию):
sudo dnf install ./revizor-network-server-*.x86_64.rpm
- После установки будут доступны следующие файлы и директории:
/etc/opt/revizor/network-server/appsettings.production.json— файл конфигурации сетевого сервера,/etc/systemd/system/revizor-network-server.service— файл systemd настроек службы сетевого сервера,/opt/revizor/network-server/— папка с установленным приложением службы сетевого сервера,/var/log/revizor/network-server/— папка с журналами работы службы сетевого сервера.
-
При первоначальной установке для корректной работы службы сетевого сервера LoRa необходимо изменить настроечные параметры в файле конфигурации
/etc/opt/revizor/network-server/appsettings.production.json.В секции
AppConfig:
SecurityKey— секретный симметричный ключ JWT(ключ обязательно нужно заменить на другой), который, например, можно сгенерировать командойopenssl rand -hex 32HostиPort— IP-адрес и порт для входящих TCP-подключений и веб-интерфейсаWebAppUri— ссылка на приложение для внешних источников(например, если имеется доменhttps://example.com, либо ссылка видаhttp://{Host}:{Port})
Ключ SecurityKey обязательно должен быть заменен, так как от него зависит безопасноть входа в систему! Рекомендуется использовать криптографически случайную последовательность байт. Ключ нужно хранить в тайне и только в файле конфигурации.
В секции DbConfig:
-
Server— IP-адрес сервера PostgreSQL -
Port— порт сервера PostgreSQL(по умолчанию 5432) -
UserIDиPassword— имя пользователя и пароль для входа на сервер PostgreSQL созданные вышеВ секции
PacketForwarder: -
HostArray— массив содержащий строки вида «<host>:<port>», гдеhost— это IP-адрес,port— это номер порта для входящих UPD-соединений для базовых станций -
MaxOfflineLatency— максимальное время нахождения базовых станций, по истечении которого, если от базовой станции не было никаких данных, последняя переходит в статус «офлайн» -
MaxContextDwellTime— максимальное время на обработку контекста -
AllowJoinRequests—true, если необходимо обрабатывать входящиеJOIN_REQзапрос -
AllowDownlink—true, если необходимо включить обратную связь(между сервером и конечным устройствами) -
MinPreferredSnr— минимальное предпочитаемое значение SNR для выбора базовой станции из списка для отправки downlink-сообщений -
AdrHistoryCount— количество анализируемых записей в истории для расчёта индекса мощности TX при использовании ADR -
AdrExtraMargin— дополнительное значение для расчёта требуемого SNR при использовании ADR -
MaxTxAckTime— максимальное время ожидания в секундах подтверждения downlink-пакетов, после чего они будут удалены из очереди -
ClassCReactTime— время реакции для устройств класса C -
ClassCJoinDelay— указывает, необходимо ли добавлять паузу для JOIN_DELAY_1 для устройств класса C -
GarbageCollectionPeriod— период сбора «мусора» в миллисекундах NwkID — идентификатор сети; каждая сеть(каждый сетевой сервер LoRa) должен иметь уникальный идентификатор сети
Далее службу можно запустить средствами операционной системы командой:
sudo systemctl start revizor-network-server.service
Запуск и остановка
Запуск службы:
sudo systemctl start revizor-network-server.service
Остановка службы:
sudo systemctl stop revizor-network-server.service