• 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']
     
  • 相关阅读:
    Windows 环境下配置 git bash 的 HOME 默认路径
    SQL Server 2008 r2 输入SQL语句不能自动提示的解决办法
    搭建调用 WebService 的 ASP.NET 网站 (VS2010, C#)
    【问题解决】线程间操作无效:从不是创建控件“textBox1”的线程访问它
    使用 hexdump dump 文件内容
    调用 WebService 浏览器提示 500 (Internal Server Error) 的原因及解决办法
    PHP的文件格式应该以UTF-8无BOM编码
    继电器电路
    ROS零门槛教程系列(二)——Linux常用指令:mkdir、tar、 unzip、cp、scp、mv、rm、find、apt、ssh
    ROS零门槛教程系列(一)——ubuntu安装
  • 原文地址:https://www.cnblogs.com/guxiaobei/p/8547660.html
Copyright © 2020-2023  润新知