Поставка метрик HAProxy и других сторонних приложений
Yandex Unified Agent поддерживает сбор метрик в формате Prometheus и конвертацию метрик в формат Yandex Monitoring. При помощи Unified Agent вы сможете собирать метрики любых приложений, которые предоставляют метрики в формате Prometheus.
Для поставки в Yandex Monitoring метрик сторонних приложений используется вход metrics_pull, который периодически опрашивает напрямую стороннее приложение (если оно поддерживает метрики в формате Prometheus) или специальное приложение-экспортер, реализующее интеграцию с Prometheus.
Для примера рассмотрим поставку в Yandex Monitoring метрик HAProxy
Пример поставки метрик HAProxy
Описанная методика может также применяться для отправки метрик любых сторонних приложений, для которых существует интеграция с Prometheus
-
Установите HAProxy
и HAProxy Exporter for Prometheus .-
Для установки HAProxy и HAProxy Exporter for Prometheus выполните следующую команду:
sudo apt install haproxy prometheus-haproxy-exporter
-
Убедитесь, что экспортер запущен и предоставляет метрики. Для этого выполните команду
curl http://localhost:9101/metrics
. Пример работы команды:curl http://localhost:9101/metrics # HELP go_gc_duration_seconds A summary of the GC invocation durations. # TYPE go_gc_duration_seconds summary go_gc_duration_seconds{quantile="0"} 0 go_gc_duration_seconds{quantile="0.25"} 0 go_gc_duration_seconds{quantile="0.5"} 0 go_gc_duration_seconds{quantile="0.75"} 0 go_gc_duration_seconds{quantile="1"} 0 go_gc_duration_seconds_sum 0 go_gc_duration_seconds_count 0 # HELP go_goroutines Number of goroutines that currently exist. # TYPE go_goroutines gauge go_goroutines 6 # HELP go_info Information about the Go environment. # TYPE go_info gauge go_info{version="go1.10.4"} 1
-
-
Настройте сервисный аккаунт, от имени которого будут записываться метрики в Yandex Monitoring.
-
Создайте сервисный аккаунт в каталоге, куда будут записываться метрики и назначьте ему роль
monitoring.editor
. -
Привяжите сервисный аккаунт к виртуальной машине, на которой установлен Unified Agent.
-
-
Установите и настройте Yandex Unified Agent:
-
Создайте в домашнем каталоге файл config.yml.
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:9101/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
.
-