Prometheus 简介 搭建监控系统一(基础篇)

Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包 。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。现在,它是一个独立的开源项目,并且独立于任何公司进行维护。为了强调这一点并阐明项目的治理结构,Prometheus 于2016年加入了 Cloud Native Computing Foundation,这是继Kubernetes之后的第二个托管项目。

下面说一下这个开源软件的安装实践过程,目标如下:

  • 安装 go 语言环境
  • 在监控服务器上安装prometheus
  • 在被监控环境上安装export
  • 安装grafana
  • 配置报警规则

Prometheus简介

简述

特点

  • 一个多维数据模型,其中包含通过度量标准名称和键/值对标识的时间序列数据
  • PromQL,一种灵活的查询语言 ,可利用此维度
  • 不依赖分布式存储;单服务器节点是自治的
  • 时间序列收集通过HTTP上的拉模型进行
  • 通过中间网关支持推送时间序列
  • 通过服务发现或静态配置发现目标
  • 多种图形和仪表板支持模式

Prometheus的优点

  • 相对其他而言有更强大的查询语言,警报和通知功能
  • 图形和报警的可用性和正常运行时间更高
  • 不依赖分布式存储,单服务器节点是自治的

Prometheus与Zabbix的区别

  • Zabbix:成熟度高,上手更快,但更好的集成导致灵活性较差,监控数据的复杂度增加后,Zabbix做进一步定制难度很高,即使做好了定制,也没法利用之前收集到的数据了
  • Prometheus:基本上正相反,上手难度大,但由于定制灵活度高,数据也有更多的聚合可能,起步后的使用难度小于zabbix

prometheus的基本概念

  • Prometheus支持多个api实例编码相同的数据,多重图形和仪表板模式
  • Prometheus在每个时间序列中创建一个本地文件,但允许在出现刮擦或者规则评估时以任意间隔存储样本。由于仅附加了新样本,因此数据可以任意保留,它更适用于许多短暂的,经常变化的时间序列集
  • Prometheus提供了一种更强大的图形和警报查询语言,Prometheus Alertmanager还提供了分组,重复数据删除和静音功能
  • Prometheus仅支持float64数据类型,但对字符串和毫秒分辨率时间戳的支持有限
  • Prometheus运行简单,但在有些时候需要根据产品,服务,数据中心或类似方面的可伸缩性边界明确的分片服务器,还支持并行冗余运行

时序4种类型

Prometheus 时序数据分为 Counter, Gauge, Histogram, Summary 四种类型。

  • Counter:表示收集的数据是按照某个趋势(增加/减少)一直变化的,我们往往用它记录服务请求总量,错误总数等。例如 Prometheus server 中 http_requests_total, 表示 Prometheus 处理的 http 请求总数,我们可以使用data, 很容易得到任意区间数据的增量
  • Gauge:表示搜集的数据是一个瞬时的,与时间没有关系,可以任意变高变低,往往可以用来记录内存使用率、磁盘使用率等。
  • Histogram:Histogram 由 _bucket{le=""},_bucket{le="+Inf"}, _sum,_count 组成,主要用于表示一段时间范围内对数据进行采样,(通常是请求持续时间或响应大小),并能够对其指定区间以及总数进行统计,通常我们用它计算分位数的直方图。
  • Summary:Summary 和 Histogram 类似,由 {quantile="<φ>"},_sum,_count组成,主要用于表示一段时间内数据采样结果,(通常是请求持续时间或响应大小),它直接存储了 quantile 数据,而不是根据统计区间计算出来的。区别在于:
a. 都包含 _sum,_count。
b. Histogram 需要通过 _bucket 计算 quantile, 而 Summary 直接存储了 quantile 的值。

你可能感兴趣的:(Prometheus 简介 搭建监控系统一(基础篇))