Настройка 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):

Туннелирование на 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
Доступ к UI WIS2 Downloader
Откройте веб-браузер и перейдите к UI вашего экземпляра WIS2 Downloader, используя адрес http://<WIS2DOWNLOADER_BASE_URL>:8080.
Вы окажетесь на главной странице, которая по умолчанию настроена на отображение вида Dashboard, показывающего панель Grafana.

В левом боковом меню вы сможете перейти ко всем различным разделам 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
Окончательный результат должен выглядеть следующим образом:

Теперь нажмите кнопку Subscribe и подтвердите вашу подписку.
После этого проверьте папку загрузки на вашей виртуальной машине студента, используя команду:
ls -R ~/wis2-downloads
Теперь вы должны увидеть серию файлов, загруженных вашим экземпляром.
На последнем шаге мы можем удалить подписку, перейдя в раздел Manage Subscriptions и нажав кнопку Unsubscribe.

Удаление загруженных файлов
Рекомендуется очищать папку загрузок после завершения упражнения, чтобы освободить место на виртуальной машине студента. Для этого выполните следующую команду, чтобы удалить файлы предыдущего упражнения.
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
- просматривать загруженные данные на локальной системе