Pull to refresh

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

Reading time5 min
Views9.4K

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,
Головатенко Андрей
Tags:
Hubs:
0
Comments8

Articles

Change theme settings