【监控】InfluxDB与 Prometheus的监控分析

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
简介: InfluxDB 与 Prometheus 两个时序数据库可以说是在一个十字路口,背向而行的两个数据库。怎么这么说呢?InfluxDB 是 push 的方式获取监控指标数据, Prometheus 是 pull 的方式获取监控指标数据, promethues 的生态也很完善,比如我们可以使用 cortex 来实现 多租户的管理, influxDB ,还不清楚。这里需要简单的去看一下 influxDB 和 prometheus 两个数据库,做一个比较。

InfluxDB 与 Prometheus 两个时序数据库可以说是在一个十字路口,背向而行的两个数据库。怎么这么说呢?InfluxDB 是 push 的方式获取监控指标数据, Prometheus 是 pull 的方式获取监控指标数据, promethues 的生态也很完善,比如我们可以使用 cortex 来实现 多租户的管理, influxDB ,还不清楚。这里需要简单的去看一下 influxDB 和 prometheus 两个数据库,做一个比较。

获取指标的方式

Prometheus 和 InfluxDB 在数据的采集上两者选择了不同的极端,前者只能 pull , 后者只能 push .

Promethues 的数据采集器,我们称之为 exporter ,每一个 exporter 会对外开放一个 端口, 供 Prometheus Server 拉取数据。

InfluxDB 的数据采集器 Telegraf, influxDB 官方宣传插件化驱动。 这玩意的默认配置文件很多,包括 push 的目的地址,以及各种插件的控制目的等等。相比之下, Prometheus 的 exporter 是不需要任何的配置的,也不需要任何的依赖关系,也就是所谓的开箱即用。

数据存储

InfluxDB 的存储引擎是基于一种叫做TSM的自研引擎,

Prometheus 则是柔和了 leveldb 与 自研的存储引擎.

Prometheus 提供了后端的存储,比如说 Cortex ,还可以基于 Cortex 进行多租户的管理设置。同时,InfluxDB 也可以作为 Prometheus 的存储后端。

InfluxDB嘛,再看。

数据查询(1分钟内 CPU 使用率)

在数据查询上面, InfluxDB 的查询语言 InfluxQL 与 SQL 类似, 但是不能像 SQL 那样做强大的表与表之间的操作.

SELECT 100 - usage_idel FROM "autogen"."cpu" WHERE time > now() - 1m and "cpu"='cpu0'

Prometheus 的查询语言也很有特点, 看起来会像 JSON , 但是通过它也可以实现各种强大的查询操作.

100 - (node_cpu{job="node",mode="idle"}[1m]) 

高可用与集群功能

目前这两者从开源的角度上来说,做的都不是很友好。

influxDB 的集群功能是商业功能,目前开源的有一个 高可用的套件: influxdb-relay .但是这个其实就是在 influxDB 前面增加了一个代理转发,数据经过的时候会被它分发到各个数据库实例上。但是这个不支持 QUuery 的操作,也就是说,在查询上,这个代理这边的数据聚合是一件很麻烦的事情。

Prometheus 这边目前也是没有什么高可用集群概念的,但是 Prometheus 有一个联邦的概念,目的就是解决不同的 Prometheus 采集不同的类型的指标,最后有一个Prometheus进行汇总。同时,Prometheus这边的扩展性会比InfluxDB好很多,比如说远程存储后端,Prometheu可以配置 Cortex 作为租户的管理,配置 Cassandra 作为数据的存储点,这一点是 influxdb比不上的。

告警

监控体系

InfluxDB

一般的,使用 Telegraf + InfluxDB + Grafana + Kapacitor 搭建一套监控体系

Telegraf

Telegraf 是实现 数据采集 的工具。Telegraf 具有内存占用小的特点,通过插件系统开发人员可轻松添加支持其他服务的扩展。

在平台监控系统中,可以使用 Telegraf 采集多种组件的运行信息,而不需要自己手写脚本定时采集,大大降低数据获取的难度;且 Telegraf 配置极为简单,只要有基本的 Linux 基础即可快速上手。Telegraf 按照时间序列采集数据,数据结构中包含时序信息,借助 Influxdb 可以针采集得到的数据完成各种分析计算操作。

influxdb组合监控架构体系

Prometheus

一般的,我们使用 Exporter+ Prometheus+ Grafana + Alertmanager 搭建一套监控体系

Prometheus重视可靠性,但是做不到准确性(100%),比如说,请求计费,Prometheus 就不是一个很好的选择,因为 Prometheus 收集到的数据存在不够详细和完整。在这种情况下,用 InfluxDB 来收集和分析数据以进行计费计算回事比较好的,使用 Prometheus 来进行其他的监控。

结论

  • 如果只考虑监控, Prometheus 是最好的选择,至少在 Prometheus 和 InfluxDB 里面。 Prometheus 是最优秀的。
  • 但是,如果除了监控,还会有其他的一些业务指标,InfluxDB 是比较合适的。
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
相关文章
|
1月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
259 3
|
1天前
|
存储 数据采集 Prometheus
Grafana Prometheus Altermanager 监控系统
Grafana、Prometheus 和 Alertmanager 是一套强大的开源监控系统组合。Prometheus 负责数据采集与存储,Alertmanager 处理告警通知,Grafana 提供可视化界面。本文简要介绍了这套系统的安装配置流程,包括各组件的下载、安装、服务配置及开机自启设置,并提供了访问地址和重启命令。适用于希望快速搭建高效监控平台的用户。
41 20
|
4天前
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
37 3
|
4天前
|
Prometheus 监控 Cloud Native
无痛入门Prometheus:一个强大的开源监控和告警系统,如何快速安装和使用?
Prometheus 是一个完全开源的系统监控和告警工具包,受 Google 内部 BorgMon 系统启发,自2012年由前 Google 工程师在 SoundCloud 开发以来,已被众多公司采用。它拥有活跃的开发者和用户社区,现为独立开源项目,并于2016年加入云原生计算基金会(CNCF)。Prometheus 的主要特点包括多维数据模型、灵活的查询语言 PromQL、不依赖分布式存储、通过 HTTP 拉取时间序列数据等。其架构简单且功能强大,支持多种图形和仪表盘展示模式。安装和使用 Prometheus 非常简便,可以通过 Docker 快速部署,并与 Grafana 等可
40 2
|
28天前
|
存储 Prometheus 监控
监控堆外第三方监控工具Prometheus
监控堆外第三方监控工具Prometheus
46 3
|
1月前
|
存储 Prometheus 运维
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案。该集成结合了ARMS的基础设施监控能力和Prometheus的灵活配置及社区支持,实现了全面、精准的系统状态、性能和错误监控,提升了应用的稳定性和管理效率。通过统一的数据视图和高级查询功能,帮助企业有效应对云原生挑战,促进业务的持续发展。
39 3
|
1月前
|
Prometheus 监控 Cloud Native
在 HBase 集群中,Prometheus 通常监控哪些类型的性能指标?
在 HBase 集群中,Prometheus 监控关注的核心指标包括 Master 和 RegionServer 的进程存在性、RPC 请求数、JVM 内存使用率、磁盘和网络错误、延迟和吞吐量、资源利用率及 JVM 使用信息。通过 Grafana 可视化和告警规则,帮助管理员实时监控集群性能和健康状况。
|
1月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
215 0
|
3月前
|
Prometheus 监控 Cloud Native
介绍如何使用Prometheus进行监控
介绍如何使用Prometheus进行监控
319 3
|
3月前
|
Prometheus 监控 Cloud Native
docker安装prometheus+Granfan并监控容器
【9月更文挑战第14天】本文介绍了在Docker中安装Prometheus与Grafana并监控容器的步骤,包括创建配置文件、运行Prometheus与Grafana容器,以及在Grafana中配置数据源和创建监控仪表盘,展示了如何通过Prometheus抓取数据并利用Grafana展示容器的CPU使用率等关键指标。
142 1

热门文章

最新文章