global
屬於全局的默認配置,它主要包含 4 個屬性,node
global: scrape_interval: 15s # By default, scrape targets every 15 seconds. evaluation_interval: 15s # By default, scrape targets every 15 seconds. scrape_timeout: 10s # is set to the global default (10s). # Attach these labels to any time series or alerts when communicating with # external systems (federation, remote storage, Alertmanager). external_labels: monitor: 'codelab-monitor'
一般咱們能夠使用運行參數 -alertmanager.xxx
來配置 Alertmanager, 可是這樣不夠靈活,沒有辦法作到動態更新加載,以及動態定義告警屬性。mysql
因此 alerting
配置主要用來解決這個問題,它可以更好的管理 Alertmanager, 主要包含 2 個參數:sql
其代碼結構體定義爲:數據庫
// AlertingConfig configures alerting and alertmanager related configs. type AlertingConfig struct { AlertRelabelConfigs []*RelabelConfig `yaml:"alert_relabel_configs,omitempty"` AlertmanagerConfigs []*AlertmanagerConfig `yaml:"alertmanagers,omitempty"` // Catches all undefined fields and must be empty after parsing. XXX map[string]interface{} `yaml:",inline"` }
配置文件結構大概爲:數組
# Alerting specifies settings related to the Alertmanager. alerting: alert_relabel_configs: [ - <relabel_config> ... ] alertmanagers: [ - <alertmanager_config> ... ]
其中 alertmanagers 爲 alertmanager_config 數組memcached
rule_files
主要用於配置 rules 文件,它支持多個文件以及文件目錄。lua
其代碼結構定義爲:url
RuleFiles []string `yaml:"rule_files,omitempty"`
配置文件結構大體爲:code
rule_files: - "rules/node.rules" - "rules2/*.rules"
scrape_configs 主要用於配置拉取數據節點,每個拉取配置主要包含如下參數:server
remote_write
主要用於可寫遠程存儲配置,主要包含如下參數:
remote_read
主要用於可讀遠程存儲配置,主要包含如下參數:
在 Prometheus 的配置中,一個最重要的概念就是數據源 target,而數據源的配置主要分爲靜態配置和動態發現, 大體爲如下幾類:
Prometheus 的配置參數比較多,可是我的使用較多的是 global, rules, scrap_configs, statstic_config, rebel_config 等。
我平時使用的配置文件大體爲這樣:
global: scrape_interval: 15s # By default, scrape targets every 15 seconds. evaluation_interval: 15s # By default, scrape targets every 15 seconds. rule_files: - "rules/node.rules" scrape_configs: - job_name: 'prometheus' scrape_interval: 5s static_configs: - targets: ['localhost:9090'] - job_name: 'node' scrape_interval: 8s static_configs: - targets: ['127.0.0.1:9100', '127.0.0.12:9100'] - job_name: 'mysqld' static_configs: - targets: ['127.0.0.1:9104'] - job_name: 'memcached' static_configs: - targets: ['127.0.0.1:9150']