[Интернет вещей] Цикл статей об установке и эксплуатации сервера LoRaWAN Chirpstack

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
29-Июл-2020 13:30

1. Введение
Данный цикл статей будет посвящён развёртыванию и эксплуатации открытого программного обеспечения: сервера сетей LoRaWAN Chirpstack. Данное программное обеспечение было создано одним из энтузиастов из Нидерладнов Orne Brocaar’ом, и может использоваться для построения своих собственных сетей LoRaWAN, компоненты системы лицензированы MIT лицензией и могут быть использованы для коммерческой эксплуатации.
Общаясь с заказчиками и потребителями производимых нами устройств LoRaWAN, неоднократно слышал просьбы о помощи в развёртывании собственных сетей на базе данного сервера, это навело меня на мысль о том, что необходимо обобщённое руководство по развёртыванию и эксплуатации сервера, которое мог бы прочитать и по шагам, собственноручно, установить любой желающий. В этой связи и родился данный цикл статей. Что мы будем обсуждать? Начнем с самого главного, с установки всех компонентов сервера. Далее будут статьи об эксплуатации сервера, об интеграции с внешними платформами, о использовании таких новых технологий сетей LoRaWAN как Multicast и FUOTA. И так, начнем… часть первая.
2. С чем будем работать
В первую очередь опишем то, на чем мы будем тестировать и развёртывать сервер LoRaWAN
Аппаратное обеспечение:
  • Шлюз LoRaWAN: DoMINO Indoor v.1.0 (можно использовать другой например Вега БС xx)
  • Счетчик импульсов DoMINO PULSE v.4.3+

Программное обеспечение:
  • Облачный сервер с Ubuntu 18.04

3. Описание сервера Chirpstack
Структура сервера сети LoRaWAN представлена на рисунке 1.

Рис.1
Главными составляющими сервера являются:
Gateway Bridge — некоторый мост между программой Packet Forwarder установленной на базовой станции (шлюзе) и непосредственно структурой сервера LoRaWAN;
Network Server — сетевой сервер, обрабатывающий сообщения сетевого уровня;
Application Server — сервер приложения обеспечивающий работу сети на пользовательском уровне, осуществляет интеграцию с внешними платформами.
Вспомогательные составляющие:
MQTT Broker Mosquitto — для внутреннего обмена сообщениями между составляющими сервера;
Redis - промежуточная база данных для хранения скоротечных данных;
PostgreSQL — база данных для постоянного хранения данных.
Все ПО является программным обеспечением с открытым исходным кодом.
4. Установка сервера
Сервер устанавливается на ОС Ubuntu 18.04 или Debian. Мы будем описывать установку с использованием облачного сервера на Ubuntu 18.04. Соединение с сервером производится по SSH с помощью клиента Putty. Примечание: Предполагается что наш читатель имеет представление о работе с Ubuntu, SSH, Putty, имеет установленную и настроенную ОС.
4.1 Установка и настройка вспомогательного ПО
Для начала работы нам потребуется установка вспомогательных пакетов. Для этого введите в консоли команду:
sudo apt install mosquitto mosquitto-clients redis-server redis-tools postgresql

и дождитесь окончания установки.
Далее необходимо настроить базу данных PostgreSQL, и добавить к ней пользователей.
Переходим в режим управления базой данных:
sudo -u postgres psql

Появится промпт управления базой данных postgres=#
Создаём пользователей со своими паролями (эти данные необходимо запомнить, вы можете давать другие логины и пароли но обязательно запомните их, они потребуются далее для конфигурирования сетевого сервера и сервера приложений).
Создаём пользователя для сетевого сервера:
create role chirpstack_ns with login password 'dbpassword';

Создаём пользователя для сервера приложений:
create role chirpstack_as with login password 'dbpassword';

Создаем базу данных для сетевого сервера:
create database chirpstack_ns with owner chirpstack_ns;

Создаем базу данных для сервера приложений:
create database chirpstack_as with owner chirpstack_as;

Дополнительные настройки
Подключаемся к базе данных:
\c chirpstack_as

Создаем расширение:
create extension pg_trgm;

Создаем расширение:
create extension hstore;

Выходим из редактирования параметров базы данных:
\q

4.2 Установка репозитория Chirpstack
Необходимо чтобы были установлены следующие компоненты: dirmngr и apt-transport-https, если нет выполните команду:
sudo apt install apt-transport-https dirmngr

Установите ключ для нового репозитория:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1CE2AFD36DBCCA00

Добавляем репозиторий в список:
sudo echo "deb https://artifacts.chirpstack.io/packages/3.x/deb stable main" | sudo tee /etc/apt/sources.list.d/chirpstack.list

Обновим кэш apt:
sudo apt update

На этом предварительная настройка закончена.
4.3 Установка Gateway Bridge
Устанавливаем пакет:
sudo apt install chirpstack-gateway-bridge

Запускаем Gateway Bridge:
sudo systemctl start chirpstack-gateway-bridge

Ставим приложение Gateway Bridge в автозагрузку:
sudo systemctl enable chirpstack-gateway-bridge

Для проверки правильности запуска и установки можно проверить журнал работы с помощью команды:
sudo journalctl -f -n 100 -u chirpstack-gateway-bridge

Выход из журнала Ctrl+Z.
Никаких ошибок в журнале быть не должно.
4.4 Установка и настройка сетевого сервера (Network Server)
Устанавливаем пакет:
sudo apt install chirpstack-network-server

Для правильной работы сервера нам потребуется его настройка, файлом конфигурации является файл:
/etc/chirpstack-network-server/chirpstack-network-server.toml

Перед использованием сетевого сервера его необходимо отредактировать под наши задачи, для этого входим в папку с файлом:
/etc/chirpstack-network-server/

И в этой папке выполнить команду создания нового конфигурационного файла
chirpstack-network-server configfile > chirpstack-network-server.toml

Приступаем к внесению изменений в файл конфигурации.
Открываем файл для редактирования в удобном редакторе (nano, vim).
Подробно по углублённому пункту настроек сетевого сервера мы будем обсуждать в следующих частях цикла, сейчас же произведём только базовые настройки, для обеспечения основой функциональности.
Настраиваем подключение сетевого сервера к базе данных:
dsn="postgres://chirpstack_ns:dbpassword@localhost/chirpstack_ns?sslmode=disable"

Вот тут как раз нам и понадобятся имя базы данных логин и пароль из предыдущего пункта!
Так же редактируем параметр частотного плана:
name="RU864"

Сохраняем файл конфигурации, выходим в консоль терминала.
Запускаем сетевой сервер:
sudo systemctl start chirpstack-network-server

Ставим сетевой сервер в автозагрузку:
sudo systemctl enable chirpstack-network-server

Проверяем журнал работы сетевого сервера, ошибок быть не должно:
sudo journalctl -f -n 100 -u chirpstack-network-server

Сервер настроен и запущен.
4.5 Установка и настройка сервера приложений (Application Server)
Устанавливаем пакет:
sudo apt install chirpstack-application-server

По аналогии с сетевым сервером настраиваем файл конфигурации сервера приложений.
Перходим в папку с настройками:
/etc/chirpstack-application-server/

Обновляем файл конфигурации:
chirpstack-application-server configfile > chirpstack-application-server.toml

Здесь нам придётся так же отредактировать подключение к базе данных и очень важный момент нужно создать секретный ключ jwt_secret, для этого выполним команду:
openssl rand -base64 32

и запишем полученный ключ.
Открываем конфигурационный файл для редактирования и меняем строки подключения к базе данных на свои:
dsn="postgres://chirpstack_as:dbpassword@localhost/chirpstack_as?sslmode=disable"

Устанавливаем скопированный секретный ключ:
jwt_secret=”UwX3TeStLtm/7tkW7hsqfbpcvo5k+BOEh/l8uDHCcKU=”

Сохраняем файл конфигурации. Выходим в консоль терминала.
Запускаем сервер приложений:
sudo systemctl start chirpstack-application-server

Устанавливаем сервер приложений в автозагрузку:
sudo systemctl enable chirpstack-application-server

Проверяем работу сервера приложений:
sudo journalctl -f -n 100 -u chirpstack-application-server

Ошибок быть не должно.
Поздравляем, сервер LoRaWAN Chirpstack установлен и готов к использованию!
В следующей части данного цикла статей, я подробно расскажу о работе с Web-интерфейсом сервера LoRaWAN Chirpstack.
С уважением,
Руководитель DoMINO GROUP,
Головатенко Андрей

===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_internet_veschej (Интернет вещей), #_lorawan, #_brocaar, #_chirpstack, #_internet_veschej (
Интернет вещей
)
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 23-Ноя 05:30
Часовой пояс: UTC + 5