一、介绍

1.基本概念

prometheus是一种时间序列的数据库,适合应用于监控以及告警,但是不适合100%的准确计费,因为采集的数据不一定很准确,主要是作为监控以及收集内存、CPU、硬盘的数据。

前身是SoundCloud警告工具包,在2016年继Kubernetes之后,加入了 Cloud Native Computing Foundation

1.1 主要特征

多维数据模型(时序数据由 metric名和一组 key/value组成)

在多维度上灵活的查询语言(PromQI)

不依赖分布式存储,单主节点工作

通过基于HTTP的pull方式采集时序数据

也通过中间网关进行时序数据推送(pushing)

通过服务发现或静态配置,来发现目标服务对象

多种可视化和仪表盘支持,如grafana

1.2 核心组件

Prometheus 01 基础知识_监控

Prometheus 01 基础知识_监控_02

Prometheus 01 基础知识_监控_03

Prometheus 01 基础知识_监控_04

Prometheus 01 基础知识_监控_05

1.3 整体架构

Prometheus 01 基础知识_监控_06

Prometheus 01 基础知识_监控_07

Prometheus 01 基础知识_监控_08



Prometheus 01 基础知识_监控_09

Prometheus 01 基础知识_监控_10

Prometheus 01 基础知识_监控_11

Prometheus 01 基础知识_监控_12

Prometheus 01 基础知识_监控_13



Prometheus vs Zabbix

Zabbix 使用的是 C 和 PHP, Prometheus 使用 Golang, 整体而言 Prometheus 运行速度更快一点。

Zabbix 属于传统主机监控,主要用于物理主机,交换机,网络等监控,Prometheus 不仅适用主机监控,还适用于 Cloud, SaaS, Openstack,Container 监控。

Zabbix 在传统主机监控方面,有更丰富的插件

Zabbix 可以在 WebGui 中操作配置,Prometheus 需要手动修改文件配置。

总结

Prometheus 属于一站式监控告警平台,依赖少,功能齐全

Prometheus 支持对云或容器的监控,其他系统主要对主机监控

Prometheus 数据查询语句表现力更强大,内置更强大的统计函数

Prometheus 在数据存储扩展性以及持久性上没有 InfluxDB,OpenTSDB,Sensu 好