Linux command extension
Материал из Документация Ключ-АСТРОМ
Расширение linux_command для Ключ-АСТРОМ
Расширение linux_command предназначено для выполнения произвольных bash-команд на удалённых хостах по SSH и преобразования вывода в метрики Ключ-АСТРОМ. Метрики имеют префикс custom.linux_command.
Возможности расширения
- Выполнение произвольной bash-команды на удалённом хосте.
- Подключение по SSH с паролем или по приватному ключу.
- Запуск команды от имени другого пользователя через
su <user> -c <command>. - Разбор вывода в двух режимах:
SINGLE_VALUE— первое числовое значение из вывода.MULTI_VALUE— набор парkey=value.
- Отправка метрик с измерением
endpoint, соответствующим имени endpoint.
Требования
На хосте, где запускается расширение (АктивныйШлюз или среда выполнения), должны быть установлены:
sshsshpass
Конфигурация
Конфигурация задаётся через 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 = 12custom.linux_command.mem = 45.5custom.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 и преобразует полученные значения в метрики.
|