Флаги запуска

Тема дорожной карты · Prometheus

Prometheus — это система мониторинга и сбора метрик, которая позволяет пользователям настраивать поведение сервера при запуске с помощью аргументов командной строки. Эти флаги позволяют управлять поведением сервера во время выполнения и дополняют настройки, указанные в конфигурационном файле prometheus.yml. Важность использования флагов заключается в возможности быстрой и гибкой настройки поведения Prometheus без необходимости перезапуска сервера.

Основные флаги включают --config.file, который позволяет указать путь к конфигурационному файлу, --storage.tsdb.path, задающий каталог данных, --storage.tsdb.retention.time, настраивающий время хранения метрик (например, 15d), и --web.listen-address, задающий HTTP-адрес привязки. Дополнительно, флаг --web.enable-lifecycle включает HTTP-эндпоинты /-/reload и /-/quit для горячей перезагрузки конфигурации и корректного завершения работы. Размер хранилища можно ограничить с помощью --storage.tsdb.retention.size, который удаляет самые старые блоки данных при превышении лимита.

Команда ./prometheus --help выводит список всех доступных флагов с их значениями по умолчанию, а текущую действующую конфигурацию можно проверить во время выполнения через эндпоинт API /api/v1/status/flags.

Как это работает

Флаги запуска — это один Go-бинарь (prometheus). Запуск может быть осуществлен через официальный Docker-образ (prom/prometheus), Helm chart (kube-prometheus-stack — рекомендуется для Kubernetes), или через скачивание и настройку с использованием systemd. Конфигурация Prometheus обычно находится в файле prometheus.yml, который содержит секции global (scrape interval, evaluation interval), scrape_configs (что скрейпить), alerting (адрес Alertmanager), и rule_files (recording + alerting rules). Для горячей перезагрузки конфигурации без перезапуска сервера можно использовать команду kill -HUP <pid> или POST запрос к эндпоинту /-/reload, если флаг --web.enable-lifecycle был включен.

Когда применять

kube-prometheus-stack — это оптимальное решение для Kubernetes, которое пакетирует Prometheus, Alertmanager, Grafana, node-exporter и kube-state-metrics с разумными дефолтными настройками. Для не-k8s сред, рекомендуется использовать официальный Docker-образ с persistent volume и reverse proxy. Всегда запускайте Prometheus с флагом --storage.tsdb.retention.time=15d (или вашей собственной политикой), так как дефолтные значения могут быть изменены. Флаг --web.enable-lifecycle используется для горячей перезагрузки конфигурации.

Типичные ошибки

Типичные ошибки при использовании флагов запуска включают запуск Prometheus без persistent storage, что приводит к стиранию истории каждого рестарта; оставленный дефолтный retention времени 15d на системе с производительностью 1TB в день, что может привести к забитому диску; и экспозиция /metrics и Web UI в публичный интернет без аутентификации или reverse proxy с аутентификацией, что может привести к утечке информации.

Связанные понятия

Полезные ресурсы