Проба
Проба — это отдельное приложение, которое подключается к основному приложению Памир и выполняет «обогащение» на удалённых хостах
Технические требования
Для установки Пробы Памир на систему пользователя должен быть соблюден ряд технических требований.
Поддерживаемые операционные системы
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);
Инсталлятор включает в себя следующие дополнительные возможности:
- Миграция каталога хранения данных Docker на другой диск/точку монтирования. Требуется пакет jq.
- Инкрементное обновление приложения. Требуются пакеты jq и tar.
- Установка 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.
Утилита принимает на вход позиционные аргументы для управления сервисами.
Утилита управления подсистемами {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