您当前的位置: 首页 > 

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Prometheus:监控与告警:1:概要介绍

发布时间:2019-12-05 21:08:15 ,浏览量:0

在这里插入图片描述 Prometheus是开源的监控告警的解决方案,最早由SoundCloud公司所开发和开源,从2012年产生至今已经7年,在技术不断变化的时代这已经是一个很长的时间了,在过去的7年里,Prometheus也得到了越来越多用户的使用和推崇,并且在2016年加入CNCF后,成为继Kubernetes之后最早从中毕业的项目。

  • Prometheus的开发语言以Go为主,也可以看到Prometheus在过去的7年里得到了超过2.7万个Star。 在这里插入图片描述
  • 同样在CNCF的landcape的同一领域的还有Grafana、Sensu、graphite、Zabbix等。 在这里插入图片描述
概要信息

Prometheus的概要信息如下表所示:

项目 说明 官网 https://prometheus.io/ 开源/闭源 开源 源码管理地址 https://github.com/prometheus/prometheus License类别 Apache License 2.0 开发语言 Go、JavaScript 当前稳定版本 2.14.0 (2019/11/11) 主要特性
  • 多维度数据模型:可使用指标名称和键/值对结合进行数据的管理。
  • 提供灵活的查询语言PromQL,利用PromQL能更好地为数据先可视化显示或者告警功能提供更好的数据。
  • 不依赖于分布式存储,单个服务节点的数据是自主的,可独立使用。
  • 时序列数据库可基于HTTP协议使用PULL模式拉取数据。
  • 提供中间网关的方式,也支持向中间网关以PUSH模式推送数据,而Prometheus再从中间网关拉取数据。
  • 可以通过服务发现或者静态配置的方式发现目标对象。
  • 支持多种方式的图表和仪表盘展示,比如对Grafana的支持。
整体架构

整体架构如下图所示 在这里插入图片描述 可以看到,Prometheus的构成非常清晰,主要由如下几个部分构成:

  • Pushgateway: 支持时序列数据使用PUSH模式推送的中间网关
  • Prometheus Server:提供PromQL查询语言能力、负责数据的采集和存储等主要功能
  • Alertmanager:是一个独立的组件,提供灵活的报警方式,比如Email、webhook等。
  • Web UI:Prometheus本身提供一个非常简单的Web UI界面,这也是其代码中由小比例的JavaScript和TypeScript的原因。当然也可以结合Grafana进行监控数据的可视化展示。
适合的场景

非常适合纯数字类型的时序列数据,无论是以机器为中心的监控场景,还是高度动态变化的面向服务架构下的监控场景,Prometheus都是非常适合的。在微服务的世界中,Prometheus对多维度数据收集和查询的支持能力,是其长袖善舞之处。 Prometheus被设计用来支撑可靠性,当系统出现问题时能够快速判断故障原因,因此,每个Prometheus服务器都是独立的,不会依赖于网络存储或者其他远程的服务。当你其他的基础设施出现问题的时候,它还是独立可用的,而且不需要昂贵的基础设施的支撑才能够使用。

不适合的场景

Prometheus看重的是可靠性而不是精确性,使用Prometheus,无论什么样的故障境况下,用户总是能够看到可以看到的统计信息,这部分信息往往来源于独立运行的没有发生故障的那些Prometheus服务器所提供。但是如果使用者需要100%的精确,比如实时的交易系统的每次请求的完整性与精确性的场景下,Prometheus可能就无法很好与完整地收集到所有的数据,这种系统或者场景之下,可以选取其他技术用于保证这些数据的完整性与精确性,而Prometheus则可以用来进行监控。

参考内容

https://github.com/prometheus/prometheus https://prometheus.io/docs/introduction/overview/

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

1.9481s