普罗米修斯和BMC的对比_2021-08-01

普罗米修斯和BMC的对比
相同点
采集数据的主要流程如下:

  1. Prometheus server 定期从静态配置的主机或服务发现的 targets 拉取数据(zookeeper,consul,DNS SRV Lookup等方式)
    BMC同样定期收集数据,由IS主动上传至IM,进行进一步的数据处理并存储至IM的库。
  2. 当新拉取的数据大于配置内存缓存区的时候,Prometheus会将数据持久化到磁盘,也可以远程持久化到云端。
  3. Prometheus通过PromQL、API、Console和其他可视化组件如Grafana、Promdash展示数据。
    BMC有自己的PS进行告警展示,同时通过自己的报表和dashboard进行展示进行查询以及汇总展示。
  4. Prometheus 可以配置rules,然后定时查询数据,当条件触发的时候,会将告警推送到配置的Alertmanager。
    BMC的PS端可以配置polices,polices里有各种的rules,threshold等。
  5. Alertmanager收到告警的时候,会根据配置,聚合,去重,降噪,最后发出警告。
    BMC的IM层会进行判断是否产生告警,并将告警推给PS端进行展示。同时可将告警事件以短信以及邮件的形式通知管理员 ,并且会出发相应的声音告警功能,以提醒运行同事通知管理员。

不同点

普罗米修斯分为4个模块

Prometheus Server: 用数据的采集和存储,PromQL查询,报警配置。
Push gateway: 用于批量,短期的监控数据的汇报总节点。
Exporters: 各种汇报数据的exporter,例如汇报机器数据的node_exporter,汇报MondogDB信息的 MongoDB_exporter 等等。
Alertmanager: 用于高级通知管理。

普罗米修斯,要采集目标(主机或服务)的监控数据,首先就要在被采集目标上安装采集组件,这种采集组件被称为Exporter。http://prometheus.io官网上有很多这种exporter,exporter类似BCM的KM,用于收集各大类指标,比如ORACLE 的ASM,weblogic,ORACLE的RAC等等大类KM。
这些exporter能为我们采集目标的监控数据,然后传输给普罗米修斯。这时候,exporter会暴露一个http接口,普罗米修斯通过HTTP协议使用Pull的方式周期性拉取相应的数据。
从架构图里能看到两个 Pull metrics 的原因,一个是采集器直接被Server拉取数据(pull);另一个是采集器主动Push数据到Push Gateway,Server再对Push Gateway主动拉取数据(pull)

普罗米修斯的数据是 键值对数据结构,键表示指标,值表示采集到的数值。

普罗米修斯的监控指标有4种基本类型:
1.Counter(计数器):
计数器是我们最简单的指标类型。比如你想统计某个网站的HTTP错误总数,这时候就用计数器。
计数器的值只能增加或重置为0,因此特别适合计算某个时段上某个时间的发生次数,即指标随时间演变发生的变化。
2.Gauges
Gauges可以用于处理随时间增加或减少的指标,比如内存变化、温度变化。
这可能是最常见的指标类型,不过它也有一定缺点:如果系统每5秒发送一次指标,普罗服务每15秒抓取一次数据,那么这期间可能会丢失一些指标,如果你基于这些数据做汇总分析计算,则结果的准确性会有所下滑。
3.Histogram(直方图)
直方图是一种更复杂的度量标准类型。它为我们的指标提供了额外信息,例如观察值的总和及其数量,常用于跟踪事件发生的规模。
比如,为了监控性能指标,我们希望在有20%的服务器请求响应时间超过300毫秒时发送告警。对于涉及比例的指标就可以考虑使用直方图。
4.Summary(摘要)
摘要更高级一些,是对直方图的扩展。除了提供观察的总和和计数之外,它们还提供滑动窗口上的分位数度量。分位数是将概率密度划分为相等概率范围的方法。
对比直方图:

  1. 直方图随时间汇总值,给出总和和计数函数,使得易于查看给定指标的变化趋势。
  2. 而摘要则给出了滑动窗口上的分位数(即随时间不断变化)。
上一篇:linux 创建 service


下一篇:Prometheus 监控服务