script_exporter


  • Репозиторий: script_exporter

  • Документация: Доступна в репозитории (по использованию экспортера и дополнительные примеры кастомных скриптов)

Экспортер представляет собой бинарный файл, который может быть запущен как процесс или как сервис.

Запуск через агент мониторинга

Для запуска экспортера через агент необходимо:

  1. Скопировать бинарник экспортера в папку exporters (папка задается полем exporters.directory в конфигурации агента)

  2. Скопировать конфигурационный файл в папку, указанную в аргументах запуска экспортера

  3. Скопировать файлы кастомных скриптов в папку, указанную в конфигурации экспортера (успешно протестированы shell-скрипты и Go-бинарники)


Описание работы

Экспортер представляет собой стандартный Prometheus экспортер с HTTP-сервером для отображения метрик. Он содержит:

  • Эндпойнт /metrics со стандартными метриками (go, proc, promhttp)

  • Отдельные эндпойнты для каждого кастомного скрипта

Основные метрики экспортера

Метрика (пример значения)

Описание

scripts_duration_seconds (scripts_duration_seconds{script="ping",quantile="1"} 2.062227309)

Длительность выполнения скриптов по квантилям

scripts_duration_seconds_count (scripts_duration_seconds_count{script="ping"} 89)

Количество запусков скрипта

scripts_requests_total (scripts_requests_total{script="ping"} 89 )

Общее количество запусков скрипта

Метрики выполнения скриптов

Эндпойнты запуска скриптов имеют формат: /probe?script=имя_скрипта&параметры, где имя_скрипта и параметры, например, ping и prefix=test&params=target&target=ya.ru, соответственно.

Метрика (пример значения)

Описание

script_success (script_success{script="ping"} 1)

Статус выполнения скрипта (1/0)

script_duration_seconds (script_duration_seconds{script="ping"} 2.026552)

Время выполнения конкретного запуска

script_exit_code (script_exit_code{script="ping"} 0)

Код завершения скрипта


Настройка запуска через агент мониторинга

Раздел exporters

exporters:
  - name: script-exporter
    is_custom: true
    args: "--config.file=/etc/astra-monitoring/script-exporter.yml"
  • name- должно совпадать с именем бинарного файла (например, astramon-script_exporter-custom)

  • is_custom- указывает, что это сторонний экспортер, но агент может управлять им (запускать, делать health check, останавливать и сообщать статус работы экспортера в Config API)

  • args- путь к конфигурационному файлу

Раздел metrics

metrics:
  - name: script_exporter_1
    component: script-exporter1
    target: 127.0.0.1:9469
    metrics_path: /probe?script=show_metrics
    scrape_interval: 30s
  • name- уникальное имя (требование vmagent)

  • component- лейбл для группировки метрик

  • target- адрес и порт экспортера

  • metrics_path- эндпойнт для сбора метрик

  • scrape_interval - интервал опроса (если отличается от общего)


Пример использования

Кастомный скрипт

#!/bin/sh

random_number=$((1 + RANDOM % 100))

echo "# HELP test_output_for_custom_metrics"
echo "# TYPE test_output_for_custom_metrics gauge"
echo "test_output_for_custom_metrics{} $random_number"

Последовательность действий

  1. Сохранить скрипт как show_metrics.sh в папке exporters

  2. Дать права на выполнение: chmod +x show_metrics.sh

  3. Добавить в конфигурацию экспортера:

scripts:
  - name: show_metrics
    command: /etc/astra-monitoring/exporters/show_metrics.sh

Доступность метрик

После запуска метрики будут доступны по адресу:
http://localhost:9469/probe?script=show_metrics


Особенности запуска на Windows

  1. Рекомендуется запускать экспортер как службу Windows

  2. Поддерживаются только исполняемые файлы (.exe)

  3. Скрипты (bat, vbs, powershell) не поддерживаются

  4. Настройка сбора метрик идентична Linux-версии