Info
Content

Configuration/Configuration

https://prometheus.io/docs/prometheus/latest/configuration/configuration/


Prometheus настраивается через флаги командной строки и конфигурационный файл
Флагами указываются неизменяемые параметры
Конфигом настриваются джобы, инстансы, правила и прочее

./prometheus -h - покажет доступные флаги

Prometheus может релоадить конфигурацию во время работы. Если она нерабочая, то она не применится

Для инициализации релоада есть два пути:

  • Послать SIGHUP процессу
  • Послать POST запрос на эндпоинт /-/reload (но для этого должен быть включен флаг --web.enable-lifecycle)

Файлы с правилами также будут перезагружены


global:
  # How frequently to scrape targets by default.
  [ scrape_interval: <duration> | default = 1m ]

  # How long until a scrape request times out.
  [ scrape_timeout: <duration> | default = 10s ]

  # How frequently to evaluate rules.
  [ evaluation_interval: <duration> | default = 1m ]

  # The labels to add to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
    [ <labelname>: <labelvalue> ... ]

  # File to which PromQL queries are logged.
  # Reloading the configuration will reopen the file.
  [ query_log_file: <string> ]

# Rule files specifies a list of globs. Rules and alerts are read from
# all matching files.
rule_files:
  [ - <filepath_glob> ... ]

# A list of scrape configurations.
scrape_configs:
  [ - <scrape_config> ... ]

# Alerting specifies settings related to the Alertmanager.
alerting:
  alert_relabel_configs:
    [ - <relabel_config> ... ]
  alertmanagers:
    [ - <alertmanager_config> ... ]

# Settings related to the remote write feature.
remote_write:
  [ - <remote_write> ... ]

# Settings related to the remote read feature.
remote_read:
  [ - <remote_read> ... ]
  • <scrape_config> - эта секция определяет набор целей и параметров для них
    scrape_configs:
      - job_name: 'prometheus'
        static_configs:
        - targets: ['localhost:9090']
      - job_name: 'vandud'
        static_configs:
        - targets: ['two.vandud.ru:80','two.vandud.ru:9914']
    
    Цели могут указываться через static_configs или через какой-либо механиз service-discovery

  • <file_sd_config> - сервис дискавери основанный на файлах дает более общий способ конфигурирования статических целей используя кастомные механизмы sd
    Он читает набор файлов содержащих список static_config'ов
    Изменения в них будут применяться автоматически (релоадить не надо)
    Файлы могут быть в yaml или json формате
    - targets: [ - '<host>' ] labels: [ <labelname>: <labelvalue> ... ] 
    
    [ { "targets": [ "<host>", ... ], "labels": { "<labelname>": "<labelvalue>", ... } }, ... ]
    

  • <static_config> - позволяет перечислить список таргетов и общие для них лейблы
    # The targets specified by the static config.
    targets:
    [ - '<host>' ]
    
    # Labels assigned to all metrics scraped from the targets.
    labels:
    [ <labelname>: <labelvalue> ... ]
    

  • <alertmanager_config> - эта секция указывает в какие инстансы алертменеджера prometheus будет слать алерты
    Также тут задаются параметры для коммуникации между алертменеджерами и prometheus'ом
    Можно статически сконфигурировать через static_configs или использовать сервис дискавери механизмы

  • <remote_write>/<remote_read> - можно настраивать параметры подключения, аутентификацию и прочее
No Comments
Back to top