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']