Перейти к основному содержимому

Проба

Проба — это отдельное приложение, которое подключается к основному приложению Памир и выполняет «обогащение» на удалённых хостах

Технические требования

Для установки Пробы Памир на систему пользователя должен быть соблюден ряд технических требований.

Поддерживаемые операционные системы

Debian-based дистрибутивы с ядром Linux не ниже версии 4.19 и системой инициализации systemd:

  • Debian не ниже версии 10;
  • Ubuntu не ниже версии 20.04;
  • Astra Linux Special Edition не ниже версии 1.7.4.

В операционной системе должны быть установлены следующие компоненты:

  • Docker Engine не ниже версии 24.0;
  • zstandard не ниже версии 1.4.8 (в репозиториях APT пакет именуется zstd);
примечание

Инсталлятор включает в себя следующие дополнительные возможности:

  1. Миграция каталога хранения данных Docker на другой диск/точку монтирования. Требуется пакет jq.
  2. Инкрементное обновление приложения. Требуются пакеты jq и tar.
  3. Установка Docker Compose plugin и pamirctl в PATH. Требуются привилегии суперпользователя, например, средствами sudo.

Содержимое дистрибутива

Образы контейнеров

В ходе установки будут загружены следующие образы контейнеров:

  • RabbitMQ (брокер сообщений)

Порты сервисов

5672 — основной AMQP-порт, через который приложения подключаются к RabbitMQ для обмена сообщениями.

15672 — HTTP API и веб-интерфейс RabbitMQ Management Plugin (панель администрирования).

подсказка

Порты могут быть переопределены в файле конфигурации docker-compose.additional.yml.

Установка

Дистрибутив Пробы Памир реализован в виде образа формата ISO 9660.

Для установки Пробы Памир данный образ необходимо смонтировать любым доступным способом (через системные/сторонние приложения). В корне образа должны присутствовать 3 директории:

  • app/
  • deps/
  • install/

Инсталлятор расположен в директории install/, внутри которой расположен исполняемый файл install, производящий непосредственно установку из CLI (command line interface).

Для установки необходимо вызвать ./install install и следовать указаниям инсталлятора. Скрипт автоматически произведет все необходимые проверки и загрузит все требуемые образы в Docker, после чего запустит сервисы средствами Docker Compose plugin и pamirctl.

Порядок установки

1. Монтирование образа ISO

sudo mount -o loop ./pamir-probe-1.1-astra1.7.iso /media/cdrom

2. Запуск установочного исполняемого файла

cd /media/cdrom/install
./install install

Инсталлятор осуществляет проверку дистрибутива операционной системы, версию ОС, наличие требуемых установленных компонентов в ОС, а также, если будет установлен jq, уточнит, требуется ли мигрировать каталог с данными Docker Engine на другой диск.

В случае, если Проба Pamir уже установлена, инсталлятор осуществляет процесс обновления образов контейнеров приложения и перезапускает сервисы Пробы Pamir.

Опции инсталлятора

Справка по использованию инсталлятора

Инсталлятор принимает на вход следующие позиционные аргументы:

  • install – установка приложения;
  • uninstall – удаление приложения.

Также инсталлятор принимает следующие опциональные аргументы:

  • -h показать справку по использованию инсталлятора и выход из программы;
  • -q не интерактивный режим (например, миграция данных Docker будет осуществляться по параметрам из переменной окружения, а проверка jq не будет интерактивной);
  • -p удаление данных (будут удалены все тома Пробы Памир, образы контейнеров и директория приложения $HOME/.pamir_probe).

Управление сервисами Пробы Памир

Для управления сервисами Пробы Памир используется утилита командной строки (CLI) - pamirctl. Утилита автоматически устанавливается в систему (по пути /usr/local/bin) при наличии необходимых привилегий, в противном случае, будет возможен вызов утилиты по пути $HOME/.pamir_probe/pamirctl.

Утилита принимает на вход позиционные аргументы для управления сервисами.

# pamirctl --help
Утилита управления подсистемами {vars.name} позволяет осуществлять 
развертывание, перезапуск, остановку и наблюдение за сервисами
приложения, используя для этого средства Compose API.

Использование:
pamirctl [command]

Доступные команды:
completion Generate the autocompletion script for the specified shell
help Получить справочную информацию по выбранной команде
restart Выполнить перезапуск сервисов {vars.name}
start Выполнить запуск сервисов {vars.name}
status Просмотр состояния сервисов {vars.name}
stop Выполнить остановку сервисов {vars.name}

Флаги:
--config string файл конфигурации (по-умолчанию: $HOME/.pamirctl.yml)
-h, --help показать справочную информацию для pamirctl
-v, --version показать версию pamirctl

Используйте "pamirctl [command] --help" для получения дополнительной информации о команде.

Запуск приложения

Запуск Pamir осуществляется командой pamirctl start, после чего создаются и запускаются контейнеры. Большая часть контейнеров дополнительно проверяется на работоспособность и способность принимать трафик (healthcheck).

Параметризация сервисов

Данная команда также может использоваться для применения настроек, внесенных в конфигурацию сервисов (файлы docker-compose*.yml), например, если нужно опубликовать извне сервис rabbitMQ, вносятся изменения в файл docker-compose.additional.yml такого вида:

services:
rabbitmq:
ports:
- "5672:6000"

Для применения данных параметров необходимо запустить команду запуска с дополнительным позиционным аргументом - именем сервиса:

pamirctl start rabbitmq

Остановка приложения

Остановка Pamir осуществляется командой pamirctl stop, которая останавливает работающие контейнеры и удаляет их. Тома хранения (volumes) и директория $HOME/.pamir остаются нетронутыми (для дальнейшего запуска приложения).

Просмотр состояния сервисов

Просмотр статуса работы сервисов осуществляется командой pamirctl status.

Команда также может принимать дополнительные позиционные аргументы - имена сервисов, разделенные пробелом. В таком случае в таблице будут отображены указанные сервисы.

Перезапуск приложения (сервисов)

Перезапуск сервисов приложения осуществляется командой pamirctl restart.

Команда также может принимать дополнительные позиционные аргументы - имена сервисов, разделенные пробелом. В данном случае будут перезапущены указанные в команде сервисы.

Удаление

Для удаления Пробы Памир необходимо примонтировать ISO-образ дистрибутива и из директории install выполнить команду ./install uninstall.

Порядок удаления приложения без удаления данных

1. Монтирование образа ISO

sudo mount -o loop ./pamir-probe-1.1-astra1.7.iso /media/cdrom

2. Запуск установочного исполняемого файла

cd /media/cdrom/install
./install uninstall

Деинсталлятор остановит работающие контейнеры, удалит их, образы контейнеров и сеть. Тома хранения данных (volumes) и директория $HOME/.pamir_probe не будут удалены.

Порядок удаления приложения с удалением данных

1. Монтирование образа ISO

sudo mount -o loop ./pamir-probe-1.1-astra1.7.iso /media/cdrom

2. Запуск установочного исполняемого файла с флагом -p (или --purge)

cd /media/cdrom/install
./install uninstall -p

В данном случае тома хранения данных (volumes) и директория $HOME/.pamir_probe будут удалены безвозвратно.

Настройка пробы

Настройка Env переменных

Заполнить в .probe.env значимые переменные

  • probe_name - уникальное идентифицирующее имя пробы
  • workers - количество обработчиков
  • данные для подключения к rabbitmq
подсказка

Для пользовательских конфигураций использовать .probe.override.env.

Подробно: Настройка Env переменных

Настройка RabbitMQ пробы

Данные для подключения веб-интерфейс RabbitMQ Management Plugin опередляются в .probe.env

Admin->Federation Upstream добавить новый upstream с параметрами rabbitmq к которому устанавливается подключение:

-Name: Pamir upstream

-upstreamURI: amqp://federation_user:federation_user@pamir:5672/vhost

Admin->Polices добавить политику подключения:

-Name: Probe police

-Pattern: probe_exchange - шаблон имени обмена, который будет связан с upstream rabbit

-Definition: federation-upstream-set=all

Настройка RabbitMQ основного сервера ПАМИР

Данные для подключения веб-интерфейс RabbitMQ Management Plugin опередляются в .env

Открыть порт для подключени веб-интерфейс RabbitMQ Management Plugin в docker-compose.additional.yml

Admin->Federation Upstream добавить новый upstream с параметрами rabbitmq к которому устанавливается подключение:

-Name: Probe upstream

-upstreamURI: amqp://federation_user:federation_user@probe:5672/vhost

Admin->Polices добавить политику подключения:

-Name: Pamir police

-Pattern: srm_exchange - шаблон имени обмена, который будет связан с upstream rabbit

-Definition: federation-upstream-set=all

Обогащение через пробу

Обогащение происходит через ТКЕ 'probe' (название может быть любое) связанную с обогащаемыми TКЕ через тип связи - Зависимость

Настройка ТКЕ

Настройка связи

  • Тип связи - Зависимость

  • Фетчер связи - Получить данные из атрибута: Название

Настройка КЕ

Создать КЕ 'probe' с идентифицирующим атрибутом Название которое соответвует настройке probe_name в файле .probe.env