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;Выходим из редактирования параметров базы данных:
\q4.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,
Головатенко Андрей
