k8s–基础–26.1–监控告警系统–prometheus–介绍


1、前言

主要介绍k8s集群中部署prometheus,并且配置prometheus的动态、静态服务发现,实现监控容器、物理节点、service、pod等资源指标,配置prometheus的web ui界面、

2、简介

  1. Prometheus是一个开源的系统监控和报警系统
  2. Prometheus性能足够支撑上万台规模的集群
  3. 在kubernetes容器管理系统中,通常会搭配prometheus进行监控
  4. 支持多种exporter采集数据
  5. 支持pushgateway进行数据上报

3、特点

  1. 多维度数据模型
    1. 时间序列数据由metrics名称和键值对来组成
    2. 可以对数据进行聚合,切割等操作
    3. 所有的metrics都可以设置任意的多维标签。
  2. 灵活的查询语言(PromQL)
    1. 可以对采集的metrics指标进行加法,乘法,连接等操作;
  3. 可以直接在本地部署,不依赖其他分布式存储;
  4. 通过基于HTTP的pull方式采集时序数据;
  5. 可以通过中间网关pushgateway的方式把时间序列数据推送到prometheus server端;
  6. 可通过服务发现或者静态配置来发现目标服务对象(targets)。
  7. 有多种可视化图像界面,如Grafana等。
  8. 高效的存储
    1. 每个采样数据占3.5 bytes左右,采样间隔30s,数据保留60天
    2. 300万的时间序列,消耗磁盘大概200G。

4、prometheus组件介绍

4.1、Prometheus Server

用于收集和存储时间序列数据

4.2、Client Library

  1. 客户端库,检测应用程序代码
  2. 当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。

4.3、Exporters

prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端。

4.4、Alertmanager

  1. 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警
  2. 常见的接收方式有:电子邮件,微信,钉钉, slack等。

4.5、Grafana

监控仪表盘

4.6、pushgateway

各个目标主机可上报数据到pushgatewy,然后prometheus server统一从pushgateway拉取数据。

5、prometheus架构图

在这里插入图片描述

5.1、Prometheus整个生态圈组成

  1. prometheus server
    1. Retrieval
    2. Storage
    3. PromQL
  2. Exporter
  3. pushgateway
  4. alertmanager
  5. grafana
  6. Web ui界面

5.2、Retrieval

负责在活跃的target主机上抓取监控指标数据

5.3、Storage

存储主要是把采集到的数据存储到磁盘中

5.4、PromQL

是Prometheus提供的查询语言模块。

6、prometheus工作流程

6.1、采集数据

  1. 方式1:Prometheus server可定期从活跃的(up)目标主机上(target)拉取监控指标数据,目标主机的监控数据可通过配置静态job或者服务发现的方式被prometheus server采集到。
  2. 方式2:可以通过pushgateway把采集的数据上报到prometheus server中
  3. 方式3:可以通过一些组件自带的exporter采集相应组件的数据;

6.2、持久化采集的数据

Prometheus server把采集到的监控指标数据保存到本地磁盘或者数据库;

6.3、发送报警的数据到alertmanager

Prometheus采集的监控指标数据按时间序列存储,通过配置报警规则,把触发的报警发送到alertmanager

6.4、alertmanager 将报警内容发送给客户

Alertmanager通过配置报警接收方,发送报警到邮件,微信或者钉钉等

6.5、查询监控数据

Prometheus 自带的web ui界面提供PromQL查询语言,可查询监控数据

6.6、图形化展示监控数据

Grafana可接入prometheus数据源,把监控数据以图形化形式展示出

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐