Prometheus(普罗米修斯)是一套开源的监控系统,其基本原理是通过 HTTP 协议周期性抓取被监控组件的状态,不需要任何 SDK 或者其他的集成过程,其架构如图:
Prometheus 主要由以下部分组成:
普罗米修斯的数据存储采用的是时间序列数据(TimeSeries Data),它是按照时间顺序记录系统、设备状态变化的数据。
默认情况下 Prometheus 会将采集的数据存储到本机的 /usr/local/prometheus/data
目录,存储数据的大小受限和扩展不便;如果只作为测试自然不需要担心这个问题,如果用于生产的话需要安装配置时序数据库influxdb
。
在 kubesphere 的安装中,普罗米修斯是配套安装的,前文介绍过kubesphere的安装教程。这里我直接使用现成的Prometheus系统。有安装需求的小伙伴建议使用k8s+helm进行安装。
KubeSphere 通过 NodePort 访问内置的 Prometheus 服务,服务类型更改为 NodePort,同时修改外部访问端口:
kubectl edit svc -n kubesphere-monitoring-system prometheus-k8s
访问普罗米修斯ip:port
我们可以通过这个操作页面进行一些指令操作,在指令栏输入KEY,它会有联想输入提前弹出你想要的KEY,然后点击执行按钮就能获得对应的监控数据:
在普罗米修斯监控中,称采集存储的数据为metrics,在普罗米修斯中它是以 key/value的形式保存的。其主要类型分为以下几种:
每个key-value 数据还会带上标签进行归类,标签可使用正则表达式进行匹配。
关于普罗米修斯采集到的 key-value 数据 可以访问 http://ip:port/metrics url 进行查看:
以 #
号开头的部分是对采集数值的一个说明,如:
# 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:
对于普罗米修斯的数据,我们不仅限于查看,还能进行一些函数运算:
## 查询最近2min
prometheus_http_requests_total{job="prometheus"}[2m]
## 乘法运算
prometheus_http_requests_total{job="prometheus"} offset 1m *1024
## 统计
count(node_cpu_seconds_total)
这些语句称为pql,PQL使用"#"对语法进行注释,其常用内置函数有:
当然我们观察机器的一些数据指标肯定不能通过手写PQL去查看,这样就太累人了。通常我们会结合grafana进行可视化的监控。
grafana 是数据统计和展示工具,它展示数据,但不提供数据。目前Grafana 支持的数据源有:Graphite, InfluxDB, OpenTSDB, Prometheus, Elasticsearch, CloudWatch,Zabbix等。
grafana 相关概念:
grafana 部署我这里是采用 KubeSphere 的应用模板进行部署的,傻瓜式的安装,这里就不做太多介绍了,安装完成后界面如下:
然后导入prometheus数据源,Configuration → Data Sources → Prometheus → Select:
查看仪表盘:
当然grafana,还支持自定义仪表盘和查询统计语句,这种高定制化的需求需要对pql和 grafana 都有较深的理解。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有