Linux command extension: различия между версиями

Материал из Документация Ключ-АСТРОМ
Новая страница: «= Расширение linux_command для Ключ-АСТРОМ = Расширение '''linux_command''' предназначено для выполнения произвольных '''bash'''-команд на удалённых хостах по '''SSH''' и преобразования вывода в метрики Ключ-АСТРОМ. Метрики имеют префикс <code>custom.linux_command</code>. == Возможности расш...»
 
Нет описания правки
 
Строка 147: Строка 147:
** Заполните <code>private_key_passphrase</code>.
** Заполните <code>private_key_passphrase</code>.
** Поле <code>password</code> остаётся обязательным по схеме, но при наличии <code>private_key_file</code> + <code>private_key_passphrase</code> используется парольная фраза ключа.
** Поле <code>password</code> остаётся обязательным по схеме, но при наличии <code>private_key_file</code> + <code>private_key_passphrase</code> используется парольная фраза ключа.
== История версий ==
{| class="wikitable"
! Версия
! Изменения
|-
|0.1.0
|Начало поддержки расширения в Ключ-АСТРОМ <code>1.285+</code>. Расширение выполняет команды на удалённых Linux-хостах по SSH и преобразует полученные значения в метрики.
|}

Текущая версия от 19:32, 15 сентября 2026

Расширение linux_command для Ключ-АСТРОМ

Расширение linux_command предназначено для выполнения произвольных bash-команд на удалённых хостах по SSH и преобразования вывода в метрики Ключ-АСТРОМ. Метрики имеют префикс custom.linux_command.

Возможности расширения

  • Выполнение произвольной bash-команды на удалённом хосте.
  • Подключение по SSH с паролем или по приватному ключу.
  • Запуск команды от имени другого пользователя через su <user> -c <command>.
  • Разбор вывода в двух режимах:
    • SINGLE_VALUE — первое числовое значение из вывода.
    • MULTI_VALUE — набор пар key=value.
  • Отправка метрик с измерением endpoint, соответствующим имени endpoint.

Требования

На хосте, где запускается расширение (АктивныйШлюз или среда выполнения), должны быть установлены:

  • ssh
  • sshpass

Конфигурация

Конфигурация задаётся через activation.json.

Пример activation.json

{
  "enabled": true,
  "description": "linux_command activation",
  "version": "0.0.6",
  "activationContext": "REMOTE",
  "pythonRemote": {
    "endpoints": [
      {
        "endpoint_name": "test-endpoint",
        "execution_frequency": 1,
        "hostname": "172.18.38.131",
        "ssh_port": 22,
        "username": "test-user",
        "password": "{{sshPassword}}",
        "second_username": "",
        "second_password": "",
        "private_key_file": "",
        "private_key_passphrase": "",
        "command": "id -u",
        "metric_extraction_mode": "SINGLE_VALUE",
        "metric_pair_delimiter": "",
        "key_value_delimiter": ""
      }
    ]
  }
}

Параметры endpoint

Параметр Описание
endpoint_name Имя endpoint (попадает в измерение endpoint).
execution_frequency Частота запуска в минутах (минимум 1).
hostname Хост для SSH-подключения.
ssh_port SSH-порт (по умолчанию 22).
username SSH-пользователь.
password SSH-пароль.
second_username Второй пользователь для su (опционально).
second_password Пароль второго пользователя (опционально).
private_key_file Путь к приватному ключу на АктивномШлюзе/среде выполнения (опционально).
private_key_passphrase Парольная фраза ключа (опционально).
command Команда для запуска.
metric_extraction_mode Режим извлечения метрик: SINGLE_VALUE или MULTI_VALUE.
metric_pair_delimiter Разделитель пар в MULTI_VALUE (по умолчанию \n).
key_value_delimiter Разделитель ключ/значение в MULTI_VALUE (по умолчанию =).

Режимы извлечения метрик

SINGLE_VALUE

Берётся первая строка, которую можно преобразовать в число с плавающей точкой.

Пример:

Команда: id -u

Вывод: 1001

Метрика: custom.linux_command.value = 1001

MULTI_VALUE

Ожидается вывод в формате key=value (или с заданными разделителями).

Пример:

Команда: printf 'cpu=12\nmem=45.5\nerrors=0\n'

metric_pair_delimiter: \n

key_value_delimiter: =

Метрики:

  • custom.linux_command.cpu = 12
  • custom.linux_command.mem = 45.5
  • custom.linux_command.errors = 0

Примеры сценариев

Команда от второго пользователя

  • username: пользователь для SSH.
  • second_username: пользователь, от которого выполнить команду.
  • command: например, id -u.

Фактически выполняется:

su <second_username> -c '<command>'

Подключение по приватному ключу

  • private_key_file: путь к приватному ключу (например, /root/.ssh/id_rsa).
  • Если ключ защищён парольной фразой:
    • Заполните private_key_passphrase.
    • Поле password остаётся обязательным по схеме, но при наличии private_key_file + private_key_passphrase используется парольная фраза ключа.

История версий

Версия Изменения
0.1.0 Начало поддержки расширения в Ключ-АСТРОМ 1.285+. Расширение выполняет команды на удалённых Linux-хостах по SSH и преобразует полученные значения в метрики.