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@4829330363be
  build date:       20231004-10:31:16
  go version:       go1.21.1
  platform:         linux/amd64
  tags:             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 - 简单的字符串值;目前未使用
 



















