• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Prometheus监控系列七任务和

武飞扬头像
西岸Alex
帮助1

本文将对Prometheus的任务与实例进行介绍,阅读本文可以了解到如何通过配置任务实现对目标实例指标的获取。

一. 功能概述

任务与实例,是Prometheus监控中经常会提到的词汇。在其术语中,每一个提供样本数据的端点称为一个实例(instance),它可以是各种exporter,如node-exporter、mysql-exporter,也可以是你自己开发的一个服务。只要提供符合prometheus要求的数据格式 ,并允许通过HTTP请求获取信息的端点都可称为实例。而对于实例数据的采集,则是通过一个个任务(job)来进行管理,每个任务会管理一类相同业务的实例。

在前面"配置介绍“一文中,我们对Prometheus的配置文件promehteus.yml进行过讲解,其中scrape_configs模块即是管理任务的配置。

如下是Prometheus默认配置的Job,用于获取Prometheus自身的状态信息,这是一个格式最精简的Job。

  1.  
    scrape_configs:
  2.  
    - job_name: 'prometheus'
  3.  
    static_configs:
  4.  
    - targets: ['localhost:9090']

当Job生效后,我们可以在Prometheus的Targets页面看到相关的任务实例,其中Endpoint项代表该实例的采集地址;State项为实例状态,状态为UP表示可正常采集;Labels为实例所拥有的标签 ,标签会包含在获取到的所有时间序列中。

学新通

二. 配置参数

Job_name(任务名称)

Job_name定义了该job的名称,这会生成一个标签{job="xxx"},并插入到该任务所有获取指标的标签列中。如上面的Prometheus任务指标,我们可以在表达式浏览器中查询 {job="prometheus"},即可看到与该job相关的指标。

学新通

此外,Job也支持自定义标签的方式。如下所示,将在该Job获取的指标中添加{group="dev"}的标签。

  1.  
     
  2.  
    scrape_configs:
  3.  
    - job_name: 'prometheus'
  4.  
    static_configs:
  5.  
    - targets: ['localhost:9090']
  6.  
    labels:
  7.  
    group: 'dev'

配置完成后,重启Prometheus可看到标签 已生效。

学新通

 注意:修改Job后,只对新获取数据生效,原有数据不会有变化 。

static_configs(静态配置)

static_configs为静态配置,需要手动在配置文件填写target的目标信息,格式为域名/IP  端口号。当有多个目标实例时,书写格式如下 :

  1.  
    scrape_configs:
  2.  
    - job_name: 'myjob'
  3.  
    static_configs:
  4.  
    - targets:
  5.  
    - '192.168.0.1:9100'
  6.  
    - '192.168.0.2:9100'
  7.  
    - '192.168.0.3:9100'

Prometheus对于监控实例的加载,除了静态配置,还可以使用文件配置的方式。操作方式很简单,只需要在一个文件中填好相关的实例信息,然后在Job中加载该文件即可,文件的格式必须是yaml或json格式。

如:

  1.  
    $ vi /opt/prom/nodex-info.yml
  2.  
    - targets:
  3.  
    - '192.168.0.1:9100'
  4.  
    - '192.168.0.2:9100'
  5.  
    - '192.168.0.3:9100'

配置Job加载该文件

  1.  
    scrape_configs:
  2.  
    - job_name: 'myjob'
  3.  
    file_sd_configs:
  4.  
    - files:
  5.  
    - /opt/prom/nodex-info.yml

另外,Prometheus也支持基于kubernetes、DNS或配置中心的服务自动发现方式,这个会在后面的文档做介绍。

scrape_interval和scrape_timeout

scrape_interval代表抓取间隔,scrape_timeout代替抓取的超时时间,它们默认继承来global全局配置的设置。但如果有特殊需求,也可以对单个Job单独定义自己的参数。

示例:

  1.  
     
  2.  
    scrape_configs:
  3.  
    - job_name: 'myjob'
  4.  
    scrape_interval:15s
  5.  
    scrape_timeout: 10s
  6.  
    static_configs:
  7.  
    - targets: ['192.168.0.1:9100']

注意:scrape_timeout时间不能大于scrape_interval,否则Prometheus将会报错。

metric_path

指定抓取路径,可以不配置,默认为/metrics。

示例:

  1.  
    scrape_configs:
  2.  
    - job_name: 'myjob'
  3.  
    metric_path:/metrics
  4.  
    static_configs:
  5.  
    - targets: ['192.168.0.1:9100']

scheme

指定采集使用的协议,http或者https,默认为http。

示例:

  1.  
    scrape_configs:
  2.  
    - job_name: 'myjob'
  3.  
    scheme: http
  4.  
    static_configs:
  5.  
    - targets: ['192.168.0.1:9100']

params

某些特殊的exporter需要在请求中携带url参数,如Blackbox_exporter ,可以通过params进行相关参数配置。

示例:

  1.  
     
  2.  
    scrape_configs:
  3.  
    - job_name: 'myjob'
  4.  
    params:
  5.  
    module: [http_2xx]
  6.  
    static_configs:
  7.  
    - targets: ['192.168.0.1:9100']

basic_auth

默认情况下,exporter不需要账号密码即可获取到相关的监控数据。在某些安全程度较高的场景下,可能验证通过后才可获取exporter信息,此时可通过basic_auth配置Prometheus的获取exporter信息时使用的账密。

  1.  
    scrape_configs:
  2.  
    - job_name: 'myjob'
  3.  
    static_configs:
  4.  
    - targets: ['192.168.0.1:9100']
  5.  
    basic_auth:
  6.  
    username: alex
  7.  
    password: mypassword

专注于Devops运维相关的技术分享,欢迎关注个人公众号“运维老兵”。

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhifccfa
系列文章
更多 icon
同类精品
更多 icon
继续加载