Перейти к содержанию

Настройка WIS2 Downloader на виртуальной машине студента

Результаты обучения!

По окончании практического занятия вы сможете:

  • настроить собственный экземпляр "WIS2 Downloader" и управлять необходимыми конфигурациями
  • работать с экземпляром и настраивать подписки
  • удалять подписки и находить загруженные данные

Введение

На этом занятии вы научитесь настраивать экземпляр WIS2 Downloader на предоставленной виртуальной машине студента и работать с его различными сервисами.

О WIS2 Downloader

WIS2 Downloader доступен как отдельный проект Docker Compose. Рекомендуется запускать его на отдельном сервере или виртуальной машине, отдельно от экземпляра wis2box, чтобы загрузки не мешали публикации сообщений.

Если вы хотите разработать собственный сервис для подписки на уведомления WIS2 и загрузки данных, вы можете использовать исходный код WIS2 Downloader в качестве примера.

Для более легкой альтернативы, предлагающей возможности как публикации, так и загрузки сообщений WIS2, ознакомьтесь с проектом pywis-pubsub.

Подготовка и требования

Если в ограниченной сети

Следующие шаги необходимо выполнить только в том случае, если загрузчик запускается в другой сети, и указанные порты недоступны. В любой конфигурации это единственные порты, необходимые для использования всех возможностей стека WIS2 Downloader.

Перед началом работы войдите в свою виртуальную машину студента, убедившись, что вы настроили туннелирование через SSH для следующих портов:

  • 5002 (API)
  • 8080 (UI)
  • 3000 (Grafana)

Для этого вы можете изменить настройки подключения в Putty, добавив сопоставление 3 портов с портами на вашем компьютере (localhost):

adding tunnels in putty

Туннелирование на Linux и macOS

На Linux и macOS вы можете настроить те же туннели непосредственно из терминала, используя флаг -L в вашей SSH-команде:

ssh -L 5002:localhost:5002 -L 8080:localhost:8080 -L 3000:localhost:3000 <username>@<WIS2DOWNLOADER_BASE_URL>

Замените <username> и <WIS2DOWNLOADER_BASE_URL> на учетные данные вашей виртуальной машины студента.

Установка WIS2 Downloader

Скачайте последний tarball-релиз с GitHub и распакуйте его на своей виртуальной машине студента:

wget https://github.com/World-Meteorological-Organization/wis2downloader/archive/refs/tags/v1.0.0b1+rc4.tar.gz
tar -xzf v1.0.0b1+rc4.tar.gz
cd wis2downloader-*

Запустите скрипт настройки для создания файла конфигурации:

bash setup.sh

Используйте следующий путь загрузки /home/<username>/wis2-downloads, заменив <username> на ваше имя пользователя. Затем нажмите Enter, чтобы использовать значения по умолчанию для пользователя и групп.

Управление разрешениями пользователя

Вы можете использовать другие значения для пользователя и группы, изменив WIS2DWONLOADER_UID и WIS2DWONLOADER_GID в файле .env. Не забудьте пересобрать образы после внесения изменений в эти значения, чтобы они вступили в силу.

Это создаст файл .env с настройками по умолчанию и случайными значениями для FLASK_SECRET_KEY и REDIS_PASSWORD. Вы можете просмотреть файл с помощью команды cat .env — настройки по умолчанию подходят для развертывания на одной машине.

Запустите полный стек сервисов:

docker compose up -d

Проверка запущенных контейнеров

Вы можете проверить, что все контейнеры успешно запущены, с помощью команды:

docker compose ps
Вы должны увидеть сервисы для менеджера подписок, MQTT-подписчиков, UI, Celery-воркеров, Redis, Prometheus, Grafana и Loki.

Доступ к UI WIS2 Downloader

Откройте веб-браузер и перейдите к UI вашего экземпляра WIS2 Downloader, используя адрес http://<WIS2DOWNLOADER_BASE_URL>:8080.

Вы окажетесь на главной странице, которая по умолчанию настроена на отображение вида Dashboard, показывающего панель Grafana.

WIS2 Downloader Landing Page

В левом боковом меню вы сможете перейти ко всем различным разделам UI.

Основные доступные разделы:

  • Dashboard — главная страница по умолчанию, встроенная панель Grafana, показывающая активность загрузки, статус очереди и метрики работающего сервиса. Также доступна по адресу http://<WIS2DOWNLOADER_BASE_URL>:3000.
  • Catalogue View — просмотр доступных наборов данных WIS2 с помощью поиска или фильтрации глобального каталога. Выберите тему и директорию для сохранения, затем нажмите Subscribe, чтобы начать загрузку.
  • Tree View — навигация по иерархии тем WIS2 в виде сворачиваемого дерева. Полезно для изучения доступных тем перед подпиской.
  • Manual Subscribe — создание подписки путем ввода деталей темы напрямую, без использования глобальных каталогов обнаружения. Полезно для более свободной подписки на темы с использованием любых необходимых подстановочных знаков, а также для доступа к темам, не найденным в GDC, таким как шлюзы GTS и темы, опубликованные на частных брокерах при использовании нестандартных конфигураций.
  • Manage Subscriptions — просмотр и управление всеми активными подписками. Здесь вы можете увидеть, какие темы отслеживаются, и удалить те, которые больше не нужны.
  • Settings — в настоящее время позволяет перезагрузить каталог наборов данных из глобальных каталогов обнаружения. Этот раздел будет расширен в будущих выпусках для охвата общей конфигурации и управления WIS2 Downloader.
  • Documentation — встроенная документация для WIS2 Downloader.

Управление подписками в UI

Как и в предыдущем примере, вы получите доступ к UI работающего экземпляра, перейдя по адресу http://<WIS2DOWNLOADER_BASE_URL>:8080.

Есть 3 способа настроить подписку:

  • В Catalogue View, просматривая доступные темы аналогично порталам GDC.
  • В Tree View, выбирая тему из каталога GDC, исследуя темы, как в MQTT Explorer.
  • В Manual Subscribe, где вы можете вручную ввести желаемые темы, фильтры и другие параметры.

Для следующего упражнения мы подпишемся на все уведомления synop, поступающие от всех узлов WIS2:

  • Сначала перейдите в Manual Subscribe.
  • Введите тему как cache/a/wis2/+/data/core/weather/surface-based-observations/synop
  • Установите папку назначения как synop-data

Окончательный результат должен выглядеть следующим образом: WIS2 Downloader Manual Subscribe

Теперь нажмите кнопку Subscribe и подтвердите вашу подписку.

После этого проверьте папку загрузки на вашей виртуальной машине студента, используя команду:

ls -R ~/wis2-downloads

Теперь вы должны увидеть серию файлов, загруженных вашим экземпляром.

На последнем шаге мы можем удалить подписку, перейдя в раздел Manage Subscriptions и нажав кнопку Unsubscribe.

WIS2 Downloader Delete Subscription

Удаление загруженных файлов

Рекомендуется очищать папку загрузок после завершения упражнения, чтобы освободить место на виртуальной машине студента. Для этого выполните следующую команду, чтобы удалить файлы предыдущего упражнения.

rm -fr ~/wis2-downloads/synop-data

Проверка конфигурации WIS2 Downloader

Экземпляр WIS2 Downloader настраивается с помощью переменных окружения, определенных в вашем файле .env.

Вы можете ознакомиться с разбором переменных окружения в разделе 2.1 Руководства администратора WIS2 Downloader

Чтобы проверить текущую конфигурацию WIS2 Downloader, используйте следующую команду:

cat .env

Проверка конфигурации WIS2 Downloader

Каков период хранения загруженных данных по умолчанию?

На каком порту API менеджера подписок слушает запросы?

Нажмите, чтобы увидеть ответ

Период хранения загруженных данных по умолчанию составляет 30 дней, как указано в DOWNLOAD_RETENTION_PERIOD.

API менеджера подписок слушает запросы на порту 5002, как указано в WIS2DOWNLOADER_SUBSCRIPTION_MANAGER_URL.

Обновление конфигурации WIS2 Downloader

Чтобы обновить конфигурацию, отредактируйте файл .env и перезапустите стек, чтобы изменения вступили в силу:

docker compose up -d

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

API WIS2 Downloader

WIS2 Downloader предоставляет REST API по адресу <WIS2DOWNLOADER_BASE_URL>:5002. Убедитесь, что сервис готов:

curl localhost:5002/health

Вы должны увидеть:

{"status": "healthy"}

Чтобы создать подписку, отправьте запрос POST с указанием MQTT topic и необязательной поддиректории target, где будут сохраняться файлы:

curl -s -X POST localhost:5002/subscriptions \
  -H "Content-Type: application/json" \
  -d '{"topic": "cache/a/wis2/+/data/core/weather/surface-based-observations/#", "target": "surface-obs"}'

Как и раньше, загруженные файлы можно просмотреть, проверив папку surface-obs в каталоге загрузок:

ls -R ~/wis2-downloads/surface-obs

Ответ включает UUID, назначенный новой подписке. Используйте его для удаления подписки, когда она больше не нужна:

curl -X DELETE localhost:5002/subscriptions/{id}

Удаление загруженных файлов

Рекомендуется очищать папку загрузок после завершения упражнения, чтобы освободить место на виртуальной машине студента. Для этого выполните следующую команду, чтобы удалить файлы предыдущего упражнения.

rm -fr ~/wis2-downloads/surface-obs

Для полного списка доступных конечных точек (список, получение, обновление подписок и другие), обратитесь к интерактивной документации Swagger, доступной по адресу localhost:5002/swagger.

Заключение

Поздравляем!

На этом практическом занятии вы научились:

  • устанавливать WIS2 Downloader на локальной системе и изменять настройки по умолчанию
  • взаимодействовать с UI для создания и удаления подписок
  • управлять подписками с помощью API
  • просматривать загруженные данные на локальной системе