容器类常用监控软件学习-Prometheus

目录

一、介绍

二、主要特点

三、架构

四、适用的场景和不适用的场景

五、时序数据库介绍

六、grafana的作用

七、和其他监控软件比较(zabbix)


一、介绍

普罗米修斯是一个开源系统监控和警报工具包,Prometheus收集并将其指标存储为时间序列数据,即指标信息与记录的时间戳一起存储,以及称为标签的可选键值对。该项目拥有非常活跃的开发人员和用户社区。容器类监控一般采用Prometheus进行监控,支持默认的pull模式获取数据。但是如果一些网络或防火墙等原因无法直接pull到数据的情况,就要借助Pushgateway让Prometheus转换为push方式获取数据;比如我们将prometheus搭建在外网去监控内网应用的情况下,由于内网有诸多安全限制使得无法穿透,这时就要借助push模式来解决问题,还有就是监控的轮询监控大于被监控程序的执行时间,比如5秒pull一次数据,但是被监控程序1秒就执行完了。

二、主要特点

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

三、架构

容器类常用监控软件学习-Prometheus_第1张图片

exporter:可以理解为客户机的一个程序,用来专门收集客户机的数据,发送给Prometheus服务器
pull metrics:拉取数据,Prometheus server拉取数据
TSDB:时间序列数据库
short-lived jobs:短时间任务
Pushgateway:短时间运行的程序可以主动将自己的数据push到pushgateway里存放,Prometheus server会在pushgateway拉取数据。
service discovery:
PromQL:Prometheus Query language,Prometheus时序数据据库里的查询语言。
Grafana:一个图形绘制工具,
Alertmanager:
pull和push哪个好点?
对于数据实时性,push方式更好地获取实时数据
服务器和网络的负载,可控性而言,pull更好

四、适用的场景和不适用的场景

适用:

Prometheus非常适合记录任何纯数字时间序列。它既适用于面向服务器等硬件指标的监控,也适合于高度动态的面向服务的体系结构的监视。 在微服务世界中,它对多维数据收集和查询的支持是一种特别的优势。
Prometheus的设计旨在提高可靠性,使其成为中断期间要使用的系统,以使您能够快速诊断问题。 每个Prometheus服务器都是独立的,而不依赖于网络存储或其他远程服务。 当服务出现故障时,它可以使你快速定位和诊断问题。它的搭建过程对硬件和服务没有很强的依赖关系

不适用:
普罗米修斯重视可靠性。您始终可以查看有关系统的可用统计信息,即使在故障条件下也是如此。如果您需要100%的准确性,例如对于每个请求计费,Prometheus不是一个好的选择,因为收集的数据可能不够详细和完整。在这种情况下,您最好使用其他系统来收集和分析数据以进行计费,并使用Prometheus进行其余的监视。

五、时序数据库介绍

特点:

时序数据有几个特点
1. 基本上都是插入,没有更新的需求。
2. 数据基本上都有时间属性,随着时间的推移不断产生新的数据,旧的数据不需要保存太久。
业务方对时序数据通常有几个查询需求
1. 获取最新状态,查询最近的数据(例如传感器最新的状态)
2. 展示区间统计,指定时间范围,查询统计信息,例如平均值,最大值,最小值,计数等
3. 获取异常数据,根据指定条件,筛选异常数据

结构:

每个时序点结构如下:
timestamp: 数据点的时间,表示数据发生的时间。
metric: 指标名,当前数据的标识,有些系统中也称为name。
value: 值,数据的数值,一般为double类型,如cpu使用率,访问量等数值,有些系统一个数据点只能有一个value,多个value就是多条时间序列。有些系统可以有多个value值,用不同的key表示
tag: 附属属性。

容器类常用监控软件学习-Prometheus_第2张图片

六、grafana的作用

Prometheus作为一个中间点,而Grafana作为可视化展示,后面的exporter作为监控,exporter将需要获取的数据获取并连接到Prometheus,而Prometheus连接到Grafana,直观展示被监控者状态;

Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:
展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;
混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。

七、和其他监控软件比较(zabbix)

zabbix后台采用的是关系型数据库作为存储,当数据量很大时,监控性能会明显下降,对容器监控支持差

而Prometheus很适合监控容器,采用高性能的时序数据库作为存储,当监控规模数据量很大的时候,也能应付,目前看起来得到了越来越广泛的应用,符合监控发展的趋势

其他比较:

容器类常用监控软件学习-Prometheus_第3张图片

你可能感兴趣的:(云原生,运维工具,学习,prometheus)