Prometheus 安装和配置

Prometheus的安装和配置

Linux环境下下载二进制分发包,解压后就安装完了。

1. 启动

解压后,在解压后的路径内执行命令./premetheus 即可以使用默认配置启动Prometheus应用。

默认使用的是同目录下的prometheus.yml文件

可以通过浏览器访问http://宿主机ip:9090 测试启动情况。

2. 配置

执行 prometheus 命令的时候可以通过参数 --config.file 来指定配置文件路径。Prometheus 服务运行过程中如果配置文件有改动,可以给服务进程发送 SIGHUP 信号来通知服务进程重新从磁盘加载配置。这样无需重启,避免了服务中断。

prometheus.yml 中的配置详解
  • <boolean>: 布尔值,true 或 false
  • <duration>: 持续时间,格式符合正则表达式 [0-9]+(ms|[smhdwy])
  • <labelname>: 标签名,格式符合正则表达式 [a-zA-Z_][a-zA-Z0-9_]*
  • <labelvalue>: 标签值,可以包含任意 unicode 字符
  • <filename>: 文件名,任意有效的文件路径
  • <host>: 主机,可以是主机名或 IP,后面可跟端口号
  • <path>: URL 路径
  • <scheme>: 协议,http 或 https
  • <string>: 字符串
  • <secret>: 密钥,比如密码
  • <tmpl_string>: 模板字符串,里面包含需要展开的变量
一个典型的配置
global:
  # 抓取间隔,默认为 1m
  [ scrape_interval: <duration> | default = 1m ]

  # 抓取超时时间,默认为 10s
  [ scrape_timeout: <duration> | default = 10s ]

  # 规则评估间隔,默认为 1m
  [ evaluation_interval: <duration> | default = 1m ]

# 抓取配置
scrape_configs:
  [ - <scrape_config> ... ]

# 规则配置
rule_files:
  [ - <filepath_glob> ... ]

# 告警配置
alerting:
  alert_relabel_configs:
    [ - <relabel_config> ... ]
  alertmanagers:
    [ - <alertmanager_config> ... ]
  • global 全局配置节点下的配置对所有其它节点都有效,同时也是其它节点的默认值。
  • rule_files 规则配置包含记录规则配置和告警规则配置,节点下只是列出文件,具体配置在各个文件中。记录规则配置接下来会讲,告警规则配置在后面的告警实验中会讲解。
  • alerting 告警配置用于 Alertmanager
抓取配置

抓取配置可以有多个,一般来说每个任务(Job)对应一个配置。单个抓取配置的格式如下:

# 任务名
job_name: <job_name>

# 抓取间隔,默认为对应全局配置
[ scrape_interval: <duration> | default = <global_config.scrape_interval> ]

# 抓取超时时间,默认为对应全局配置
[ scrape_timeout: <duration> | default = <global_config.scrape_timeout> ]

# 协议,默认为 http,可选 https
[ scheme: <scheme> | default = http ]

# 抓取地址的路径,默认为 /metrics
[ metrics_path: <path> | default = /metrics ]

# 抓取地址的参数
params:
  [ <string>: [<string>, ...] ]

# 是否尊重抓取回来的标签,默认为 false
[ honor_labels: <boolean> | default = false ]

# 静态目标配置
static_configs:
  [ - <static_config> ... ]

# 单次抓取的采样值个数限制,默认为 0,表示没有限制
[ sample_limit: <int> | default = 0 ]

honor_labels 表示是否尊重抓取回来的标签。当抓取回来的采样值的标签值跟服务端配置的不一致时,如果该配置为 true,则以抓取回来的为准。否则以服务端的为准,抓取回来的值会保存到一个新标签下,该新标签名在原来的前面加上了“exported_”,比如 exported_job。

要抓取的实例目标
static_configs 下配置了该任务要抓取的所有实例,按组配置,包含相同标签的实例可以分为一组,以简化配置。单个组的配置格式如下:

# 目标地址列表,地址由主机+端口组成
targets:
  [ - ‘<host>‘ ]

# 标签列表
labels:
  [ <labelname>: <labelvalue> ... ]

抓取目标可以是动态也可是静态的,此处讲的是静态抓取。

记录规则配置

记录规则允许我们把一些经常需要使用并且查询时计算量很大的查询表达式,预先计算并保存到一个新的时序。查询这个新的时序比从原始一个或多个时序实时计算快得多,并且还能够避免不必要的计算。在一些特殊场景下这甚至是必须的,比如仪表盘里展示的各类定时刷新的数据,数据种类多且需要计算非常快。

记录规则配置文件的格式如下:

groups:
  [ - <rule_group> ]

记录规则配置按组来组织,一个组下的所有规则按顺序定时执行。单个组的格式如下:

# 组名,在文件内唯一
name: <string>

# 规则评估间隔,默认为对应的全局配置
[ interval: <duration> | default = global.evaluation_interval ]

rules:
  [ - <rule> ... ]

每个组下包含多条规则,格式如下:

# 规则名称,也就是该规则产生的时序数据的度量指标名
record: <string>

# PromQL 查询表达式,表示如何得到采样值
expr: <string>

# 关联标签
labels:
  [ <labelname>: <labelvalue> ]

3. 使用

学会安装和配置之后,接下来我们通过使用 Prometheus 监控其自身来学习 它的基本用法。

配置 Prometheus 监控其自身

Prometheus 服务本身也通过路径 /metrics 暴露了其内部的各项度量指标,只需要把它加入到监控目标里就可以。

global:
  # 全局默认抓取间隔
  scrape_interval: 15s

scrape_configs:
  # 任务名
  - job_name: ‘prometheus‘

    # 本任务的抓取间隔,覆盖全局配置
    scrape_interval: 5s

    static_configs:
      # 抓取地址同 Prometheus 服务地址,路径为默认的 /metrics
      - targets: [‘localhost:9090‘]

配置完成后启动服务:

$ ./prometheus

可打开地址 http://主机名:9090/metrics 来确认是否有抓取到数据。

抓取prometheus自身的监控指标

prometheus_target_interval_length_seconds 这个度量指标的含义是实际抓取目标时的间隔秒数。可以使用表达式 prometheus_target_interval_length_seconds{quantile="0.99"} 来查询 0.99 分位线的采样值,也就是小于这个采样值的数量低于总数的99%。使用表达式 count(prometheus_target_interval_length_seconds) 可以查询到该度量指标包含的时序个数。关于查询表达式的更多语法后续实验会讲到。

作者:小孩真笨
链接:https://www.jianshu.com/p/bedd169676b6
来源:简书

原文地址:https://www.cnblogs.com/yx88/p/11291690.html

时间: 2024-08-30 18:31:35

Prometheus 安装和配置的相关文章

Prometheus安装和配置node_exporter监控主机

Node_exporter是可以在* Nix和Linux系统上运行的计算机度量标准的导出器. Node_exporter 主要用于暴露 metrics 给 Prometheus,其中 metrics 包括:cpu 的负载,内存的使用情况,网络等. 官方下载地址:https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz 1.安装Node_

prometheus安装

使用docker安装 vi prometheus.yml global: scrape_interval: 15s # By default, scrape targets every 15 seconds. # Attach these labels to any time series or alerts when communicating with # external systems (federation, remote storage, Alertmanager). externa

Windows下MySQL下载安装、配置与使用

用过MySQL之后,不论容量的话,发现比其他两个(sql server .oracle)好用的多,一下子就喜欢上了.下面给那些还不知道怎么弄的童鞋们写下具体的方法步骤. (我这个写得有点太详细了,甚至有些繁琐,有很多步骤在其他的教程文档里都是省略掉的,但我还是要写出来,因为我当时走了很多弯路,我希望你们能够避免我走的这些弯路.当然,知道同学的可以略过,选择你想知道的地方看) 第一大步:下载.(不需要注册也可以下载,直接点下面的no thanks) a.俗话说:“巧妇难为无米之炊”嘛!我这里用的是

Centos 7.3下 Linux For SQL Server安装及配置介绍

Centos 7.3下Linux For SQL Server安装及配置介绍 说到SQL Server服务,我们大家都知道是Microsoft公司的数据库服务,当然说到数据库,现在主要分为三大商:1:Oracle.2:Msql Server.3:Mysql:三种数据库在当下环境受到不了不同程度的关注:比如oracle主要应用到大型的商业比较多,比如银行:SQL Server主要在常见的互联网公司使用:mysql主要应用于小型的企业或者服务商使用:当然从费用上来说,Oracle是最贵的,也是最为稳

redis的单机安装与配置以及生产环境启动方案

简单介绍一下redis的单机安装与配置,方便自己记录安装步骤的同时方便他人获取知识. 首先,从官网下载最新版的(稳定版)的redis安装包.官网地址如下:https://redis.io/download 下载源码包后,redis需要编译安装.需要安装gcc和tcl,gcc用于编译tcl用于测试. 使用命令安装gcc,yum install gcc,一路选择yes,gcc就可以安装成功. 接下来安装tcl,首先获取tcl源码包(见百度云盘)或者使用命令:wget http://downloads

Tomcat安装与配置

进行Tomcat的安装与配置,得要jdk的支持,jdk的安装与配置就不说了,毕竟学Java第一步就是这个,所以以下步骤是已有jdk的情况下进行的 首先进入Tomcat的官网http://tomcat.apache.org/,会出现左侧Download一栏,选择自己需要的Tomcat版本,这里我选择的是Tomcat 7 点击进入后到达如下界面,选择自己所对应的系统下载对应的zip包(个人感觉下载zip包简介一点,当然也可以下载可执行文件) 注意下载到哪个地方,下载完成后得到压缩包 对此压缩包进行解

MongoDB 3.2 在CentOS 上的安装和配置

MongoDB 3.2 在CentOS 上的安装和配置 2016-01-06 14:41:41 发布 您的评价:       0.0   收藏     0收藏 一.安装 编辑/etc/yum.repos.d/mongodb-org-3.2.repo [mongodb-org-3.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/ gpg

Keepalived安装与配置

一.简介 Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层.第4层和第7层交换机的功能.主要提供loadbalancing(负载均衡)和 high-availability(高可用)功能,负载均衡实现需要依赖Linux的虚拟服务内核模块(ipvs),而高可用是通过VRRP协议实现多台机器之间的故障转移服务. 上图是Keepalived的功能体系结构,大致分两层:用户空间(user space)和内核空间(kernel space

Linux下Nagios的安装与配置[转]

一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios原名为NetSaint,由Ethan Galstad开发并维护至今.NAGIOS是一个缩写形式: "Nagios Ain't Gonna Insist On Sainthood" Sainthood 翻译为圣徒