• promtheus 配置文件


    全局配置

    global 属于全局的默认配置,它主要包含 4 个属性,

    • scrape_interval: 拉取 targets 的默认时间间隔。
    • scrape_timeout: 拉取一个 target 的超时时间。
    • evaluation_interval: 执行 rules 的时间间隔。
    • external_labels: 额外的属性,会添加到拉取的数据并存到数据库中。
    • 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, 但是这样不够灵活,没有办法做到动态更新加载,以及动态定义告警属性。

    所以 alerting 配置主要用来解决这个问题,它能够更好的管理 Alertmanager, 主要包含 2 个参数:

    • alert_relabel_configs: 动态修改 alert 属性的规则配置。
    • alertmanagers: 用于动态发现 Alertmanager 的配置。

    其代码结构体定义为:

    // 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 数组

    规则配置

    rule_files 主要用于配置 rules 文件,它支持多个文件以及文件目录。

    其代码结构定义为:

    RuleFiles      []string        `yaml:"rule_files,omitempty"`
    

    配置文件结构大致为:

    rule_files:
      - "rules/node.rules"
      - "rules2/*.rules"


    数据拉取配置

    scrape_configs 主要用于配置拉取数据节点,每一个拉取配置主要包含以下参数:

    • job_name:任务名称
    • honor_labels: 用于解决拉取数据标签有冲突,当设置为 true, 以拉取数据为准,否则以服务配置为准
    • params:数据拉取访问时带的请求参数
    • scrape_interval: 拉取时间间隔
    • scrape_timeout: 拉取超时时间
    • metrics_path: 拉取节点的 metric 路径
    • scheme: 拉取数据访问协议
    • sample_limit: 存储的数据标签个数限制,如果超过限制,该数据将被忽略,不入存储;默认值为0,表示没有限制
    • relabel_configs: 拉取数据重置标签配置
    • metric_relabel_configs:metric 重置标签配置

    远程可写存储

    remote_write 主要用于可写远程存储配置,主要包含以下参数:

    • url: 访问地址
    • remote_timeout: 请求超时时间
    • write_relabel_configs: 标签重置配置, 拉取到的数据,经过重置处理后,发送给远程存储

    远程可读存储

    remote_read 主要用于可读远程存储配置,主要包含以下参数:

    • url: 访问地址
    • remote_timeout: 请求超时时间

    服务发现

    在 Prometheus 的配置中,一个最重要的概念就是数据源 target,而数据源的配置主要分为静态配置和动态发现, 大致为以下几类:

    • static_configs: 静态服务发现
    • dns_sd_configs: DNS 服务发现
    • file_sd_configs: 文件服务发现
    • consul_sd_configs: Consul 服务发现
    • serverset_sd_configs: Serverset 服务发现
    • nerve_sd_configs: Nerve 服务发现
    • marathon_sd_configs: Marathon 服务发现
    • kubernetes_sd_configs: Kubernetes 服务发现
    • gce_sd_configs: GCE 服务发现
    • ec2_sd_configs: EC2 服务发现
    • openstack_sd_configs: OpenStack 服务发现
    • azure_sd_configs: Azure 服务发现
    • triton_sd_configs: Triton 服务发现

    配置样例

    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']
     
  • 相关阅读:
    MinGW-编译器
    Enum , Enum Class ?
    C++编译器之间的不同性能
    交叉验证
    经验风险最小化-结构风险最小化
    图像卷积
    pytorch官网上两个例程
    ORB feature(O for orientation)
    Catalan数
    无责任共享 Coursera、Udacity 等课程视频(转载)
  • 原文地址:https://www.cnblogs.com/guxiaobei/p/8547660.html
Copyright © 2020-2023  润新知