Система спутникового мониторинга "Gelios" предназначена для удаленного контроля автотранспорта, спецтехники, а также любых подвижных и неподвижных объектов.
Функционал системы позволяет:
Установка системы Gelios
Gelios состоит из нескольких компонентов расположенных в нескольких контейнерах (lxc или systemd-nspawn).
Для размещения компонетов системы необходимо подготовить сервер отвечающий системным требованиям к вашей конфигурации Gelios
На сервере должна быть установлена поддерживаемая операционная система Debian 10,11 или Ubuntu18,20 без постороннего программного обеспечения. На сервер необходимо установить следующие пакеты:
Необходимые пакеты: bridge-utils iptables openssh-server systemd-container
Подготовка сети
Для начала нужно создать и настроить сетевой интерфейс через который контейнеры системы будут взаимодействовать с внешним миром и друг с другом.
Создаем файл /etc/network/interfaces.d/br0 со следующим содержимым:
auto br0
iface br0 inet static
address 10.0.3.1/24
bridge-ports none
bridge-stp off
bridge-fd 0
up iptables -t nat -A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
up /bin/echo 1 > /proc/sys/net/ipv4/ip_forward
down iptables -t nat -D POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
Активируем интерфейс br0 коммандой
ifup br0
В случае успеха в выводе команды
ip a
Появиться интерфейс под именем br0 и ip адресом 10.0.3.1
Установка
Предварительно перед устновкой необходимо создать каталог /gelios-data или другой для размещения файлов базы данных, файлов журналов и других файлов размещяемых вне контейнеров. Каталог должен располагаться на дисковом разделе достаточном для хранения необходимого обьета данных (см. требования к системе).
Внимание при изменении стандартного каталога для хранения необходимо исправить пути в параметре BIND находящихся в конфигурационных файлах контейнеров в каталоге /etc/systemd/nspawn
Распаковать архив с конфигурационными файлами nspawn.tar в каталог /etc/systemd/nspawn-
Импортировать образы контейнеров в вашу систему:
machinectl import-raw database.raw.gz
machinectl import-raw mongodb.raw.gz
machinectl import-raw rabbitmq.raw.gz
machinectl import-raw services.raw.gz
machinectl import-raw web.raw.gz
и добавить их в автозагрузку:
machinectl enable database
machinectl enable mongodb
machinectl enable rabbitmq
machinectl enable services
machinectl enable web
после чего запустить их в следующем порядке:
machinectl start database
machinectl start mongodb
machinectl start rabbitmq
machinectl start services
machinectl start web
Проверить запущен ли контейнер, а также его статус можно при помощи комманд, к примеру:
systemctl status systemd-nspawn@database.service
или
machinectl status database
После запуска всех контейнеров на внешнем интерфейсе сервера должны быть открыты порты
80,81,443 для веб приложений
20101-20300 для коммуникационного сервиса (обеспечивающего прием данных)
Адресация в сети
Всем контейнерам при запуске назначаеться статичный ip адрес.
database 10.0.3.5
mongodb 10.0.3.6
rabbitmq 10.0.3.4
services 10.0.3.8
web 10.0.3.7
Дополнительно
Важно. Перед первым полноценным рабочим запуском необходимо в контейнере database перенести каталог с файлами базы данных в каталог размешенный вне контейнера в /data после чего создать на старом месте символическкую ссылку на его новое месторасположение. Это необходимо сделать поскольку внутри контейнера недостаточно дискового пространства для размещения там базы данных, которая в процессе работы может разрастаться до десяткой и сотен гигабайт. Перед операцией по переносу нужно остановить работающий сервис БД.
Для оптимизации скорости работы необходимо сконфигурировать ядро СУБД Postgresql для оборудования вашего сервера. Например воспользовавшись утилитой PGTune или аналогичной. Конфигурационные файлы располагаються в файловой системе контейнера database в каталоге /etc/postgresql/11/main/conf.d/
Информация по работе с Gelios
Информация по работе с Gelios
Gelios – серверное решение системы мониторинга транспорта Gelios. Локальное решение для мониторинга объектов, имеющее функционал системы, для размещения на серверах заказчика.
Система состоит из веб-приложения (Пользовательской и Административной части), а также набора фоновых служб отвечающих за обработку всех проходящих через систему данных.
Панель администратора предназначена для: управления учетными записями, создания объектов мониторинга, создания и редактирования датчиков и прочих административных функциях. Панель доступна пользователям у которых включен режим "администратора". Чтобы войти в систему необходимо ввести логин и пароль от учетной записи. Панель администратора размещается на отдельном доменном имени, как, например, [admin.geliospro.net](http://admin.geliospro.net).
Пользовательская часть предназначена для непосредственного взаимодействия конечного пользователя (оператора) с системой. Она позволяет: осуществлять наблюдение за текущим положением и состоянием объектов, воссоздавать маршрут движения объекта за определенный интервал времени в виде трека на карте, формировать отчёты по заранее заданным параметрам, создавать и редактировать уведомления и т.д.. Пользовательская часть расположена на отдельном доменном имени, как например [geliospro.net](http://geliospro.net).
Компоненты системы Gelios
Gelios состоит из нескольких компонентов расположенных в одном или нескольких контейнерах (lxc или systemd-nspawn).
database - контейнер, содержащий в себе СУБД PostgreSQL в виде основного хранилища данных системы. Контейнер должен запускаться в первую очередь, до старта фоновых служб Gelios и веб-интерфейса.
rabbitmq - контейнер, содержащий брокер обмена сообщениями RabbitMQ. Контейнер должен запускаться до старта остальных служб.
mongodb - контейнер, содержащий временное хранилище для данных ранее построенных отчетов.
services - контейнер, содержащий основные системные службы Gelios.
web - контейнер, содержащий веб-приложения Пользовательской и Административной части.
Системные службы
Контейнер services содержит основные системные службы Gelios выполняющие всю фоновую работу и обеспечивающие получение данных от навигационных устройств, а также отправку уведомлений и построение отчетов по накопленным данным. Данные службы нуждаются в постоянном контроле.
Файлы основных служб располагаются в каталоге /var/lib/gelios/
Журналы основных служб располагаются в каталоге /var/lib/gelios/common/logs/
gelios_hw - осуществляет прием и разбор входящих данных от навигационных устройств/ретрансляций.
gelios_address - осуществляет преобразование географических координат в адреса (обратное геокодирование) по запросам, поступающим от разных служб и модулей системы. Полученный адрес, после преобразования, используется в системе где необходимо отображение адресной информации
gelios_alarm - осуществляет обработку информации по специализированному датчику с логикой "Тревожная кнопка", а также отвечает за работу модуля "Тревоги" в пользовательской части интерфейса системы.
gelios_counters - осуществляет обработку данных, полученных от навигационных устройств, и отвечает за работу сущности системы "Счетчики". Данная сущность отвечает за подсчет пробега и моточасов созданного объекта.
gelios_launcher - осуществляет запуск перерасчета информации, для модуля "Техобслуживания", по событиям совершенным пользователем системы.
gelios_notif - осуществляет контроль и работу модуля "Уведомления", а также отвечает для отправку сгенерированных уведомлений пользователю системы на основе выставленных настроек.
gelios_push - является расширением для службы gelios_notif и осуществляет отправку Push-уведомлений на мобильные устройства. Данная служба не является обязательной и может быть деактивирована для экономии системных ресурсов сервера.
gelios_repeaters - осуществляет работу модуля "Ретрансляция". Данная служба не является обязательной и может быть деактивирована для экономии системных ресурсов сервера.
gelios_report - осуществляет работу и контроль модуля "Отчеты".
gelios_tasks - является расширением для службы gelios_report и осуществляет автоматическую генерацию/отправку отчетов на E-mail/FTP по заданным пользователем параметрам.
gelios_worktime - осуществляет контроль и работу функции системы "Шкала рабочего времени". Данная служба не является обязательной и может быть деактивирована для экономии системных ресурсов сервера.
gelios_schedules - осуществляет плановый запуск системных и серверных заданий по расписанию. Например: очистка или оптимизация Базы Данных.
Управление службами
Управление службами осуществляеться при помощи утилиты supervisorctl непосредственно из консоли контейнера services. Как правило при штатной работе вмешательства не требуется.
Базы данных Gelios
Основным хранилищем информации, в системе Gelios, является СУБД PostgreSQL. Данная СУБД обеспечивает хранение информации о пользователях и их объектов, системные настройки, а также телематической информации от устройств.
При работе система использует несколько отдельных баз данных разделенных по отдельным ролям.
gelios_db - хранилище информации о пользователях, объектах, уведомлениях, геозонах, настройках системы и данных необходимых для функционирования системы.
gelios_gis - хранилище данных для работы службы разрешения адресов gelios_address.
gelios_online - хранилище накапливающее принятые данные от устройств, обычно не старше 5 мин с момента получения.
gelios_msgs - долговременное хранилище телематических (исторических) данных.
Также в системе присутствует СУБД MongoDB используемая для временного хранения данных выполненных отчетов.
Резервное копирование
Для обеспечения сохранности данных локальной версии системы Gelios (например: на случай выхода оборудования из строя), необходимо регулярно выполнять операции по резервному копированию данных.
Рекомендуется делать резервные копии следующих объектов:
Системная база данных (gelios_db): ежедневно.
Телематическая база данных (gelios_msgs): на усмотрение клиента (БД, как правило, очень крупная).
Файлы контейнеров Gelios: при изменениях или обновлениях (как правильно изменяются достаточно редко).
Внимание! Для выполнения резервного копирования контейнеров необходима остановка работы самого контейнера.
Выполнять резервное копирование баз данных можно стандартными инструментами для снятия бэкапов баз данных PostgreSQL.
Внешние сервисы
Для собственного функционирования система использует некоторые внешние ресурсы, к которым она должна иметь постоянный доступ:
Сервис лицензирования: license.geliospro.ru:30000 (обязательно)
Сервис карт: https://tiles.geliospro.com (опционально)
Сервис преобразования адресов: https://nominatim.geliospro.net (обязательно)
Сервис построения маршрутов: https://gis.geliospro.net (опционально)
Данные, полученные от сервисов карт и адресов, кэшируются локально на 7-30 дней и в этот период повторно не запрашиваются.
Список сетевых портов используемых системой
Для доступа извне система использует следующие порты (входящие):
80, 443 для работы веб-сервера (81 опционально)
20100-20300 для приема данных от устройств (по одному порту на каждый из поддерживаемых протоколов)