Агенты
Основная информация
Что такое агент в архитектуре Monq?
Агент — это специальная программа, которую можно установить на удаленное устройство с целью сбора данных и выполнения каких-либо действий (полный список поддерживаемых платформ).
Monq Agent получает с Monq сервера задания, выполняет их и собранную информацию передает по защищенному сетевому протоколу на сервер.
Задания могут быть самого разного рода: запустить bash
или PowerShell
- скрипт, обратиться к HTTP REST
интерфейсу, выполнять запрос к СУБД.
Для ускорения работы и упрощения написания заданий для агентов используются плагины. Плагины бывают как встроенные (например, плагин для работы с HTTP или плагины работы с наиболее популярными версиями СУБД), так и устанавливаемые на агенте отдельно (например, для сбора данных из Zabbix).
Также, следует отметить, что мы предоставляем возможность разрабатывать собственные плагины самостоятельно, что бывает полезно в ряде случаев (например, написать кастомный плагин для взаимодействия со специфической системой бронирования билетов) - инструкция.
Подключение Агентов к платформе Monq осуществляется через Координатор по HTTPS протоколу, используя API-ключ для авторизации. При этом не требуется организация "прямой сетевой связанности" от Monq до агента, сетевая связь нужна только от агента к Monq.
Координаторы Monq обеспечивают возможность подключения Агентов и выполняют распределение заданий Потоков данных между подключенными Агентами.
Основные возможности Агентов:
- Обработка поступающих сценариев Заданий
- Генерация результирующего артефакта и отправка данных в потоки данных
- Прямой запуск команд взаимодействия с консолью ОС (sh, bash, windows command, powershell)
- Запуск параллельного выполнения нескольких заданий
- Подключение плагинов интеграций:
- Zabbix
- SCOM
- vCenter
По умолчанию все Задания выполняются на внутреннем системном Агенте Monq, который входит в поставку системы.
Системный Агент получает задания через системный Координатор - SharedAgents
.
Подключение внешних агентов к системному координатору недоступно для пользователей.
Примеры использования Агентов представлены в виде готовых сценариев Заданий по сбору данных.
Управление координаторами
Управление Координаторами подразумевает под собой возможность выполнить следующие действия:
- Создать или удалить координатор
- Остановить или запустить Координатор
- Произвести основные настройки Координатора
- Перевыпустить API-ключ для подключения агентов
- Добавить или удалить общие метки для агентов
- Настроить права доступа к Координатору.
Права доступа к системному Координатору ограничены:
- Доступ на просмотр информации имеют только Администраторы пространства
- Доступ к API-ключу координатора ограничен для всех пользователей пространства
Добавление координатора
- Перейдите через основное меню в раздел Сбор данных → Агенты.
- Нажмите в верхнем правом углу экрана Добавить координатор.
- Заполните поля:
- Владелец
- Название координатора
- Добавьте метки
Метки используются для распределения Заданий Потоков данных между Координаторами
При добавлении метки на сам координатор данная метка автоматически присваивается всем агентам подключенным к нему.
⚠️ Если добавить метку
SharedAgents
созданному Координатору, планировщик распределит запуск Заданий с меткойSharedAgents
(установленной по умолчанию) также и на подключенные Агенты.При подключении агента к координатору, координатор также запоминает и хранит в себе набор персональных меток всех подключенных к нему агентов.
- Нажмите Добавить
- Новый координатор создан, API-ключ для подключения Агентов скопирован в буфер обмена.
Удаление координатора
⚠️ При удалении координатора все подключенные агенты потеряют соединение с Monq и не смогут подключиться без перенастройки API-ключа для нового координатора.
- Перейдите через основное меню в раздел Сбор данных → Агенты
- Найдите координатор, который необходимо удалить
- Используя контекстное меню, выберите Удалить
- В диалоговом окне подтвердите удаление координатора
Координатор можно также удалить со страницы управления координатором. Для этого откройте нужный координатор и в верхнем правом углу нажмите Удалить.
Перевыпуск API-ключа координатора
В случае необходимости блокировки доступа агента к координатору или по иным целям, пользователю доступен Перевыпуск API-ключа.
⚠️ После перевыпуска API-ключа все подключенные к координатору агенты потеряют связь с системой. Для их подключения замените API-ключи в конфигурационных файлах Агентов на новые.
Для перевыпуска нового API-ключа выполните следующие действия:
- Перейдите через основное меню в раздел Сбор данных → Агенты
- Перейдите на страницу настройки необходимого координатора
- В правом верхнем углу нажмите на ︙ и выберите пункт меню Перевыпустить API-ключ
- В диалоговом окне подтвердите перевыпуск API-ключа
- Новый API-ключ будет скопирован в буфер-обмена, а также будет отображаться возле названия координатора
Запуск и остановка координаторов
После добавления Координатора в систему – состояние Координатора по умолчанию Запущен. Координатор распределяет Задания на подключенные к нему Агенты для их выполнения.
Остановка работы Координатора означает, что:
- Задания больше не будут распределяться на Агенты, подключенные к Координатору
- Агенты смогут подключиться к координатору, но заданий на выполнение получать не будут
Запуск координатора
- Перейдите через основное меню в раздел Сбор данных → Агенты
- Найдите координатор, который необходимо запустить
- Используя контекстное меню – выберите Запустить
- В случае успешного запуска вы увидите соответствующее сообщение
Координатор также можно запустить со страницы управления координатором. Для этого откройте нужный координатор и в верхнем правом углу нажмите Запустить.
Остановка координатора
- Перейдите через основное меню в раздел Сбор данных → Агенты
- Найдите координатор, который необходимо остановить
- Используя контекстное меню – выберите Остановить
- В случае успешной остановки вы увидите соответствующее сообщение
Координатор также можно остановить со страницы управления координатором. Для этого откройте нужный координатор и в верхнем правом углу нажмите Остановить.
⚠️ При остановке координатора агенты подключенные к нему остаются подключенными, но на них перестают распределятся новые задания.
Настройка координатора
Чтобы изменить основную информацию о координаторе, выполните следующие действия:
- Перейдите через основное меню в раздел Сбор данных → Агенты.
- Откройте вкладку Настройки.
- Измените при необходимости:
- Владельца
- Название координатора
- Добавьте или удалите необходимые метки
Добавление меток осуществляется посредством кнопки "Enter", нажимаемой после ввода названия метки
Состояние подключенных агентов
Чтобы увидеть подключенные, на текущий момент, агенты к координатору, выполните следующие действия:
-
Перейдите через основное меню в раздел Сбор данных → Агенты
-
Откройте вкладку Агенты
-
На вкладке Агенты отображается информация о подключенных к координатору агентах:
-
Последний контакт – время, когда агент был активен
-
Название агента – имя агента, указанное в конфигурационном файле агента
-
Тип – Динамический или Статический (подробнее о типах агентов)
-
Состояние – Активен или Недоступен
-
Версия – версия подключенного агента
Цифра возле названия вкладки информирует о количестве подключенных агентов к координатору.
-
Статические агенты, которые не активны в данный момент – могут быть удалены из списка подключенных к координатору.
Чтобы удалить эти агенты, нажмите кнопку Удалить расположенную следом за версией агента.
Состояние выполнения заданий
Для просмотра информации о назначенных для выполнения заданиях на координаторе, выполните следующие действия:
- Перейдите через основное меню в раздел Сбор данных → Агенты.
- Откройте вкладку Задания.
- На вкладке Задания отображается информация о назначенных для выполнения заданий из шаблона конфигурации потока данных:
- Последний запуск – время последнего запуска задания на агенте
- Последний статус – статус выполнения последнего задания на агенте
- Владелец задания – поток данных, которому принадлежит задание
- Название – название задания в шаблоне конфигурации потока данных
- Метки – информация о метках, связывающих координатор с заданием шаблона конфигурации
- Произведите сортировку списка заданий по полям:
- Последний запуск
- Последний статус
- Владелец задания
- Название
Поиск на вкладке Задания осуществляется по полям: Название и Владелец задания.
Подключение Агента
Перед подключением Агента его необходимо загрузить и произвести конфигурацию.
Для подключения Агента необходимо иметь API-ключ координатора. Если координатор не создан вернитесь к его созданию.
Агент подключается к Координатору Monq по протоколу HTTPS (SignalR) c указанием API-ключа и базового URL системы.
Установка в Linux
-
Создайте рабочую директорию для агента и перейдите в нее:
mkdir -p /opt/monq-agent && cd /opt/monq-agent
-
Загрузите актуальную версию
monq-agent
:wget https://downloads.monq.ru/tools/monq-agent/latest/linux-x64/monq-agent.zip
-
Разархивируйте загруженный архив в текущую директорию:
unzip monq-agent.zip && rm -f monq-agent.zip
-
Сделайте двоичный файл
monq-agent
исполняемым:chmod +x ./monq-agent
-
Установите зависимости
libicu
, совместимой с вашей версией Linux:-
CentOS/RHEL
yum install libicu
-
Debian/Ubuntu
# найти актуальную версию
apt search '^libicu[0-9]*$'
# выполнить установку найденной версии, например 66
apt install libicu66
-
-
Д алее произведите настройку конфигурационного файла
Установка в Windows
- Загрузите актуальную версию
monq-agent
. - Извлеките содержимое архива в папку, например:
C:\monq-agent\monq-agent.exe
. - Далее произведите настройку конфигурационного файла
Конфигурация агента
Создайте в директории с исполняемым файлом файл конфигурации monitoring-agent.conf
, следующего содержания:
# Базовый URI системы Monq
BaseUri="https://monq.domain.com"
# API-ключ координатора для авторизации агента
ApiKey="fc63b95b-0393-430a-b8d0-46a8c4813675"
FileStorage=""
Timeout=100
[Plugins]
CSharpPath="/opt/monq-agent/plugins"
[Connection]
Timeout=100
RetryCount=12
[Agent]
Description=""
SlotsCount=2
Полное описание параметров конфигурации агента смотрите в таблице:
Параметр конфигурации | Описание | Обязательный параметр | Значение по умолчанию |
---|---|---|---|
BaseUri | Базовый URL системы (https://monq.domain.com) | да | нет |
ApiKey | API-ключ координатора для авторизации агента | да | нет |
FileStorage | Путь к хранилищу файлов | нет | нет |
Timeout | Таймаут выполнения заданий, в секундах | нет | 100 |
[Plugins] | Секция управления плагинами | ||
CSharpPath | Путь к директории с плагинами агента | нет | нет |
Autoload | Автозагрузка плагинов с хранилища | нет | false |
[Connection] | Секция управления настройками подключения | ||
Timeout | Таймаут на установку соединения, в секундах | нет | 30 |
RetryCount | Количество попыток установки соединения | нет | 12 |
[Agent] | Секция конфигурации агента | ||
Name | Название агента | нет | нет |
Description | Описание | нет | нет |
SlotsCount | Количество слотов для выполнения заданий | нет | 2 |
Labels:1-N | Персональная метка агента с порядковым номером от 1 до N | нет | 2 |
[WorkConfigs] | Секция настройки "рабочих" конфигураций | ||
Path | Путь к "рабочим" конфигурациям | нет | нет |
[Serilog:MinimumLevel] | Секция настройки уровня логирования | ||
Default | Уровень логирования | нет | Information |
[Buffer] | Секция настройки буфера (только при использовании рабочих конфигураций) | ||
BufferPath | Путь к директории, в которой хранить буфер приема | нет | нет |
BufferTotalLimitSize | Максимальный размер выделяемой памяти на диске для хранения очереди, в байтах | нет | 134217728 |
FlushTime | Частота отправки файлов очереди | нет | "00:00:01" |
MaxChunksInMemory | Максимальное количество порций для отправки в систему за одну операцию | нет | 128 |
BacklogMemoryLimit | Лимит размера всех порций | нет | 5242880 |
Рабочие конфигурации агентов
Начиная с версии Monq Agent 2.1.0 имеется возможность настрой ки выполнения непрерывных заданий на агенте для возможности прослушивания TCP/UDP портов, приема логов в формате syslog
и других сродных задач.
Настройка таких заданий выполняется при помощи рабочих конфигураций агента - WorkConfigs
.
Формат используемый в файлах рабочих конфигураций - YAML
.
Каталог хранения рабочих конфигураций задается в основном конфигурационном файле, в секции [WorkConfigs]
, параметр Path
. При запуске агента считываются все конфигурационные файлы (*.yaml
и *.yml
) в указанном каталоге.
Для каждой рабочей конфигурации требуется выделение 1 слота агента. Если количество слотов на агенте будет меньше, чем количество конфигураций, часть конфигураций будет проигнорирована без предупреждения.
Пример файла рабочей конфигурации агента:
continuous-jobs:
- init-step:
plugin: tcp
with:
listen: 0.0.0.0
port: 5170
separator: \n
bufferType: memory
bufferInputName: tcp.job1
bufferSize: 20
chunkSize: 20
format: none
streamKey: "ключ потока"
На текущий момент имеются следующие встроенные плагины для настройки рабочих конфигураций: tcp
, udp
, syslog
.
Справочную информацию о возможных параметрах перечисленных плагинов можно найти в разделе Справочник - Плагины Monq Agent.
Персональные метки агентов
Для более гибкой настройки распределения задания на агент существует возможность установить персональную метку на агент.
В файле конфигурации агента можно добавить любое количество персональных меток агента в формате:
...
[Agent]
# Название
# Name="monq-agent-hostname"
# Описание
# Description=""
# Количество слотов для выполнения заданий
# SlotsCount=2
# Метки агента
Labels:1 = "Agent2"
Labels:2 = "GeneralLabel"
...
После подключения агента к координатору, все указанные метки будут доступны для выбора в поле "Агент" в задании потока данных.