博客
关于我
5分钟了解Prometheus
阅读量:419 次
发布时间:2019-03-06

本文共 2250 字,大约阅读时间需要 7 分钟。

Prometheus系统监控工具包

1. 概述

Prometheus是一个开源的系统监控和警报工具包,自2012年启动以来,已成为现代云原生应用监控的主流选择。作为独立的开源项目,Prometheus不受任何公司的控制,拥有活跃的开发者和用户社区。2016年,它成为云原生计算基金会的第二个托管项目,仅次于Kubernetes。

1.1 Prometheus的主要特性

Prometheus采用多维数据模型,支持指标名称和标签(key/value pairs)共同定义时间序列数据。其灵活的PromQL查询语言使用户能方便地聚合和分析数据。以下是其关键特性:

  • 多维数据模型:指标名称加标签标识时间序列,支持复杂的数据聚合。
  • PromQL查询语言:功能强大,支持多种数据操作和聚合。
  • 节点自治:不依赖分布式存储,每个节点独立运行。
  • HTTP主动拉取:通过Pull模型收集时间序列数据。
  • 支持Push模型:可通过中间网关实现数据推送。
  • 目标发现:通过服务发现或静态配置自动识别监控目标。
  • 多种仪表盘支持:可与Grafana等工具集成,提供直观的可视化界面。

1.2 Prometheus的组件

Prometheus的组件结构清晰,包括:

  • Prometheus server:核心组件,负责数据收集和存储。
  • Client libraries:用于从应用程序代码中收集指标数据。
  • Push gateway:支持短期作业的数据推送。
  • Exporters:与第三方工具(如HAProxy)集成。
  • Alertmanager:负责告警处理和通知。
  • 其他工具:如数据聚合器、监控助手等。

大多数组件采用Go语言开发,支持静态二进制文件部署,安装简单高效。

1.3 Prometheus的架构

Prometheus的架构采用分布式设计,支持高可用性和负载均衡。主要流程包括:

  • 数据收集:通过HTTP Pull或Push Gateway获取时间序列数据。
  • 数据存储:本地存储样本数据,支持时间序列聚合和告警生成。
  • 数据可视化:可通过PromQL查询并与Grafana等工具集成。

2. 基本概念

2.1 数据模型

Prometheus将所有数据存储为时间序列,一个时间序列由指标名称和标签唯一标识。标签可用于过滤和聚合数据。

  • 指标名称:规范为 /[a-zA-Z_]:[a-zA-Z0-9_]*,如http_requests_total表示HTTP请求数量。
  • 标签:名称规范为 /[a-zA-Z_][a-zA-Z0-9_]*,值可包含任意Unicode字符。

2.2 指标类型

Prometheus支持多种指标类型,包括:

  • 计数器(Counter):记录单调递增的计数值,适用于服务请求数、错误数等。
  • 计量器(Gauge):支持动态值变化,适用于温度、内存使用等实时指标。
  • 直方图(Histogram):记录分布数据,适用于请求时间、响应大小等。
  • 摘要(Summary):支持分位数统计,适用于请求速率等分布数据。

2.3 作业与实例

Prometheus将相同目的的实例归类为作业。例如,一个API Server job包含4个实例(1.2.3.4:5670和5.6.7.8:5670)。Prometheus在抓取时自动添加jobinstance标签,便于数据管理和查询。

3. 快速开始

3.1 下载与安装

Prometheus需要下载并安装服务器和exporter组件。以下步骤示例:

# 下载Prometheuscurl -sLO https://github.com/prometheus/prometheus/releases/download/v2.47.0/prometheus-2.47.0-linux-64.tar.gz# 安装并运行./prometheus --config.file=prometheus.yml

3.2 配置

Prometheus的配置文件(YAML格式)定义抓取目标和规则。以下示例配置文件:

global:  scrape_interval: 15s  external_labels:    monitor: 'codelab-monitor'scrape_configs:  - job_name: prometheus    scrape_interval: 5s    static_configs:      - targets: ['localhost:9090']

3.3 查询

Prometheus提供PromQL查询语言,支持多种操作如聚合、过滤和计算。以下示例查询:

http_requests_total{method="GET"}[5m]sum(rate(http_requests_total[5m]) by (job))

Prometheus支持多种数据类型和运算符,可根据需求灵活组合。

4. Grafana支持

Grafana是Prometheus的广泛使用可视化工具,可通过Prometheus数据源配置指标面板。以下是创建Grafana面板的示例步骤:

  • 配置数据源:在Grafana中添加Prometheus数据源,配置地址和口令。
  • 创建面板:选择适当的时间范围和数据查询,生成图表。
  • 自定义布局:调整面板样式和布局,以满足监控需求。
  • 通过Prometheus和Grafana的强大结合,用户可以创建高效的监控和报警系统,适应各种应用场景。

    转载地址:http://clqkz.baihongyu.com/

    你可能感兴趣的文章
    pageHelper分页技术
    查看>>
    PageHelper分页查询遇到的小问题
    查看>>
    SpringBoot中配置为开发模式,代码修改后不用重新运行
    查看>>
    springboot中pom.xml、application.yml、application.properties
    查看>>
    PageHelper:上手教程(最详细)
    查看>>
    PageOffice如何实现从零开始动态生成图文并茂的Word文档
    查看>>
    PageRank算法
    查看>>
    Paint类(画笔)
    查看>>
    paip.android 手机输入法制造大法
    查看>>
    paip.spring3 mvc servlet的配置以及使用最佳实践
    查看>>
    Palindrome Number leetcode java
    查看>>
    Palo Alto Networks Expedition 未授权SQL注入漏洞复现(CVE-2024-9465)
    查看>>
    Palo Alto Networks Expedition 远程命令执行漏洞(CVE-2024-9463)
    查看>>
    Palo Alto Networks PAN-OS身份认证绕过导致RCE漏洞复现(CVE-2024-0012)
    查看>>
    Panalog 日志审计系统 libres_syn_delete.php 前台RCE漏洞复现
    查看>>
    Springboot中@SuppressWarnings注解详细解析
    查看>>
    Panalog 日志审计系统 sprog_deletevent.php SQL 注入漏洞复现
    查看>>
    Panalog 日志审计系统 sprog_upstatus.php SQL 注入漏洞复现(XVE-2024-5232)
    查看>>
    Panalog 日志审计系统 前台RCE漏洞复现
    查看>>
    PANDA VALUE_COUNTS包含GROUP BY之前的所有值
    查看>>