Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >普罗米修斯

普罗米修斯

作者头像
六个核弹
发布于 2022-12-23 13:25:43
发布于 2022-12-23 13:25:43
2.8K00
代码可运行
举报
运行总次数:0
代码可运行

普罗米修斯介绍

Prometheus(普罗米修斯)是一套开源的监控系统,其基本原理是通过 HTTP 协议周期性抓取被监控组件的状态,不需要任何 SDK 或者其他的集成过程,其架构如图:

Prometheus 主要由以下部分组成:

  • prometheus server: 是 Prometheus 组件中的核心部分,负责实现对监控数据的获取,存储以及查询;
  • exporter: 采集端,通过 http 服务的形式保留一个 url 地址,prometheus server 通过访问该 exporter 提供的 endpoint 端点,即可获取到需要采集的监控数据。
  • AlertManager: 在 prometheus 中,支持基于 PromQL 创建告警规则,如果满足定义的规则,则会产生一条告警信息,进入 AlertManager 进行处理。可以集成邮件,微信或者通过 webhook 自定义报警。
  • Pushgateway: 由于 Prometheus 数据采集采用 pull 方式进行设置的, 内置必须保证 prometheus server 和对应的 exporter 必须通信,当网络情况无法直接满足时,可以使用 pushgateway 来进行中转,可以通过 pushgateway 将内部网络数据主动 push 到 gateway 里面去,而 prometheus 采用 pull方式拉取 pushgateway 中数据

普罗米修斯的数据存储采用的是时间序列数据(TimeSeries Data),它是按照时间顺序记录系统、设备状态变化的数据。

默认情况下 Prometheus 会将采集的数据存储到本机的 /usr/local/prometheus/data 目录,存储数据的大小受限和扩展不便;如果只作为测试自然不需要担心这个问题,如果用于生产的话需要安装配置时序数据库influxdb

普罗米修斯使用初体验

在 kubesphere 的安装中,普罗米修斯是配套安装的,前文介绍过kubesphere的安装教程。这里我直接使用现成的Prometheus系统。有安装需求的小伙伴建议使用k8s+helm进行安装。

KubeSphere 通过 NodePort 访问内置的 Prometheus 服务,服务类型更改为 NodePort,同时修改外部访问端口:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl edit svc -n kubesphere-monitoring-system prometheus-k8s

访问普罗米修斯ip:port

我们可以通过这个操作页面进行一些指令操作,在指令栏输入KEY,它会有联想输入提前弹出你想要的KEY,然后点击执行按钮就能获得对应的监控数据:

metrics:

在普罗米修斯监控中,称采集存储的数据为metrics,在普罗米修斯中它是以 key/value的形式保存的。其主要类型分为以下几种:

  • Gauges: 某个监控指标的瞬时值,如内存使用量,队列的等待任务数等。
  • Counters: 计数器类型,属于累计值,如开机时常等。
  • Histogram:比例型数值,例如请求响应时间占比分布等。

每个key-value 数据还会带上标签进行归类,标签可使用正则表达式进行匹配。

关于普罗米修斯采集到的 key-value 数据 可以访问 http://ip:port/metrics url 进行查看:

# 号开头的部分是对采集数值的一个说明,如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# HELP go_gc_cycles_automatic_gc_cycles_total Count of completed GC cycles generated by the Go runtime.
# TYPE go_gc_cycles_automatic_gc_cycles_total counter
go_gc_cycles_automatic_gc_cycles_total 77

HELP 是对这个采集数据的注释,TYPE 表示它的metrics类型为 counter。统计数据是 exporter 提供的,想要采集不同指标的数据 比如mysql 或者kafka 就要使用不同 expoerter 去收集,官方提供了不少exporter:

PQL

对于普罗米修斯的数据,我们不仅限于查看,还能进行一些函数运算:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
## 查询最近2min
prometheus_http_requests_total{job="prometheus"}[2m]
## 乘法运算
prometheus_http_requests_total{job="prometheus"} offset 1m *1024
## 统计
count(node_cpu_seconds_total)

这些语句称为pql,PQL使用"#"对语法进行注释,其常用内置函数有:

  • abs: 绝对值
  • absent: 判断标签是否存在
  • ceil:取整
  • sum:求和
  • min:最小值
  • count:统计
  • avg:平均值
  • topk:排序

当然我们观察机器的一些数据指标肯定不能通过手写PQL去查看,这样就太累人了。通常我们会结合grafana进行可视化的监控。

grafana 的简介及使用:

grafana 是数据统计和展示工具,它展示数据,但不提供数据。目前Grafana 支持的数据源有:Graphite, InfluxDB, OpenTSDB, Prometheus, Elasticsearch, CloudWatch,Zabbix等。

grafana 相关概念:

  • Data Source: 数据源
  • DashBoard:仪表盘,数据展示的窗口。
  • Row:DashBoard 的基本组成单元,可以理解为数据行
  • Panel:面板,实际上就是row展示信息的方式,支持表格(table),列表(alert list),热图(Heatmap)等多种方式。
  • Query Editor:查询语句编辑器,用于编写PQL

grafana 部署我这里是采用 KubeSphere 的应用模板进行部署的,傻瓜式的安装,这里就不做太多介绍了,安装完成后界面如下:

然后导入prometheus数据源,Configuration → Data Sources → Prometheus → Select:

查看仪表盘:

当然grafana,还支持自定义仪表盘和查询统计语句,这种高定制化的需求需要对pql和 grafana 都有较深的理解。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 六个核弹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
普罗米修斯 -- 基本使用
普罗米修斯是用 go 语言编写的软件并且利用了 go 语言的交叉编译特性编译成了纯二进制文件, 运行的时候不需要额外安装依赖。 直接从官网上下载就可以。 下载地址: https://prometheus.io/download/ 这里面除了普罗米修斯的主程序意外, 一些 额外的组件,比如 pushgateway, alertmanager 以及各种官方 exporter 的下载包都可以在这里找到。 由于我们现在部署普罗米修斯都是容器化部署的, 所以这里我选择用 docker 进行部署。
TesterHome小助手
2022/01/11
1.3K0
接近完美的监控系统—普罗米修斯
普罗米修斯(Prometheus)是一个SoundCloud公司开源的监控系统。当年,由于SoundCloud公司生产了太多的服务,传统的监控已经无法满足监控需求,于是他们在2012年决定着手开发新的监控系统,即普罗米修斯。
全栈程序员站长
2022/09/09
6.3K0
接近完美的监控系统—普罗米修斯
从指标到洞察力的普罗米修斯
普罗米修斯官网的首页简单的对普罗米修斯做了定义:从指标到洞察力 ,普罗米修斯通过领先的开源监控解决方案为用户的指标和告警提供强大的支持。
宋小生
2023/01/16
1.4K0
从指标到洞察力的普罗米修斯
普罗米修斯Prometheus监控神器
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/161742.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/09
2K0
搭建普罗米修斯Prometheus监控系统「建议收藏」
Prometheus(由go语言(golang)开发)是一套开源的监控&报警&时间序列数据库的组合。适合监控docker容器。因为K8S的流行带动了Prometheus的发展。
全栈程序员站长
2022/09/09
9K0
搭建普罗米修斯Prometheus监控系统「建议收藏」
普罗米修斯监控openGauss
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/161777.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/09
1.4K0
普罗米修斯监控openGauss
搞定Prometheus普罗米修斯监控系统
AAA公司是一家电商网站,由于公司的业务快速发展,公司要求对现有机器进行为业务监控,责成运维部门来实施这个项目。
全栈程序员站长
2022/09/09
6K0
搞定Prometheus普罗米修斯监控系统
监控系统-Prometheus(普罗米修斯)(三)Grafana可视化图形工具
Github地址:https://github.com/grafana/grafana 官网地址:https://grafana.com 官网文档地址:http://docs.grafana.org/ 下载地址:https://grafana.com/grafana/download
全栈程序员站长
2022/09/09
2K0
监控系统-Prometheus(普罗米修斯)(三)Grafana可视化图形工具
linux安装Promethus普罗米修斯监控
下载地址:Releases · prometheus/node_exporter · GitHub
全栈程序员站长
2022/09/09
1.1K0
监控神器普罗米修斯Prometheus安装配置「建议收藏」
普罗米修斯默认配置文件 vim /usr/local/Prometheus/prometheus.yml
全栈程序员站长
2022/06/27
4.4K0
监控神器普罗米修斯Prometheus安装配置「建议收藏」
一文搞懂Prometheus、Grafana(含腾讯云上实战)
通常来说,对于一个运行时的复杂系统,如果系统出了问题是很难排查的。因为你是不太可能在运行时一边检查代码一边调试的。因此,你需要在各种关键点加上监控,通过监控获取的数据,指导我们进一步工作,解决问题。
yuann
2021/01/06
56.2K1
一文搞懂Prometheus、Grafana(含腾讯云上实战)
普罗米修斯 -- 初识 PromQL
之前讲过普罗米修斯自己就是一个时序数据库, 它从 exporter 拉取的数据都会按时间戳保存到对应的文件里,这个时序数据库默认会保存 14 天的数据。 而它自己也开发了一套名为 PromQL 的类 SQL 的查询语言用来从各种维度让用户来查询并计算监控的数据。 我们先来看一下我自己编写的 exporter 的接口, 看看它向普罗米修斯的主服务返回的监控数据是什么样的。
TesterHome小助手
2022/01/12
1.8K0
Prometheus(普罗米修斯)监控系统「建议收藏」
Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,由 SoundCloud 公司开发。
全栈程序员站长
2022/09/09
1.9K0
Centos7安装Promethus(普罗米修斯)监控系统完整版
Prometheus(由go语言(golang)开发)是一套开源的监控&报警&时间序列数 据库的组合。适合监控docker容器。因为kubernetes(俗称k8s)的流行带动 了prometheus的发展。 https://prometheus.io/docs/introduction/overview/
全栈程序员站长
2022/09/05
3.6K0
Centos7安装Promethus(普罗米修斯)监控系统完整版
构建你的第一个仪表盘!Grafana 中文入门教程
比如说,需要计算资源的时候,一个配置文件就可以要来两百台虚拟化好的机子。需要试下缓存?点下鼠标就可以要到几十个配置好的 Redis 结点。
民工哥
2022/10/27
3.7K0
构建你的第一个仪表盘!Grafana 中文入门教程
Grafana 中文入门教程 | 构建你的第一个仪表盘
比如说,需要计算资源的时候,一个配置文件就可以要来两百台虚拟化好的机子。需要试下缓存?点下鼠标就可以要到几十个配置好的 Redis 结点。
杰哥的IT之旅
2021/03/30
111.7K0
Grafana 中文入门教程 | 构建你的第一个仪表盘
监控利器:普罗米修斯介绍和安装
我们的程序想要稳定的运行,或者说当出现问题时能第一时间知道,这就离不开监控,目前比较主流的就是 Prometheus(普罗米修斯)+ Grafana 的组合。
oec2003
2023/11/01
3.7K0
监控利器:普罗米修斯介绍和安装
Prometheus+Grafana
Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。现在最常见的Docker、Mesos、Kubernetes容器管理系统中,通常会搭配Prometheus进行监控。
派大星在吗
2021/12/05
1.2K0
普罗米修斯 软件_Prometheus普罗米修斯
Prometheus普罗米修斯是一款针对苹果用户专属打造的苹果手机系统降级工具。很多的果粉更新了ios10以后觉得系统无比的卡,觉得部分功能比较之前的系统差的太多了,就用Prometheus普罗米修斯工具进行系统降级,从而获得更好的使用体验。感兴趣的欢迎到西西下载。
全栈程序员站长
2022/09/09
9790
普罗米修斯的完整的示例项目
Luc Perkins刚在GitHub发布了“普罗米修斯游乐场”(The Prometheus Playground),一系列Docker Compose启动的完整的Prometheus示例项目,包括Alertmanager、cAdvisor、nginx、HAProxy等等。
CNCF
2019/12/06
6390
相关推荐
普罗米修斯 -- 基本使用
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验