擎创科技研发副总裁殷传旺《Prometheus与Zabbix的融合实践智能监控中心》
傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。——–王小波
写在前面
傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。——–王小波
2022年X月X日,在CSDN云原生系列在线峰会第XX期Prometheus上,擎创科技研发副总裁殷传旺分享了:Prometheus与Zabbix的融合实践构建智能监控中心。从监控诉求,工具的演变,对比了Prometheus和Zabbix优缺点,提出利用Prometheus和Zabbix互补的特性,整合两者,实现对系统指标更全面的观测,从而使指标监控趋向智能化,即而构建智能监控中心。
监控最关键的诉求
监控最关键的两个诉求,发现问题,定位问题
发现问题
走访了很多的客户,在发现问题这个环节里边,监控的误漏报比较多
- 把整个监控阈值或者说这个规则设置的比较严谨,有很多的误报
- 把整个规则放得比较松的话,有很多漏报
所以说在监控这个规则设置上,其实很难找到一个比较好的折中点。
定位问题
当发生故障之后的话,其实缺乏综合的跟定鉴或者说定位的这种手段
监控工具以及诉求的演变
总结了说最近十几年,整个it从底层的基础架构到上层的应用架构,到监控系统所需要监控的监控对象,到上层的一个监控工具的演变,以及用户的监控诉求演变的一些变化的趋势。
最底层的技术架构来讲
从最开始的以物理机为主的这种物理资源,逐渐变成比如说X86虚拟化,再很快过度的像容器化,现在的云环境,还有不止一朵云,从原来的单一数量少,变成现在一种混合式的这种it环境,或者现在讲叫双态的一个it环境,有稳态和敏态的环境。
应用架构
从最开始的单体应用,逐渐按照领域去做微服务拆分,现在都是一些分布式的应用,所以整个的应用架构变得越来越复杂,服务的交融关系的话变得也是更难以去追踪。
监控对象
最开始整个的监控其实主要还是以系统往下为主,也就是说更侧重于说硬件网络存储,操作系统,中间件数据库,再往上最多也就关注到进程、关键字等的监控。
随着整个应用架构逐渐从单体应用到微服务之后的话,整个的监控视角监控的对象也从原来的偏系统往下逐渐在往应用层去走。比如说物理机虚拟化之后,在监控单个虚拟机的 Cpu,意义就不大了,是按照一个服务的视角去做监控。
监控数据
整个监控数据的话,从原来的指标数据也扩展到包含日志数据。在到云时代到分布式之后的话,环境会变得更加复杂,还会有一些比如说调用链的手段,比如说像SkyWalking或者说splunk的这种 ATM工具,监控里边的话,除了像前面讲的指标日志之外的话,加上链路数据,整个监控也会分为云上和云下,云上有云上云产品的监控,所以说整个监控对象的话变得是越来越多了,越来越复杂。
监控工具
监控工具是专业领域自主建设的,还是一种偏竖井式的建设为主,这个数据的话缺乏内在管理,比如说像原来讲一些外资为主的这种监控工具比如像Tivoli或者bmc patrol,现在逐渐在做开源转变,比如说像Zabbix或者Prometheus为主,但是各自都是在监控各自的一些领域里面。
- Zabbix主要是监控一些云外的,所以也叫云外的这种情况为主,更多的还是偏系统偏底层为主。
- Prometheus主要还是以 K8s里的这个云内的云原生监控为主
所以整体来讲监控工具的建设还是偏竖井式为主,并没有形成一个整体,但是整个用户的一个监控诉求发生很大变化。当前的监控工具已经不能满足需求
解决之道 – 分久必合
双态
整个it环境其实是一个双态的环境,也就是有稳态环境,有敏态环境。稳态的话主要包含咱们的硬件、系统、网络设备等等这些物理这块的监控。闽泰的话主要是以 k8s里边的云声为主的这些容器化监控,这些微服务监控,甚至说云上监控。
跨域
数据是跨域的,一般像传统企业里边,咱们整个监控其实分一般分系统式,网络室,还有比如说应用科室等之类的,所以这块本身从管理上或者从这个工具的使用层面来讲,本身都是分不同的领域去建设的。
多元化
从监控数据的来源来讲,多元化其实是不可避免的,比如说去监控 k8s语音原声的这种数据,Prometheus是最佳选择。如果说想监控网络设备,或者说或者说硬件数据,那that x
也是一个不错选择
异构
把事件指标日志调用链几类数据能够整合起来,它们从数据的形态,数据的结构以及存储方式上面都有很大差异性,如何能够把这些数据能够整合到一起,让数据之间是有关联关系的,打破易购的这种挑战,这块会是第四个挑战。
云内外一体化监控(ZABBIX + Prometheus)
监控系统是分云内外分别去管理的,甚至说比如像Prometheus还会有不止一套Prometheus的系统,因为Prometheus单个系统的话,我有一些监控上线,我是一种联邦制的这种方式,如何能基于现在的这种监控环境,能够到一种一体化的监控的管理视角呢,这块是今天想讲的一些个想分享的一个重点。
指标数据模型对比
Prometheus的这种指标结构是非常灵活的,可以满足就按照维度,去做多指标查询这么一种需求的。以Prometheus的格式为主,对,基于这个之上的话,还构造形成了统一的一个指标数据模型。
统一指标数据模型
统一监控指标体系
高维、高级指标存储查询能力,其实成为了整个监控系统的一个非常关键的能力,所以如何能够支持这种高危高级指标的这种存储和查询,其实就变成了说整个监控系统非常关键的一个能力
超高维度时序数据库 – Prom QL with Click House
把 Prom QL 经过一系列转化转化成Click语句,然后去做查询。这是我们能够利用Click的分布式的数据库能力,然后又结合了 Prom QL 的这个查询优点的一种解决方案。
强大的指标查询(Prom QL)
指标的查询非常灵活,和 Prometheus 查询基本一致,标签维度可以自动查询,支撑复杂指标的运算
智能化实时告警 – Prom QL with Stream and AI
智能化实时告警的一些实现思路或者实现方法:
- 智能算法,注册为函数
- 流处理中,编码方式需要翻译成流式代码
- 状态的管理,数据的管理
智能化告警引擎(Prom QL With A
基于一个流式的一个智能化的告警引擎,实现了一个告警能力。
丰富的可视化展现能力与 Grafana 无缝集成
基于CK对上实现了完整的这个Prometheus,所以其实们可以把这个查询服务在Grafana 里边注册为一个湖米??
类型的数据源,也就是说对Grafana 来讲,建一个数据源,里边其实输入的是整个查询的API,同时通过 Grafana 可以配置不同的仪表盘。
整理参考
峰会录音,PPT
擎创科技研发副总裁殷传旺《Prometheus与Zabbix的融合实践智能监控中心》
https://liruilongs.github.io/2022/08/13/K8s/翻译/擎创科技研发副总裁殷传旺《Prometheus与Zabbix的融合实践智能监控中心》/