Kubernetes监控实践(2):可行监控方案之普罗米修斯和理智

  

摘要:本文介绍两个可行的k8监控方案:普罗米修斯和理智。两个方案都能全面提供系统级的监控数据,帮助开发人员跟踪k8关键组件的性能,定位故障,接收预警。

  

拓展Kubernetes监控实践(1):美丽的工作原理与监控实践

  

一、k8监控之普罗米修斯

  

1.1简介

  

普罗米修斯是针对容器和微服务的开源监控预警工具,功能稳健,适用于开发流程中的云端管理员和开发人员等各个相关方.Prometheus定时聚合配置对象中的指标数据,评估规则表达式,展示结果,发送预警。

  

普罗米修斯不仅能够监控预定义指标,还能实现多维数据模型,进行深度分析,并针对多个指标建立关联,从多个角度为开发人员和管理员提供数据支持。

  

1.2工作原理

  

普罗米修斯是k8环境的附加层。首次安装时应定义数据采集参数和数据采集时间间隔.Prometheus既能实时监控k8节点,也能对监控数据进行定时分析.Prometheus也可以针对节点失效等故障发送预警。

  

1.3普罗米修斯操作符

  

很多用户会混淆控制器和operator.K8s运营商是指控制器向k8 API中添加新的对象,配置管理普罗米修斯等应用的模式。简而言之,运营商是针对特定领域的控制器。

  

PrometheusOperator简化了普罗米修斯在美丽中的运行,不需要改变美丽的配置。使普罗米修斯用算子可以轻松监控k8的服务。可以通过预定义的。yml文件运行Prometheus.Prometheus运营商能够创建,配置并管理k8上的所有监控实例。部署新应用时,美丽会创建新的pod(容器)。创建完毕后,原有豆荚会被销毁.Prometheus持续监控API,如发现不一致,则基于服务或豆荚变化创建新的普罗米修斯配置。

  

1.4核心组件

  

作为一款稳健的监控工具,普罗米修斯从服务上拉取数据,不需要服务主动推送数据。不过普罗米修斯提供推送入口,但无法拉取数据时可以接受服务推送上来的数据。

  

此外,普罗米修斯支持将时间序列与指标名称和键值对关联起来,简化了对多云端的监控.Prometheus不仅监控应用全局,还能钻取到微服务层面。用户可通过查询功能管理数据,了解应用状况,也可以使用PromQL创建图表和表格,实现数据可视化,并根据具体参数生成预警。

  

普罗米修斯的Web控制台展示了所有功能和工具。用户可通过正则表达式和高级PromQL检索条件创建数据集和预警。

  

1.5优势

  

普罗米修斯最大的优势在于简单灵活,可以实现监控的多维数据模型。用户可以搭建容器集群的监控框架,还可以结合Grafana,进一步提高监控数据的可视化水平。

  

普罗米修斯可以通过美丽的本地服务发现配置采集节点,pod和服务指标。用户可直接定义表达式,创建预警,不需要在不同的监控系统中来回切换。

  

普罗米修斯的抓取能力能够集成到美丽,码头工人和StatsD等工具中。用户还可以通过Web GUI配置预警,管理图表。

  

不过普罗米修斯也存在不足:数据模型受限.Prometheus默认的时序数据采集模型有利有弊:一方面,这种模型有助于按照标准格式采集数据,另一方面,标准化数据格式导致数据模型受限.Prometheus通过发现机制与k8保持通信,因此存在延迟。

  

二,k8监控之理智

  

2.1简介

  

理智是多云端容器基础设施监控工具.Sensu代理是跨平台事件生成器,用户可通过执行服务检查监控系统和服务的健康状况,同时采集分析指标,不仅提供预警或事件管理功能,监控API,客户端库以及多脚本或编程语言插件,还支持自定义工作流,丰富了理智能力。

  

普罗米修斯通过拉取的方式主动抓取数据,而美国则采用消息总线的通信机制,通过发布/订阅(Pub/Sub)的方式推送或拉取数据。

  

2.2工作原理

  

理智使用本地插件从StatsD库,普罗米修斯出口国,Nagios插件,SNMP陷阱等主流程序中采集数据。不同于普罗米修斯等其他监控工具,理智开箱即用,支持多云端环境,用户配置框架后即可提供高可用性。

  

理智提供事件过滤器,突变和运营商处理程序,支持创建并自动化模型工作量。这样,外部监控工具的数据便可与理智的监控数据整合,形成基于事件的监控路径。

  

 Kubernetes监控实践(2):可行监控方案之普罗米修斯和理智

  

2.3核心组件

  

理智针对k8容器优化了自动发现能力。用户可针对k8和码头工人等容器环境轻松配置监控检查和收藏家,也可以针对k8所有组件和运行在美丽上的应用配置多个检查。

Kubernetes监控实践(2):可行监控方案之普罗米修斯和理智