Агент для сбора метрик Prometheus
Чтобы передавать метрики из виртуальной машины в Yandex Managed Service for Prometheus®, надо установить агент для сбора метрик. Вы можете установить любой агент, который поддерживает передачу метрик, либо воспользоваться Unified Agent с возможностью передачи метрик Prometheus.
В этом разделе описана установка агента при создании виртуальной машины. Другие способы установки см. в разделе Установка и обновление Yandex Unified Agent.
Список поддерживаемых операционных систем
- Ubuntu 14.04 или выше.
- Debian 9 или выше.
Подготовка к установке
-
Создайте сервисный аккаунт в каталоге, куда будут записываться метрики, и назначьте ему роль
monitoring.editor
. -
Настройте авторизацию агента в Yandex Monitoring API. Для этого привяжите созданный сервисный аккаунт к виртуальной машине. В этом случае агент будет автоматически получать IAM-токен сервисного аккаунта из сервиса метаданных.
Установка и настройка
Вы можете установить агент для сбора метрик при создании виртуальной машины в консоли управления, через CLI, API или Terraform.
-
В консоли управления
начните создавать ВМ. -
Раскройте блок Дополнительно > Мониторинг.
-
Включите Агент сбора метрик и выберите Yandex Managed Service for Prometheus®.
-
Создайте или выберите уже существующий воркспейс.
-
(Опционально) Укажите параметры поставки собственных метрик в формате JSON.
Если параметры не указаны, агент будет поставлять только системные метрики Linux. Добавить или изменить поставку собственных метрик можно позднее в пользовательских метаданных.
Формат описания метрик:
{ "jobs": [ { "job_name": <имя>, "scrape_interval": "15s", "scrape_timeout": "5s", "metrics_path": "/metrics", "targets": [ { "host": <FQDN_хоста>, //опционально "port": 42 } ] } ] }
Где:
job_name
— произвольное имя для набора собираемых метрик.scrape_interval
— как часто агент будет собирать метрики.scrape_timeout
— время, отведенное агенту на сбор метрик.metrics_path
— путь, по которому находятся метрики сервиса.targets
— параметры хоста, с которого собираются метрики:host
— (опционально) полное доменное имя, напримерmy.example.com
.port
— порт для сбора метрик.
Чтобы установить агент, укажите в пользовательских метаданных (user-data
) строку:
```text
#cloud-config\nruncmd:\n - wget -O - https://monitoring.api.cloud.yandex.net/monitoring/v2/unifiedAgent/config/install.sh | bash
```
Для установки агента:
-
В конфигурации создания ВМ укажите:
resource "yandex_compute_instance" "my-vm" { ... service_account_id = "ajehka*************" metadata = { monitoring_workspaceid = "mon618clr**************" user-data = "${file("<путь_к_файлу_конфигурации>")}" } ... }
Где:
monitoring_workspaceid
— идентификатор воркспейса, в который будут записываться метрики.service_account_id
— идентификатор сервисного аккаунта с рольюmonitoring.editor
.
-
В файле конфигурации (
user-data
) укажите строку:#cloud-config\nruncmd:\n - wget -O - https://monitoring.api.cloud.yandex.net/monitoring/v2/unifiedAgent/config/install.sh | bash
Для установки агента и отправки метрик у виртуальной машины должен быть доступ в интернет.
Агент устанавливается с файлом конфигурации по умолчанию, который находится по пути /etc/yc/unified_agent/config.yml
.
В файле конфигурации настроена отправка системных метрик Linux и метрик здоровья агента. Отправка метрик тарифицируется. Дополнительно можно настроить поставку метрик из ваших приложений в формате Prometheus.
После разворачивания ВМ агент запустится автоматически и начнет отправлять метрики в Yandex Managed Service for Prometheus®.
Обзор метрик виртуальной машины
Чтобы посмотреть метрики, которые передаются через агента в Yandex Managed Service for Prometheus®:
-
В консоли управления
выберите каталог, в котором находится виртуальная машина. -
В списке сервисов выберите Monitoring.
-
Перейдите в раздел Prometheus.
-
Выберите ворксейс, в который записываются метрики виртуальной машины.
-
Откройте вкладку Метрики и введите Запрос на языке PromQL для просмотра:
-
Системных метрик Linux —
{job="linux_metrics", instance="<имя_ВМ>", __name__="<имя_метрики>"}
.Пример:
{job="linux_metrics", instance="my_vm", __name__="sys_cpu_CpuCores"}
.Список метрик, которые передает агент Prometheus, см. в разделе Метрики Yandex Unified Agent.
-
Пользовательских метрик, если их передача была настроена на агенте, —
{job="имя_набора_метрик", instance="<имя_ВМ>:<порт>", __name__="<имя_метрики>"}
.Где:
job
— имя набора метрик, указанное при настройке агента;instance
— имя ВМ и порт, на котором работает ваше приложение;name
— имя метрики, которую передает ваше приложение.
Пример:
{job="web_server", instance="my_server:9100", __name__="http_requests_total"}
.
-
-
Нажмите кнопку Выполнить.