Перейти к основному содержимому
Версия: 9.0

Node Info (Linux)

Общие сведения

Название плагина: nodeInfo
Ссылка для загрузки плагина: скачать

Описание:
Данный плагин предназначен для регулярного получения метрик производительности машин под управлением ОС Linux.

Поддерживает два режима работы (параметр plugin):

  • nodeInfoLocal - метрики запрашиваются через установленный агент на целевом хосте под управлением ОС Linux (агентский сбор метрик)
  • nodeInfoRemote - метрики запрашиваются удаленно через SSH с системы Monq (безагентский сбор метрик)

Пример конфигурации nodeInfoLocal


name: Сбор метрик с хостов под управлением ОС Linux
jobs:
- name: Получение метрик
steps:
- plugin: nodeInfoLocal
with:
scrapeTimeout: 15s
labels:
myLabel: myValue
scrapeConfig:
scrapeCpu:
enabled: true
configItemComponent: CPU
scrapeMemory:
enabled: true
configItemComponent: Memory
configItemComponentSlot: common
scrapeFileSystem:
enabled: true
nameIncludeRegex: ''
nameExcludeRegex: ''
typeIncludeRegex: 'ntfs'
typeExcludeRegex: 'fat'
scrapeNetwork:
enabled: true
nicIncludeRegex: ''
nicExcludeRegex: 'isatap.*'
scrapeDisk:
enabled: true
nameIncludeRegex: 'PHYSICALDRIVE\d+'
nameExcludeRegex: ''
scrapeOsInfo:
enabled: true
scrapeServices:
enabled: true
nameIncludeRegex: ''
nameExcludeRegex: ''
scrapeProcesses:
enable: true
configs:
- name: nginx
- name: prometheus
- name: haproxy
outputs:
result: $._outputs.metrics
artifacts:
- data: $.outputs.result
send-to: monq
type: metrics

Пример конфигурации nodeInfoRemote


name: Удаленный сбор метрик с хостов под управлением ОС Linux
jobs:
- name: Получение метрик
steps:
- plugin: nodeInfoRemote
with:
scrapeTimeout: 10s
sshConfig:
host: 10.10.10.10
username: $.vars.username
password: $.vars.password
labels:
myLabel: myValue
configItemId: $.vars.configItem.id
scrapeConfig:
scrapeCpu:
enabled: true
configItemComponent: CPU
scrapeMemory:
enabled: true
configItemComponent: Memory
configItemComponentSlot: common
scrapeFileSystem:
enabled: true
nameIncludeRegex: ''
nameExcludeRegex: ''
typeIncludeRegex: 'ntfs'
typeExcludeRegex: 'fat'
scrapeNetwork:
enabled: true
nicIncludeRegex: ''
nicExcludeRegex: 'isatap.*'
scrapeDisk:
enabled: true
nameIncludeRegex: 'PHYSICALDRIVE\d+'
nameExcludeRegex: ''
scrapeOsInfo:
enabled: true
scrapeServices:
enabled: true
nameIncludeRegex: 'MpsSvc|wuauserv'
nameExcludeRegex: ''
scrapeProcesses:
enable: true
configs:
- name: nginx
- name: prometheus
- name: haproxy
outputs:
result: $._outputs.metrics
artifacts:
- data: $.outputs.result
send-to: monq
type: metrics
это удобно

При помощи сбора данных по CMDB можно формировать перечень объектов, для которых будет выполнять задание сборщик. Например, для всех ваших серверов настроить один сборщик ICMP, который будет выполняться для всех объектов (КЕ) с типом "Сервер", значение IP-адреса будет взято из соответствующего атрибута в CMDB. Появляется новый сервер в CMDB - автоматически он становится на мониторинг.

Параметры конфигурации плагина

Приведенные ниже параметры справедливы для обоих режимов работы плагина.

ПараметрТипОбязательныйЗначение по умолчаниюОписание
scrapeTimeoutStringнет10sТаймаут получения метрик с одной цели
labelsObjectнет-Дополнительные метки, которые будут добавлены к результирующим метрикам
scrapeConfigObjectнет-Параметр, отвечающий за настройку собираемых метрик
scrapeCpu.enabledBooleanнетtrueАктивация сбора метрик ЦП
scrapeCpu.labelsObjectнет-Дополнительные метки, которые будут добавлены к метрикам ЦП
scrapeMemory.enabledBooleanнетtrueАктивация сбора метрик памяти
scrapeMemory.labelsObjectнет-Дополнительные метки, которые будут добавлены к метрикам памяти
scrapeLogicalDisk.enabledBooleanнетtrueАктивация сбора метрик логических дисков
scrapeLogicalDisk.labelsObjectнет-Дополнительные метки, которые будут добавлены к метрикам логических дисков
scrapeLogicalDisk.nameIncludeRegexStringнет-Регулярное выражение, определяющее, какие названия логических дисков включать в процесс сбора данных
scrapeLogicalDisk.nameExcludeRegexStringнет-Регулярное выражение, определяющее, какие названия логических дисков исключать из процесса сбора данных
scrapeLogicalDisk.typeIncludeRegexStringнет-Регулярное выражение, определяющее, какие типы логических дисков включать в процесс сбора данных (ext2, ext3, xfs)
scrapeLogicalDisk.typeExcludeRegexStringнет-Регулярное выражение, определяющее, какие типы логических дисков исключать из процесса сбора данных
scrapeNetwork.enabledBooleanнетtrueАктивация сбора метрик сетевых интерфейсов
scrapeNetwork.labelsObjectнет-Дополнительные метки, которые будут добавлены к метрикам сетевых интерфейсов
scrapeNetwork.nicIncludeRegexStringнет-Регулярное выражение, определяющее, какие названия сетевых интерфейсов включать в процесс сбора данных
scrapeNetwork.nicExcludeRegexStringнет-Регулярное выражение, определяющее, какие названия сетевых интерфейсов исключать из процесса сбора данных
scrapeDisk.enabledBooleanнетtrueАктивация сбора метрик физических дисков
scrapeDisk.labelsObjectнет-Дополнительные метки, которые будут добавлены к метрикам физических дисков
scrapeDisk.nameIncludeRegexStringнет-Регулярное выражение, определяющее, какие названия физических дисков включать в процесс сбора данных
scrapeDisk.nameExcludeRegexStringнет-Регулярное выражение, определяющее, какие названия физических дисков исключать из процесса сбора данных
scrapeOsInfo.enabledBooleanнетtrueАктивация сбора метрики с информацией о системе
scrapeOsInfo.labelsObjectнет-Дополнительные метки, которые будут добавлены к метрикам информации о системе
scrapeServices.enabledBooleanнетfalseАктивация сбора метрик системных служб
scrapeServices.labelsObjectнет-Дополнительные метки, которые будут добавлены к метрикам системных служб
scrapeServices.nameIncludeRegexStringнет-Регулярное выражение, определяющее, какие названия системных служб включать в процесс сбора данных
scrapeServices.nameExcludeRegexStringнет-Регулярное выражение, определяющее, какие названия системных служб исключать из процесса сбора данных

Параметры конфигурации для режима nodeInfoRemote

Данные параметры справедливы только для режима nodeInfoRemote, когда осуществляется удаленное подключение к узлу.

ПараметрТипОбязательныйЗначение по умолчаниюОписание
sshConfigObjectда (для режима nodeInfoRemote)-Параметры подключения к удаленному узлу
sshConfig.hostStringда-Адрес узла
sshConfig.portIntegerнет22Порт службы SSH
sshConfig.usernameStringда-Логин пользователя
sshConfig.passwordStringнет-Пароль пользователя. Если задан privateKey данный параметр будет проигнорирован
sshConfig.privateKeyStringнет-Приватный ключ (plaintext). Если задан privateKeyPath данный параметр будет проигнорирован
sshConfig.privateKeyPathStringнет-Путь к ключу, если используется внешний агент в роли "прокси"
configItemIdStringнет-Системная метка, которая будет добавлена к собираемым метрикам. Актуально при получении параметров из CMDB.
  • Плагин поддерживает работу только c RSA-ключами в PEM формате. Если ключ защищен паролем, его необходимо будет снять, так как указание парольной фразы для ключа не поддерживается.

Собираемые метрики

МетрикаТипОписание
node_cpu_seconds_totalcounterУтилизация ЦП в различных режимах по каждому ядру
node_memory_MemAvailable_bytesgaugeДоступная свободная память
node_memory_MemTotal_bytesgaugeВсего памяти на сервер
node_memory_SwapFree_bytesgaugeСвободно swap памяти
node_memory_SwapTotal_bytesgaugeВсего swap памяти
node_uname_infogaugeИнформация о целевом хосте
node_filesystem_avail_bytesgaugeДоступное дисковое пространство в байтах
node_filesystem_size_bytesgaugeРазмер раздела в байтах
node_filesystem_readonlygaugeСостояние файловой системы - "только чтение"
node_filesystem_files_freegaugeСвободно inodes
node_filesystem_filesgaugeВсего inodes
node_network_transmit_bytes_totalcounterПередано байт всего
node_network_receive_bytes_totalcounterПолучено байт всего
node_network_speed_bytesgaugeСкорость сетевого интерфейса в байтах
node_network_upgaugeСостояние сетевого интерфейса
node_network_transmit_errs_totalcounterОбщее количество ошибок при передаче пакетов
node_network_receive_errs_totalcounterОбщее количество ошибок при получении пакетов
node_network_receive_packets_totalcounterОбщее количество полученных пакетов
node_network_transmit_packets_totalcounterОбщее количество отправленных пакетов
node_disk_io_time_seconds_totalcounterОбщее время, затраченное на операции ввода-вывода (I/O) диска, в секундах
node_disk_reads_completed_totalcounterОбщее количество операций чтения (iops)
node_disk_writes_completed_totalcounterОбщее количество операций записи (iops)
node_disk_read_bytes_totalcounterОбщее количество байт прочитанных с диска
node_disk_written_bytes_totalcounterОбщее количество байт записанных на диск
node_disk_read_time_seconds_totalcounterОбщее количество секунд, потраченных на все операции чтения
node_disk_write_time_seconds_totalcounterОбщее количество секунд, потраченных на все операции записи
node_systemd_unit_stategaugeСостояние служб systemd
proc_cpu_seconds_totalcounterИспользование ЦП процессом
proc_memory_bytesgaugeИспользование памяти процессом
proc_numgaugeКоличество процессов. Если scrapeProcesses.configs[*].user=all считается общее количество процессов в ОС. Если указан конкретный пользователь, то только по этому пользователю
proc_num_threadsgaugeКоличество потоков процесса. Если scrapeProcesses.configs[*].user=all считается общее количество потоков процесса в ОС. Если указан конкретный пользователь, то только по этому пользователю
proc_stategaugeСостояние процесса
proc_read_bytes_totalcounterКоличество байт, которые процесс прочитал с ФС
proc_write_bytes_totalcounterКоличество байт, которые процесс записал в ФС
proc_open_filedescgaugeКоличество открытых файлов процессом
proc_uptimegaugeВремя старта процесса в формате Unixtime

Метрики физических дисков scrapeDisk

При получении данных, плагин работает только с физическими (виртуальными) дисками:

ДискТипОписание
sd*SCSI/SATA/USBФизические HDD/SSD, серверы, рабочие станции
hd*IDE/PATAУстаревшие системы
nvme*NVMe PCIe SSDСовременные сервера/ПК
xvd*Xen Virtual DisksГипервизоры Xen
vd*Virtio DisksГипервизоры на KVM/QEMU

Устройства, название которых начинается с:

ram, loop, dm-, sr, fd.

будут исключены из опроса.

Метрики процессов scrapeProcesses

Метрики proc_read_bytes_total, proc_read_bytes_total, proc_open_filedesc доступны только супер-пользователю. При использовании плагина nodeInfoRemote к целевому хосту потребуется подключение под супер-пользователем. Для локального сбора (плагин nodeInfoLocal), достаточно запустить агент Monq от имени супер-пользователя.

Получение метрик категории scrapeProcesses в режиме nodeInfoRemote занимает больше времени, чем при локально запуске агента. В связи с этим потребуется опытным путем подобрать параметр scrapeTimeout и интервал запуска задания сборщика данных.