实战k8s监控--Prometheus介绍

Prometheus简介

Prometheus作为新一代的云原生监控系统,是继Kubernetes之后成为第二个正式加入CNCF基金会的项目。
在这里插入图片描述
官方架构图

在这里插入图片描述

  • Prometheus Server:服务核心组件,通过pull metrics从 Exporter 拉取和存储监控数据,并提供一套灵活的查询语言(PromQL)。
  • pushgateway:类似一个中转站,Prometheus的server端只会使用pull方式拉取数据,但是某些节点因为某些原因只能使用push方式推送数据,那么它就是用来接收push而来的数据并暴露给Prometheus的server拉取的中转站
  • Exporters/Jobs:负责收集目标对象(host, container…)的性能数据,并通过 HTTP 接口供Prometheus Server 获取。
  • Service Discovery:服务发现,Prometheus支持多种服务发现机制:文件,DNS,Consul,Kubernetes,OpenStack,EC2等等。基于服务发现的过程并不复杂,通过第三方提供的接口,Prometheus查询到需要监控的Target列表,然后轮训这些Target获取监控数据。
  • Alertmanager:从 Prometheus server 端接收到 alerts
    后,会进行去除重复数据,分组,并路由到对方的接受方式,发出报警。常见的接收方式有:电子邮件,pagerduty 等。

工作流程:Prometheus Server定期从配置好的Exporters/Jobs中拉metrics,或者来着pushgateway发过来的metrics,或者其它的metrics,收集完后运行定义好的alert.rules(这个文件后面会讲到),记录时间序列或者向Alertmanager推送警报

与zabbix监控系统比较

PrometheusZabbix
后端用golang开发,K8S也是go开发后端用C开发,界面用PHP开发
更适合云环境的监控,尤其是对K8S有着更好的支持更适合监控物理机,虚拟机环境
监控数据存储在基于时间序列的数据库内,便于对已有数据进行新的聚合监控数据存储在关系型数据库内,如MySQL,很难从现有数据中扩展维度
自身界面相对较弱,很多配置需要修改配置文件,但可以借由Grafana出图图形化界面相对比较成熟
支持更大的集群规模,速度也更快集群规模上线为10000个节点
2015年后开始快速发展,社区活跃,使用场景越来越多发展实际更长,对于很多监控场景,都有现成的解决方案

Prometheus的优势

  • 多维数据模型:由度量名称和键值对标识的时间序列数据

  • 内置时间序列数据库:TSDB

  • promQL:一种灵活的查询语言,可以利用多维数据完成复杂查询

  • 基于HTTP的pull(拉取)方式采集时间序列数据

  • 同时支持PushGateway组件收集数据

  • 通过服务发现或静态配置发现目标

  • 支持作为数据源接入Grafana

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值