【K8S运维知识汇总】第7天1:Prometheus监控软件概述

网友投稿 672 2022-11-27

【K8S运维知识汇总】第7天1:Prometheus监控软件概述

【K8S运维知识汇总】第7天1:Prometheus监控软件概述

文章目录

​​概述​​​​Promethus特点​​​​Prometheus架构​​​​Prometheus Server​​

​​指标采集​​​​服务发现​​​​告警管理​​​​图形化展示​​

​​常用的几个Exporter​​​​与Zabbix对比​​

概述

Prometheus 是一款基于时序数据库的开源监控告警系统,非常适合Kubernetes集群的监控。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。

Promethus特点

支持多维数据模型:由度量名和键值对组成的时间序列数据内置时间序列数据库TSDB支持PromQL查询语言,可以完成非常复杂的查询和分析,对图表展示和告警非常有意义支持HTTP的Pull方式采集时间序列数据支持PushGateway采集瞬时任务的数据支持服务发现和静态配置两种方式发现目标支持接入Grafana

Prometheus架构

Prometheus Server

主要负责数据采集和存储,提供PromQL查询语言的支持。包含了三个组件: • Retrieval: 获取监控数据 • TSDB: 时间序列数据库(Time Series Database),我们可以简单的理解为一个优化后用来处理时间序列数据的软件,并且数据中的数组是由时间进行索引的。具备以下特点:

大部分时间都是顺序写入操作,很少涉及修改数据 1 删除操作都是删除一段时间的数据,而不涉及到删除无规律数据 1 读操作一般都是升序或者降序 1 • HTTP Server: 为告警和出图提供查询接口

指标采集

Exporters: Prometheus的一类数据采集组件的总称。它负责从目标处搜集数据,并将其转化为Prometheus支持的格式。与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取 Pushgateway: 支持临时性Job主动推送指标的中间网关

服务发现

• Kubernetes_sd: 支持从Kubernetes中自动发现服务和采集信息。而Zabbix监控项原型就不适合Kubernets,因为随着Pod的重启或者升级,Pod的名称是会随机变化的。 • file_sd: 通过配置文件来实现服务的自动发现

告警管理

通过相关的告警配置,对触发阈值的告警通过页面展示、短信和邮件通知的方式告知运维人员。

图形化展示

通过ProQL语句查询指标信息,并在页面展示。虽然Prometheus自带UI界面,但是大部分都是使用Grafana出图。另外第三方也可以通过 API 接口来获取监控指标。

常用的几个Exporter

Kube-state-metrics: 收集Kubernetes对象的基本信息,但是不涉及Pod中资源占用信息Node-exporter: 收集主机的基本信息,如CPU、内存、磁盘等Cadvisor: 容器顾问,用于采集Docker中运行的容器信息,如CPU、内存等Blackbox-exporter: 服务可用性探测,支持HTTP、HTTPS、TCP、ICMP等方式探测目标地址服务可用性更多exporter参考官方:https://prometheus.io/docs/instrumenting/exporters/

与Zabbix对比

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:一篇文章彻底搞懂jdk8线程池
下一篇:【搞定Go语言】第2天1:Go语言基础之变量和常量
相关文章

 发表评论

暂时没有评论,来抢沙发吧~