云原生监控告警-Prometheus

270 阅读2分钟

一、监控的意义和分类

image.png

微服务的推广 架构的演进 需要完善的监控 先于用户发现 并解决问题

监控的分类

image.png

k8s探针 真实服务的状态

二、promethues架构

image.png

retrieval 检索上报数据的地址 去discover target(IP:port:endpoint) TSDB 时间序列数据库 httpserver 对外提供服务

pushgateway 接受间接性的启动 上报数据

数据模型

image.png

指标类型

image.png

监控数据的采集方式

image.png

image.png

在kubernets中汇报指标

image.png

数据的存储(TSDB)

image.png

数据的存储机制

image.png

数据索引

image.png

数据压缩

image.png

存储规划

image.png

promql

image.png

开启告警

image.png

大规模集群监控 thanos

image.png

三、promrthues服务发现机制

promethues架构

image.png

主动方式 pull的方式抓取数据 去找endpoint拉取数据

promsql查询、展示指标

promethues典型配置

image.png promethues 是有状态应用 如果放在容器中 需要挂载一个盘 用来存储数据, 防止重建数据丢失

全局配置

image.png evaluation_interval 评估周期

  • 评估规则 判断标准, 如果命中 就报警

告警配置, 配置 altermanager的地址和端口

image.png

altermanager提供一个endpoint promethues_server将告警 推送到altermanager告警中心

告警规则

image.png

抓取目标的配置

image.png

promethues_server 读取这些配置地址 去拉取数据

promethues的服务发现

image.png

静态环境

  • promethues 配置IP的话 静态的配置 直接抓取就可以

动态环境 云原生场景

  • 需要去定位pod
  • pod迁移 驱逐问题
  • pod的IP会变

服务注册中心

  • 存储所有监控目标的信息 提供存在指标的节点信息

服务生产者 ---> 把自己注册到服务中心 服务消费者 --->请求服务中心 要地址

基于文件的服务发现 静态的服务发现

image.png

发现类型 配置为 file_sd_configs 通过文件的形式去做服务发现

基于promethues的服务发现

image.png

去什么地方取? 提供apiserver 去查询有哪些target

取哪些信息? 覆盖抓取label中的值

action

  • keep 保留指标
  • drop 删除指标

relabel机制

relabel

image.png

目的

  • 过滤查询 数据打标签 辅助进行数据查询
  • 标签标准化

relabel机制

image.png

image.png

relabel config

image.png

按照环境 按照业务、团队

image.png

保留场景

image.png

  • 100个endpont的时候 需要选择特定的endpoint

替换抓取的任务端口

altermanaer告警

用户没有发现的前提下 发现问题 问题进一步恶化 将问题解决掉

微服务之间的依赖关系 image.png

告警困境

image.png

把握度 什么时间应该告警

节点故障自愈 自愈的告警 不需要告警了 发消息通知就行

告警规则

image.png

image.png

altermanter架构

image.png

同一个alter 不要重复告警 可以配置一个静默期

路由规则

image.png