Prometheus相关知识

本文深入探讨Prometheus监控系统的特性、优势与不足,讲解其基本组件、原理与架构,介绍四种数据类型及其默认端口,适合希望深入了解Prometheus监控机制的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

prometheus相关知识

监控的目的
google指出,监控分为白盒监控和黑盒监控之分。

  • 白盒监控:通过监控内部的运行状态及指标判断可能会发生的问题,从而做出预判或对其进行优化。

  • 黑盒监控:监控系统或服务,在发生异常时做出相应措施。

– 监控的目的如下 –

1)、根据历史监控数据,对为了做出预测

2)、发生异常时,即使报警,或做出相应措施

3)、根据监控报警及时定位问题根源

4)、通过可视化图表展示,便于直观获取信息
    
1、特点:

  • Prometheus 属于一站式监控告警平台,依赖少,功能齐全。 Prometheus 支持对云或容器的监控,其他系统主要对主机监控。

  • Prometheus 数据查询语句表现力更强大,内置更强大的统计函数。 Prometheus 在数据存储扩展性以及持久性上没有 InfluxDB,OpenTSDB,Sensu 好。

2、优点:

(1)监控数据的精细程度非常高,可以精确到1-5秒的采集精度

(2)软件的部署非常快,大大缩减搭建时间成本

(3)周边插件很丰富,比如 exporter pushgateway 大多数都步需要自己开发了

(4)基于数学计算模型(proMQL),大量的使用函数,可以实现很复杂规则的业务逻辑监控(比如QPS曲线,弯曲,凸起,下跌,比例等等模糊)

(5)可以嵌入很多开源工具的内部,比如nignx 、数据库 等,进行监控,数据更准时更可信(其他监控比较难做)

(6)结合grafana 图形很高大上很美观

不足:

(1)因为图形采集经度,如果集群数据量太大,那么简单监控有性能瓶颈。

(2)学习成本大,还有 proMQL,中文资料极少,没有人教 官网英文资料也是比较难入门

(3)对磁盘资源消耗比较大,这个具体要看监控的集群数量 和 监控项的多少 以及保存时长的设置

(4)本身的使用,需要使用者数学不能太差,有一定的数据逻辑

3、基本组件:

  • Prometheus Server, 主要用于抓取数据和存储时序数据,另外还提供查询和 Alert Rule 配置管理。

  • client libraries,用于对接 Prometheus Server, 可以查询和上报数据。

  • push gateway ,用于批量,短期的监控数据的汇总节点,主要用于业务数据汇报等。

  • 各种汇报数据的 exporters ,例如汇报机器数据的 node_exporter, 汇报 MongoDB 信息的 MongoDB exporter 等。

  • 用于告警通知管理的 alertmanager 。

4、基本原理:

  • Prometheus基本原理是通过HTTP协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统, 不需要任何SDK或者其他的集成过程。

  • 这样做非常适合虚拟化环境比如VM或者Docker 。 Prometheus应该是为数不多的适合Docker、Mesos、 Kubernetes环境的监控系统之一。

  • 输出被监控组件信息的HTTP接口被叫做exporter 。

  • 目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux
    系统信息 (包括磁盘、内存、CPU、网络等等)

5、Prometheus基本架构与模块:
在这里插入图片描述

Prometheus 的主要模块包含:Server, Exporters, Pushgateway, PromQL, Alertmanager, WebUI 等

6、prometheus metrics 四种数据类型:

  • Counter

Counter用于累计值,例如记录请求次数、任务完成数、错误发生次数。一直增加,不会减少。重启进程后,会被重置。

  • Gauge

    Gauge常规数值,例如 温度变化、内存使用变化。可变大,可变小。重启进程后,会被重置。

  • Histogram

Histogram(直方图)可以理解为柱状图的意思,常用于跟踪事件发生的规模。

 例如:请求耗时、响应大小。它特别之处是可以对记录的内 容进行分组,提供count和sum全部值的功能。
  • Summary

    Summary和Histogram十分相似,常用于跟踪事件发生的规模,例如:请求耗时、响应大小。同样提供 count 和 sum 全部值的功能。

7、默认端口:

  • 服务器端:

    9090端口是必须配置的,这是prometheus自带的web界面

    9100是node_exporter的默认端口

    9104是mysqld_exporter默认端口

8、node_exporter 采集器:

如果你有一台服务器,你想要获取它运行时候的参数,比如当前的CPU负载、系统负载、内存消耗、硬盘使用量、网络IO等等。那么你就可以在服务器上运行一个node_exporter,它能帮你把这些参数收集好,并且暴露出一个HTTP接口以便你访问查询

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值