Prometheus-Prometheus安装及其配置
- Prometheus安装
- 下载
- 解压
- 配置
- 启动prometheus
- 校验配置文件
- 表达式浏览器
Prometheus安装
Prometheus的安装针对Linux的安装,其他的安装方式可以查看Prometheus官网
下载
sudo wget https://github.com/prometheus/prometheus/releases/download/v2.47
.1/prometheus-2.47.1.linux-amd64.tar.gz
解压
sudo tar -zxvf prometheus-2.47.1.linux-amd64.tar.gz
解压之后的目录如下:
解压之后,我们可以将prometheus命令拷贝到/usr/local/bin下
sudo cp prometheus-2.47.1.linux-amd64/prometheus /usr/local/bin/
查看是否安装成功:
$ prometheus --version
prometheus, version 2.47.1 (branch: HEAD, revision: c4d1a8beff37cc004f1dc4ab9d2e73193f51aaeb)build user: root@4829330363bebuild date: 20231004-10:31:16go version: go1.21.1platform: linux/amd64tags: netgo,builtinassets,stringlabels
输入版本信息,说明安装成功!
配置
在安装完prometheus之后,我们之前解压的目录中有一个prometheus.yaml文件,这个是prometheus的相关配置文件。Prometheus通过YAML文件来配置。Prometheus自带默认的配置文件prometheus.yml,内容如下:
# 控制Prometheus服务器行为的全局配置
global:scrape_interval: 15s # 指定应用程序或服务抓取数据的时间间隔(默认是15秒)。这个值是时间序列的颗粒度, 即该序列中每个数据点所覆盖的时间段。evaluation_interval: 15s # 指定Prometheus评估规则的频率。目前主要有两种规则: 记录规则(recording rule)和警报规则(alerting rule)# scrape_timeout is set to the global default (10s).# 用来设置Prometheus的警报
alerting:alertmanagers:- static_configs: #表示要手动指定在targets数组中配置的Alertmanager- targets:# - alertmanager:9093# 指定包含记录规则或警报规则的文件列表
rule_files:# - "first_rules.yml"# - "second_rules.yml"# 指定Prometheus抓取的所有目标
scrape_configs:# 作业prometheus只有一个监控目标: Prometheus服务器自身。 它从本地的9090端口抓取数据并返回服务器的健康指标- job_name: "prometheus"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["localhost:9090"]
- 记录规则: 允许预先计算使用频繁且开销大的表达式, 并将结果保存为一个新的时间序列数据。
- 警报规则: 允许定义警报条件
- 警报是由名为Alertmanager的独立工具进行管理的。 Alertmanager是一个可以集群化的独立警报管理工具
启动prometheus
我们可以将默认的配置文件拷贝到/etc相关目录下进行统一管理
$ sudo mkdir /etc/prometheus
/usr/local/prometheus/prometheus-2.47.1.linux-amd64$ sudo cp prometheus.yml /etc/prometheus/
我们启动的时候就可以通过–config.file选项进行指定对应的配置文件
$ /usr/local/prometheus$ sudo prometheus --config.file "/etc/prometheus/prometheus.yml"
我们可以访问http://localhost:9090/metrics进行查看
有上面的截图可用看到相关的指标信息
go_gc_duration_seconds{quantile="0.5"} 0.000321623
指标的名称是go_gc_duration_seconds
, 里面有一个标签quantile="0.5"
, 表示这衡量的是第50 百分位数
, 0.000321623
是这个指标的值
校验配置文件
我们在解压文件中promtool工具,可以通过promtool进行检验配置文件是否正确
$ sudo ./promtool check config prometheus.yml
证明相关的配置文件是可用的。
表达式浏览器
prometheus默认给我提供了一个表达式地址,默认为http://localhost:9090/graph,访问如下:
可以通过Prometheus表达式浏览器和Web界面看到其他有用的信息, 例如目标的状态以及Prometheus服务器的规则和配置。
我们可用搜索对应的指标,如下我们搜索go_gc_duration_seconds
的指标
默认是Table
的展示形式,我们展示图标的方式,就是Graph
go_gc_duration_seconds{instance="localhost:9090", job="prometheus", quantile="0.5"}
第一个新标签instance是我们抓取指标的目标, 第二个标签job则是抓取指标的作业名称。 标签为指标提供了不同的维度, 允许我们查询或使用单个/多个指标。
在进行查询的时候,prometheus也为我们提供了PromQL表达式语言进行查询相关指标。
PromQL查询语言中的表达式可以返回的四种数据类型
- Instant vector - 一组时间序列,包含每个时间序列的单个样本,所有时间序列共享相同的时间戳
- Range vector - 一组时间序列,其中包含每个时间序列随时间变化的数据点范围
- Scalar - 一个简单的数字浮点值
- String - 简单的字符串值;目前未使用