3.认识Prometheus的Web UI

本文介绍了Prometheus的Web UI界面,包括访问方式、主要页面如Alerts、Graph、Status和Help的功能详解,以及如何在Web UI上查询指标、查看告警信息和系统状态。在实际工作中,Prometheus常与Grafana结合,用于数据可视化。

平凡也就两个字: 懒和惰;
成功也就两个字: 苦和勤;
优秀也就两个字: 你和我。
跟着我从0学习JAVA、spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美!
关注微信公众号【 IT特靠谱 】,每天都会分享技术心得~ 

1.认识Prometheus的Web UI界面

1.1.访问Web UI界面

        启动Prometheus服务后,我们可访问Prometheus自带的Web UI界面。

        自带的Web UI访问地址为:http://ip:port/graph

 1.2.认识Web UI界面

        Prometheus内置一个简单的Web控制台。Web控制台页面主要包含4个子页面:

(1)Alerts页面

        告警规则和告警信息页面。可查看告警规则和正在进行的不同状态的告警信息。

(2)Graph页面

        指标查询和图形化展示页面。可查询PromeQL表达式值,以图表或折线图的方式进行可视化展示。

(3)Status页面

        状态页面。可查看Prometheus运行和构建信息、TSDB时序数据库状态、命令行标志、系统配置、规则、Targets和Service Discovery等。

(4)Help页面

        帮助页面。可直接打开Prometheus官方文档(Prometheus官方帮助文档)。

        

        在Web UI控制台上,我们可以:

(1)查询指标。

(2)以图表或折线图的方式展示查询的指标值。

(3)查看告警信息。如:告警规则和告警状态。

(4)查看系统状态信息。如:Prometheus运行和构建信息、TSDB时序数据库状态、命令行标志、系统配置、规则、Targets和Service Discovery。

        实际工作中,我们通常搭配Grafana或自研的Web UI作为可视化工具进行使用。Prometheus作为Grafana或自研Web UI的数据源,Gragana或Web UI可视化工具显示的指标数据通过Prometheus提供的HTTP API接口进行查询获取。

1.2.1.Alerts页面

(1)告警状态

        上图表示系统中总共配置有4条告警规则:target_down_alert、hostCpuUsageAlert、hostMemUsageAlert 和hostDiskUsageAlert。其中标签为{instance="other-prometheus", job="other-prometheus-job"}的target实例触发了target_down_alert告警规则。

        Prometheus告警规则的状态有三种:

告警规则的状态状态
Inactive

非活动状态。

表示正在监控,但是还未有触发任何告警。若触发告警,则将状态转为Pending。

Pending

正在告警,且暂未将警报发送到AlertManager。

由于警报可以被分组、压抑/抑制或静默/静音,所以等待验证,一旦所有的验证都通过,则将转到 Firing状态。

Firing

正在告警,且已将警报发送到AlertManager。

它将按照配置将警报的发送给所有接收者。一旦警报解除,则将状态转到Inactive,如此循环。

(2)筛选框

        可以根据规则名称和标签过滤并查看告警规则。

(3)告警规则信息

        展开具体的告警规则,可以查看到“/etc/prometheus/rule.yml”规则配置文件中配置的规则信息。

(4)正在进行的告警记录

        若某些target满足了某告警规则的触发条件,则可展开该告警规则,查看到哪些标签的target触发了告警(Labels)、查看告警状态(State)、告警开始时间(Active Since)、告警规则表达式计算的值(Value)。

        若勾选了“Show annotations”选项,则在告警下可以查看到替换占位变量(如:{{ $labels.instance }} )后的描述信息,如:

1.2.2.Graph页面

(1)功能选项开关

功能选项描述
Use local time使用当地时间
Enable query history开启查询历史
Enable auto complete开启自动提交
Enable highlighting开启高亮显示
Enable linter开启提示功能

(2)PromQl表达式输入框

        可在此输入框中输入任意的PromQL表达式,点击“Execute”按钮即可查询表达式的结果。

(3)格式化PromQL表达式按钮

        点击该按钮,即可格式化或美化输入的PromQL表达式。实际调用的是“/api/v1/format_query”API接口。

(4)查看所有指标名按钮

        点击该按钮,即可查看Promtheus时序数据库中的所有指标名称。实际调用的是“/api/v1/label/__name__/values”API接口。

(5)表格或图形化展示区域

        可对PromQL表达式的结果按表格或曲线图的方式进行展示。

        Table表格可以展示PromQL表达式为即时向量和范围向量结果集;但是Graph曲线图仅能展示PromQL表达式为即时向量的结果集

1.2.3.Status页面

        Status页面可以查看系统的状态信息,包括:Prometheus运行和构建信息、TSDB时序数据库状态、命令行标志、系统配置、规则、Targets和Service Discovery

(1)Runtime & Build Information

        可查看Prometheus运行时信息(Prometheus启动时间、配置加载状态和存储数据的保留天数等)、构建信息(Prometheus版本、分支和构建人信息等)、告警管理器。

(2)TSDB Status

        可查看TSDB时序数据库的状态信息(时序的数量、标签对的数量等)、对的TOP10统计信息(前10的标签名称、前10的指标名称,内存占用前10的标签、前10的标签键值对)等。

(3)Command-Line Flags

        可查看系统的所有命令行标志参数值。

        查看所有的命令标志的帮助命令:进入容器的“/bin”下执行“./prometheus -h。帮助信息中可以看到所有命令行标志参数及参数描述。

        所有命令行标志参数都有一个默认值,我们可以在启动Prometheus服务的时候修改某些命令行标志参数值,如:

#启动prometheus服务
./bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/prometheus

(4)Configuration

        可查看所有已生效的配置信息。其中“basic_auth.password”进行了脱敏显示,其它参数原样显示。

        该配置信息来源于“--config.file=/etc/prometheus/prometheus.yml”命令行标志参数指定的prometheus.yml配置文件中。具体如何配置,后面章节详细介绍!

        本示例中,prometheus.yml配置内容如下:

# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  - "/etc/prometheus/rule.yml"
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus"
    basic_auth:
      username: admin
      password: abc123
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.

    static_configs:
      - targets: ["localhost:9090"]
  - job_name: other-prometheus-job
    honor_timestamps: true
    scrape_interval: 15s
    scrape_timeout: 10s
    metrics_path: /metrics
    scheme: http
    basic_auth:
      username: admin
      password: abc123
    follow_redirects: true
    static_configs:
    - targets:
      - 10.17.0.80:39093
      labels:
        instance: other-prometheus

(5)Rules

        可查看系统中已配置的所有规则信息。

         规则配置文件路径通过“/etc/prometheus/prometheus.yml”配置文件中的“rule_files”参数指定。系统会每隔“evaluation_interval”时间计算一次规则表达式值,并根据规则文件的持续时间规则判断是否触发了告警规则,判断哪些实例触发了告警规则,若触发告警规则则进行告警状态变更和告警信息通知。

         本示例的规则文件(Rule.yml)内容如下:

groups:
# 报警组组名称
- name: hostStatsAlert
  #报警组规则
  rules:
  #告警名称,需唯一
  - alert: target_down_alert
    #promQL表达式
    expr: sum_over_time(up[1m]) == 0
    #满足此表达式持续时间超过for规定的时间才会触发此报警
    for: 1m
    labels:
      #严重级别
      severity: page
    annotations:
      #发出的告警标题
      summary: "摘要:实例 {{ $labels.instance }} 宕机了"
      #发出的告警内容
      description: "描述:实例{{ $labels.instance }} 宕机了"
  - alert: hostCpuUsageAlert
    #promQL表达式
    expr: sum(avg without (cpu)(irate(node_cpu_seconds_total{mode!='idle'}[5m]))) by (instance) > 0.85
    #满足此表达式持续时间超过for规定的时间才会触发此报警
    for: 1m
    labels:
      #严重级别
      severity: page
    annotations:
      #发出的告警标题
      summary: "实例 {{ $labels.instance }} CPU 使用率过高"
      #发出的告警内容
      description: "实例{{ $labels.instance }} CPU 使用率超过 85% (当前值为: {{ $value }})"
  - alert: hostMemUsageAlert
    expr: (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes)/node_memory_MemTotal_bytes > 0.85
    for: 1m
    labels:
      severity: page
    annotations:
      summary: "实例 {{ $labels.instance }} 内存使用率过高"
      description: "实例 {{ $labels.instance }} 内存使用率 85% (当前值为: {{ $value }})"
  - alert: hostDiskUsageAlert
    expr: ((node_filesystem_size_bytes - node_filesystem_free_bytes ) / node_filesystem_size_bytes ) > 0.30
    for: 5m
    labels:
      severity: middle
    annotations:
      summary: "实例 {{ $labels.instance }} 磁盘空间使用率过高"
      description: "实例 {{ $labels.instance }},挂载点:{{ $labels.mountpoint }} 磁盘空间使用率 30% (当前值为: {{ $value }})"

(6)Targets

        可查看当前Prometheus服务监控的各个Target的信息(如:Endpoint、状态、标签、上次pull抓取数据时间,抓取数据耗时,抓取数据时异常信息等)。

        展示的所有Target均来自于prometheus.yml中的“scrape_configs”参数或“file_sd_config”参数配置targets。其中“scrape_configs”参数可配置静态的targets,“file_sd_config”参数可从其它yml或json文件中读取动态配置的targets。

(7)Service Discovery

        可查看Prometheus服务发现的所有job,和每隔job下的targets信息。

1.2.4.Help页面

        点击“Help”图标,即可跳转至Prometheus官网文档(Prometheus官网文档)。

        可在官网文档中找到如何安装Prometheus、如何配置Prometheus、PromQL语法规则和HTTP API信息等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT_Most

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值