Поставка метрик HAProxy и других сторонних приложений
Yandex Unified Agent поддерживает сбор метрик в формате Prometheus и конвертацию метрик в формат Yandex Monitoring. При помощи Unified Agent вы сможете собирать метрики любых приложений, которые предоставляют метрики в формате Prometheus.
Для поставки в Yandex Monitoring метрик сторонних приложений используется вход metrics_pull, который периодически опрашивает напрямую стороннее приложение (если оно поддерживает метрики в формате Prometheus) или специальное приложение-экспортер, реализующее интеграцию с Prometheus.
Для примера рассмотрим поставку в Yandex Monitoring метрик HAProxy
Пример поставки метрик HAProxy
Описанная методика может также применяться для отправки метрик любых сторонних приложений, для которых существует интеграция с Prometheus
-
Установите HAProxy
.-
Для установки HAProxy выполните следующую команду:
sudo apt install haproxy
-
Чтобы реализовать интеграцию с Prometheus, настройте экспортер. Для этого добавьте раздел
frontend
в конфигурационный файлhaproxy.cfg
:frontend stats bind *:8404 http-request use-service prometheus-exporter if { path /metrics } stats enable stats uri /stats stats refresh 10s
-
Выполните перезапуск сервиса:
sudo service haproxy restart
-
Убедитесь, что экспортер запущен и предоставляет метрики. Для этого выполните команду
curl http://localhost:8404/metrics
. Пример работы команды:# HELP haproxy_process_nbthread Number of started threads (global.nbthread) # TYPE haproxy_process_nbthread gauge haproxy_process_nbthread 2 # HELP haproxy_process_nbproc Number of started worker processes (historical, always 1) # TYPE haproxy_process_nbproc gauge haproxy_process_nbproc 1 # HELP haproxy_process_relative_process_id Relative worker process number (1) # TYPE haproxy_process_relative_process_id gauge haproxy_process_relative_process_id 1 # HELP haproxy_process_uptime_seconds How long ago this worker process was started (seconds) # TYPE haproxy_process_uptime_seconds gauge haproxy_process_uptime_seconds 5 # HELP haproxy_process_pool_failures_total Number of failed pool allocations since this worker was started # TYPE haproxy_process_pool_failures_total counter haproxy_process_pool_failures_total 0
-
-
Настройте сервисный аккаунт, от имени которого будут записываться метрики в Yandex Monitoring.
-
Создайте сервисный аккаунт в каталоге, куда будут записываться метрики и назначьте ему роль
monitoring.editor
. -
Привяжите сервисный аккаунт к виртуальной машине, на которой установлен Unified Agent.
-
-
Установите и настройте Yandex Unified Agent:
-
Создайте в домашнем каталоге файл
config.yml
:status: port: "16241" storages: - name: main plugin: fs config: directory: /var/lib/yandex/unified_agent/main max_partition_size: 100mb max_segment_size: 10mb channels: - name: cloud_monitoring channel: pipe: - storage_ref: name: main output: plugin: yc_metrics config: folder_id: "$FOLDER_ID" iam: cloud_meta: {} routes: - input: plugin: metrics_pull config: url: http://localhost:8404/metrics format: prometheus: {} namespace: haproxy channel: channel_ref: name: cloud_monitoring - input: plugin: agent_metrics config: namespace: ua channel: pipe: - filter: plugin: filter_metrics config: match: "{scope=health}" channel_ref: name: cloud_monitoring import: - /etc/yandex/unified_agent/conf.d/*.yml
Где
$FOLDER_ID
– идентификатор каталога, в который будут записываться метрики. -
Установите Unified Agent на свою виртуальную машину, выполнив в домашнем каталоге следующую команду:
docker run \ -p 16241:16241 -it --detach --uts=host \ --name=ua \ -v /proc:/ua_proc \ -v `pwd`/config.yml:/etc/yandex/unified_agent/config.yml \ -e PROC_DIRECTORY=/ua_proc \ -e FOLDER_ID=a1bs81qpemb4******** \ cr.yandex/yc/unified-agent
Другие способы установки агента описаны в разделе Установка и запуск Yandex Unified Agent.
-
-
Убедитесь, что метрики поступают в Yandex Monitoring:
-
На главной странице
сервиса Yandex Monitoring перейдите в раздел Обзор метрик. -
В строке запроса выберите:
- каталог, в который собираются метрики;
- значение метки
service=custom
; - имя метрики, начинающееся с префикса
haproxy
.
-