分享好友 最新动态首页 最新动态分类 切换频道
软件开发 --- Prometheus 之初体验
2024-12-29 09:42

Prometheus 是一个开源的监控和告警系统,专门用于收集和存储时序数据(Time Series Data)。它常用于监控应用程序、服务器和基础设施的性能,能够实时采集各种指标(如 CPU 使用率、内存占用、请求响应时间等)。Prometheus 提供了强大的查询语言(PromQL)来分析和可视化这些数据。

软件开发 --- Prometheus 之初体验

假设你有一个 Web 应用程序,想要使用 Prometheus 来监控它的性能指标。

1.1 在本地机器上安装 Prometheus

你可以从 Prometheus 官网下载并安装它。以 Linux 为例:

  1. 下载 Prometheus: 访问 Prometheus 官网(https://prometheus.io/download/),选择适合你系统的版本下载。
  2. 解压并安装
  1. 启动 Prometheus
    启动 Prometheus 服务器:

默认情况下,Prometheus 会监听 ,你可以在浏览器中访问它。

1.2 在 Docker 中安装 Prometheus

如果你更倾向于使用 Docker,可以通过以下命令来启动 Prometheus:

这会启动 Prometheus,并将它映射到本地的 9090 端口。

Prometheus 需要配置文件来定义哪些数据源(targets)需要被监控。通常这个配置文件是 ,它告诉 Prometheus 从哪些地方抓取数据。

2.1 配置文件示例:

  • :告诉 Prometheus 多长时间抓取一次数据(这里设置为每 15 秒)。
  • :配置 Prometheus 需要抓取数据的目标。比如你可以设置 Prometheus 抓取自身的监控数据,或者抓取 Web 应用程序的监控数据。

为了让 Prometheus 监控你的应用程序,你需要在应用中集成 Prometheus 的客户端库来暴露指标数据。

假设你使用的是 Java 应用程序,可以使用 Prometheus Java Client 来暴露指标数据。

3.1 集成 Prometheus Java 客户端

  1. 添加依赖
    如果你使用 Maven 来管理依赖,可以在 中添加以下依赖:
  1. 暴露指标数据
    在你的 Java 应用中,你可以通过 和 来暴露指标数据。以下是一个简单的例子:

这个例子中,我们创建了一个简单的计数器 ,它记录 HTTP 请求的总数。然后,我们启动了一个 HTTP 服务器,在 端口暴露 Prometheus 的监控指标。

当你的 Java 应用程序暴露了指标数据后,Prometheus 会根据你配置的 文件中的配置来抓取这些数据。

例如,如果你在 中配置了抓取 的指标数据,Prometheus 将定期向 请求指标数据。

Prometheus 使用自己的查询语言 PromQL 来查询存储的时序数据。在 Prometheus 的 Web UI 中,你可以使用 PromQL 来查询和分析数据。

5.1 查询请求总数

假设你想查询 Web 应用程序的 HTTP 请求总数,可以在 Prometheus 的查询框中输入:

这会返回 指标的所有时间序列数据。

5.2 查询指定时间范围的数据

如果你想查看过去 1 小时内的请求总数,可以使用以下查询:

这将返回过去 1 小时内的请求数据。

Prometheus 本身并没有提供强大的可视化功能,通常会与 Grafana 配合使用,以便进行更直观的展示。

6.1 安装 Grafana

在安装完 Prometheus 后,你可以安装 Grafana。可以通过 Docker 安装 Grafana:

6.2 配置 Prometheus 数据源

  1. 打开浏览器并访问 (默认用户名和密码是 )。
  2. 在 Grafana 中,添加 Prometheus 作为数据源:
  • 点击 Configuration > Data Sources > Add Data Source
  • 选择 Prometheus,并设置 URL 为 (Prometheus 默认的 HTTP 地址)。
  1. 点击 Save & Test,确保 Prometheus 数据源已配置成功。

6.3 创建仪表盘

你可以在 Grafana 中创建仪表盘来展示你的应用数据。例如,可以添加一个面板来显示 指标的图表。

Prometheus 还提供了告警功能,你可以通过配置 文件来设置告警规则。例如,设置一个告警规则,当 HTTP 请求总数超过某个阈值时触发告警。

  • Prometheus 是一个强大的监控工具,可以收集、存储并查询时序数据。
  • 暴露应用数据:你需要在应用程序中集成 Prometheus 客户端库,暴露指标数据。
  • 配置抓取:通过配置 Prometheus 的 文件,设置哪些服务的数据需要被抓取。
  • 查询数据:使用 Prometheus 的 Web UI 和 PromQL 查询和分析监控数据。
  • 可视化:可以与 Grafana 配合使用,将 Prometheus 数据进行可视化展示。

Prometheus 主要用于监控和告警,它帮助开发者、运维人员了解应用和基础设施的运行状态,及时发现潜在问题。

 

 

Prometheus 和 ELK(Elasticsearch、Logstash、Kibana)是两种常见的开源监控和日志分析工具,它们在功能、用途和架构上有一些显著的区别。下面是它们的主要区别:

  • Prometheus
  • 主要用途:Prometheus 是一个专注于时序数据(时间序列数据)的监控系统,特别适用于监控应用程序、服务器、容器、数据库等基础设施的性能指标(如 CPU 使用率、内存消耗、请求响应时间等)。
  • 数据类型:Prometheus 主要采集和存储的是度量数据(Metrics),即各类系统和应用的数值指标。
  • 告警功能:Prometheus 内置告警功能,支持基于时间序列数据的告警规则,并可以与 Alertmanager 配合使用来管理和发送告警。
  • 查询语言:Prometheus 提供了一种强大的查询语言 PromQL,可以用来查询和分析时序数据。
  • ELK(Elasticsearch, Logstash, Kibana):
  • 主要用途:ELK 是一个日志收集、存储和分析的解决方案,主要用于日志管理和可视化。它适用于集中管理、存储和分析大量的日志数据。
  • 数据类型:ELK 主要处理的是 日志数据,例如应用日志、系统日志、错误日志等,它们通常是无结构化的文本数据。
  • 告警功能:ELK 本身没有内置的告警系统,但可以与 ElastAlertKibana Watcher 集成来实现告警功能。
  • 查询语言:ELK 使用 Lucene 查询语言KQL(Kibana Query Language),它适用于处理日志和文本数据的全文搜索。
  • Prometheus
  • 数据采集:Prometheus 通过主动抓取(pull)监控目标(如应用、数据库、服务器等)暴露的指标数据接口。这些目标需要通过 HTTP 接口提供特定格式的度量数据,Prometheus 定期抓取这些数据并存储。
  • 数据存储:Prometheus 内建时间序列数据库,使用专门设计的存储引擎来存储时序数据。它的存储方式针对高效存储和查询时序数据进行了优化。
  • ELK
  • 数据采集:ELK 使用 Logstash 或 Beats(轻量级的数据采集器)来收集日志数据。Logstash 可以从多种数据源(如文件、数据库、消息队列等)中收集日志,并进行处理后将其发送到 Elasticsearch 存储。
  • 数据存储:Elasticsearch 是一个分布式搜索和分析引擎,用于存储日志数据。它基于 Lucene 构建,擅长处理文本数据和进行高效的全文搜索。
  • Prometheus
  • Prometheus Server:用于采集、存储和查询监控数据。
  • Alertmanager:管理 Prometheus 的告警,能够将告警发送到邮件、Slack 等通知系统。
  • 客户端库:用于应用程序暴露监控数据的 Prometheus 客户端库(支持多种语言,如 Go、Java、Python 等)。
  • ELK
  • Elasticsearch:用于存储、搜索和分析日志数据,支持全文搜索、聚合等功能。
  • Logstash:用于数据收集、转换和传输,将不同来源的日志数据发送到 Elasticsearch。
  • Kibana:用于可视化和分析日志数据,提供图表、仪表盘等功能。
  • Beats:是轻量级的代理工具,用于收集系统、应用和网络数据,并将其发送到 Elasticsearch 或 Logstash。
  • Prometheus
  • 适用于:应用程序和基础设施的性能监控,尤其是时序数据(如 CPU 使用率、内存、响应时间等)的监控。典型的使用场景包括:
  • 微服务监控
  • 容器和 Kubernetes 集群监控
  • 数据库性能监控
  • 应用程序性能监控(如请求数、响应时间等)
  • 常见用途:Kubernetes 集群监控、Web 应用监控、系统资源监控、服务健康检查。
  • ELK
  • 适用于:日志管理和分析,尤其是应用程序和服务器日志的集中管理、存储和分析。典型的使用场景包括:
  • 日志收集与分析
  • 系统故障诊断
  • 安全日志分析(如入侵检测)
  • 企业合规性和审计
  • Prometheus
  • 使用 PromQL 来查询时序数据。
  • 可以与 Grafana 配合,进行更强大的可视化展示(Prometheus 本身的 UI 较为简单)。
  • ELK
  • 使用 Kibana 来查询和可视化日志数据,支持强大的查询、筛选、聚合和可视化功能。
  • 提供图表、仪表板、日志的时间轴可视化。
  • Prometheus
  • Prometheus 有内建的告警功能,通过 PromQL 设置告警规则,并结合 Alertmanager 发送告警通知。
  • ELK
  • ELK 没有内建告警系统,但可以通过 ElastAlertKibana Watcher 或第三方工具集成告警功能。
  • Prometheus 更适合用于 时序数据监控(比如系统性能、应用性能监控),并且内置了告警功能。它对时间序列数据有很好的支持,适合开发和运维人员用来监控服务和系统的实时状态。
  • ELK 更适合用于 日志管理和分析,用于收集、存储和搜索大量的日志数据。它特别擅长处理无结构化的文本数据,如应用程序日志、服务器日志等,并且可以非常方便地进行搜索、分析和可视化。
最新文章
全力抓好校园“食”事——恩施州解决中小学校园食品安全与膳食经费管理问题
校园食品安全大于天,关乎下一代的健康成长。今年以来,为顺应群众对“校园餐”安全健康营养的新要求、新期待,我州严格落实中央、省委工作要求,着力解决中小学校校园食品安全和膳食经费管理突出问题,健全完善监管机制,以高度的政治自觉
好漫漫漫画登录页面免费漫画软件功能
好漫漫漫画登录页面免费漫画软件上拥有许多爱看漫画的漫迷们,好漫漫漫画登录页面免费漫画平台提供的漫画相当丰富,资源涵盖了各种风格和类型,用户们可以很容易找到自己想要的漫画进行阅读,带来的漫画作品全免费,支持在线无限看,支持离
雷神加速器
  雷神加速器 10.1.8.4  更新内容:  1、优化加速体验。  雷神加速器 10.1.8.3  更新内容:  1、【优化】Al防丢包加速算法优化;  2、【优化】优化加速体验。  雷神加速器 10.1.8.2  更新内容:  优化加速体验。  雷
教你几招网盘不限速的方法
### 回答1:百度云网盘限速下载是因为服务器的带宽有限,为了避免服务器压力过大而影响其他用户的使用体验,百度云官方规定了下载速度的限制。但是,您可以通过以下几种方法来解决限速下载的问题:1. 使用百度云会员:百度云会员可以享受更
免费的淘宝商品数据抓取工具推荐
淘宝作为中国的网上购物平台,拥有海量的商品信息。如果你需要获取淘宝商品的数据,可能会比较麻烦。因为淘宝并不提供数据抓取的接口。有一些第三方工具可以帮助你轻松地获取淘宝商品数据。本文将为大家介绍几款免费的淘宝商品数据抓取工具
数据安全每周观察|中共中央办公厅 国务院办公厅关于推进新型城市基础设施建设打造韧性城市的意见
政策趋势一、《网络安全技术 基于互联网电子政务信息安全实施指南 第1部分:总则》(征求意见稿)等2项国家标准公开征求意见全国网络安全标准化技术委员会归口的《网络安全技术 基于互联网电子政务信息安全实施指南 第1部分:总则》和《信
SEO点击软件推荐特效(seo点击软件推荐特效怎么做)
大家好,今天小编关注到一个比较有意思的话题,就是关于SEO点击软件推荐特效的问题,于是小编就整理了3个相关介绍SEO点击软件推荐特效的解答,让我们一起看看吧。怎样判断自己的视频要火了?如何选择关键词?抖音上那些制作的特效视频,是
浅谈人工智能在网络运维优化中的应用
当前人工智能正处在飞速发展阶段,已在多领域取得实质性突破。对通信领域而言,随着通信网络的复杂化和通信业务的多样化,网络运营正面临更大的挑战和压力,将人工智能引入通信网络成为网络智能化的必要步骤。围绕网络运营重要环节之一的网
百度关键词搜索官网_如何查看百度关键词搜索量
搜索引擎(百度)关键字搜索的需求分析和结果设计搜索引擎(假设是百度)每天响应成千上万的词语,有时候需求是明确的,比如搜索物品,搜索目的地;需求有时是模糊的,比如搜索穿搭等。与之对应等我继续说。 优秀的搜索应该都给你一个满意的结
【7105(联通4G)腾讯手机管家下载】酷派7105 联通4G腾讯手机管家16.1.19免费下载
腾讯手机管家专注手机骚扰拦截,动态守护手机安全,深度清理微信、QQ缓存,让手机体积减半,拒绝卡慢。---认真服务---【骚扰拦截】智能拦截骚扰电话,过滤诈骗垃圾短信【清理加速】清理加速能力升级,释放空间告别卡慢【微信清理】个性清理
相关文章
推荐文章
发表评论
0评