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 - автоматически он становится на мониторинг.
Параметры конфигурации плагина
Приведенные ниже параметры справедливы для обоих режимов работы плагина.
Параметр | Тип | Обязательный | Значение по умолчанию | Описание |
---|---|---|---|---|
scrapeTimeout | String | нет | 10s | Таймаут получения метрик с одной цели |
labels | Object | нет | - | Дополнительные метки, которые будут добавлены к результирующим метрикам |
scrapeConfig | Object | нет | - | Параметр, отвечающий за настройку собираемых метрик |
scrapeCpu.enabled | Boolean | нет | true | Активация сбора метрик ЦП |
scrapeCpu.labels | Object | нет | - | Дополнительные метки, которые будут добавлены к метрикам ЦП |
scrapeMemory.enabled | Boolean | нет | true | Активация сбора метрик памяти |
scrapeMemory.labels | Object | нет | - | Дополнительные метки, которые будут добавлены к метрикам памяти |
scrapeLogicalDisk.enabled | Boolean | нет | true | Активация сбора метрик логических дисков |
scrapeLogicalDisk.labels | Object | нет | - | Дополнительные метки, которые будут добавлены к метрикам логических дисков |
scrapeLogicalDisk.nameIncludeRegex | String | нет | - | Регулярное выражение, определяющее, какие названия логических дисков включать в процесс сбора данных |
scrapeLogicalDisk.nameExcludeRegex | String | нет | - | Регулярное выражение, определяющее, какие названия логических дисков исключать из процесса сбора данных |
scrapeLogicalDisk.typeIncludeRegex | String | нет | - | Регулярное выражение, определяющее, какие типы логических дисков включать в процесс сбора данных (ext2, ext3, xfs) |
scrapeLogicalDisk.typeExcludeRegex | String | нет | - | Регулярное выражение, определяющее, какие типы логических дисков исключать из процесса сбора данных |
scrapeNetwork.enabled | Boolean | нет | true | Активация сбора метрик сетевых интерфейсов |
scrapeNetwork.labels | Object | нет | - | Дополнительные метки, которые будут добавлены к метрикам сетевых интерфейсов |
scrapeNetwork.nicIncludeRegex | String | нет | - | Регулярное выражение, определяющее, какие названия сетевых интерфейсов включать в процесс сбора данных |
scrapeNetwork.nicExcludeRegex | String | нет | - | Регулярное выражение, определяющее, какие названия сетевых интерфейсов исключать из процесса сбора данных |
scrapeDisk.enabled | Boolean | нет | true | Активация сбора метрик физических дисков |
scrapeDisk.labels | Object | нет | - | Дополнительные метки, которые будут добавлены к метрикам физических дисков |
scrapeDisk.nameIncludeRegex | String | нет | - | Регулярное выражение, определяющее, какие названия физических дисков включать в процесс сбора данных |
scrapeDisk.nameExcludeRegex | String | нет | - | Регулярное выражение, определяющее, какие названия физических дисков исключать из процесса сбора данных |
scrapeOsInfo.enabled | Boolean | нет | true | Активация сбора метрики с информацией о системе |
scrapeOsInfo.labels | Object | нет | - | Дополнительные метки, которые будут добавлены к метрикам информации о системе |
scrapeServices.enabled | Boolean | нет | false | Активация сбора метрик системных служб |
scrapeServices.labels | Object | нет | - | Дополнительные метки, которые будут добавлены к метрикам системных служб |
scrapeServices.nameIncludeRegex | String | нет | - | Регулярное выражение, определяющее, какие названия системных служб включать в процесс сбора данных |
scrapeServices.nameExcludeRegex | String | нет | - | Регулярное выражение, определяющее, какие названия системных служб исключать из процесса сбора данных |
Параметры конфигурации для режима nodeInfoRemote
Данные параметры справедливы только для режима nodeInfoRemote
, когда осуществляется удаленное подключение к узлу.
Параметр | Тип | Обязательный | Значение по умолчанию | Описание |
---|---|---|---|---|
sshConfig | Object | да (для режима nodeInfoRemote ) | - | Параметры подключения к удаленному узлу |
sshConfig.host | String | да | - | Адрес узла |
sshConfig.port | Integer | нет | 22 | Порт службы SSH |
sshConfig.username | String | да | - | Логин пользователя |
sshConfig.password | String | нет | - | Пароль пользователя. Если задан privateKey данный параметр будет проигнорирован |
sshConfig.privateKey | String | нет | - | Приватный ключ (plaintext). Если задан privateKeyPath данный параметр будет проигнорирован |
sshConfig.privateKeyPath | String | нет | - | Путь к ключу, если используется внешний агент в роли "прокси" |
configItemId | String | нет | - | Системная метка, которая будет добавлена к собираемым метрикам. Актуально при получении параметров из CMDB. |
- Плагин поддерживает работу только c RSA-ключами в PEM формате. Если ключ защищен паролем, его необходимо будет снять, так как указание парольной фразы для ключа не поддерживается.
Собираемые метрики
Метрика | Тип | Описание |
---|---|---|
node_cpu_seconds_total | counter | Утилизация ЦП в различных режимах по каждому ядру |
node_memory_MemAvailable_bytes | gauge | Доступная свободная память |
node_memory_MemTotal_bytes | gauge | Всего памяти на сервер |
node_memory_SwapFree_bytes | gauge | Свободно swap памяти |
node_memory_SwapTotal_bytes | gauge | Всего swap памяти |
node_uname_info | gauge | Информация о целевом хосте |
node_filesystem_avail_bytes | gauge | Доступное дисковое пространство в байтах |
node_filesystem_size_bytes | gauge | Размер раздела в байтах |
node_filesystem_readonly | gauge | Состояние файловой системы - "только чтение" |
node_filesystem_files_free | gauge | Свободно inodes |
node_filesystem_files | gauge | Всего inodes |
node_network_transmit_bytes_total | counter | Передано байт всего |
node_network_receive_bytes_total | counter | Получено байт всего |
node_network_speed_bytes | gauge | Скорость сетевого интерфейса в байтах |
node_network_up | gauge | Состояние сетевого интерфейса |
node_network_transmit_errs_total | counter | Общее количество ошибок при передаче пакетов |
node_network_receive_errs_total | counter | Общее количество ошибок при получении пакетов |
node_network_receive_packets_total | counter | Общее количество полученных пакетов |
node_network_transmit_packets_total | counter | Общее количество отправленных пакетов |
node_disk_io_time_seconds_total | counter | Общее время, затраченное на операции ввода-вывода (I/O) диска, в секундах |
node_disk_reads_completed_total | counter | Общее количество операций чтения (iops) |
node_disk_writes_completed_total | counter | Общее количество операций записи (iops) |
node_disk_read_bytes_total | counter | Общее количество байт прочитанных с диска |
node_disk_written_bytes_total | counter | Общее количество байт записанных на диск |
node_disk_read_time_seconds_total | counter | Общее количество секунд, потраченных на все операции чтения |
node_disk_write_time_seconds_total | counter | Общее количество секунд, потраченных на все операции записи |
node_systemd_unit_state | gauge | Состояние служб systemd |
proc_cpu_seconds_total | counter | Использование ЦП процессом |
proc_memory_bytes | gauge | Использование памяти процессом |
proc_num | gauge | Количество процессов. Если scrapeProcesses.configs[*].user=all считается общее количество процессов в ОС. Если указан конкретный пользователь, то только по этому пользователю |
proc_num_threads | gauge | Количество потоков процесса. Если scrapeProcesses.configs[*].user=all считается общее количество потоков процесса в ОС. Если указан конкретный пользователь, то только по этому пользователю |
proc_state | gauge | Состояние процесса |
proc_read_bytes_total | counter | Количество байт, которые процесс прочитал с ФС |
proc_write_bytes_total | counter | Количество байт, которые процесс записал в ФС |
proc_open_filedesc | gauge | Количество открытых файлов процессом |
proc_uptime | gauge | Время старта процесса в формате 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
и интервал запуска задания сборщика данных.