容器云成为IT的主要基础设施平台,以Docker为代表的容器技术,加上以Kubernetes为代表的容器编排技术,是目前最流行的容器云建设方案。云平台的特点是快速部署、弹性伸缩、动态调整、运维自动化,对应的监控也需要是动态发现、自动化部署的。我们的项目是以Zabbix为基础监控工具设计和建设的,但鉴于prometheus对docker和 k8s监控的天然集成, 我们打算引入prometheus和Zabbix 结合起来,复用之前Zabbix上开发扩展的功能,达到可以快速实现 、高效部署的云平台整体监控方案 。
Zabbix是面向IP的监控,更适合于物理机/虚拟机环境的监控,可以通过开发自定义脚本采集数据从而实现各类型监控,Prometheus是面向服务和数据的监控,适合云环境的监控,原生支持监控容器,更好的适配k8s,且提供专业的exporter,监控项更全面,不需要二次开发;zabbix agent本身进程有限,agent进程按Server端配置串行取值,采集的效率决定于自定义脚本的执行效率,即使单个监控项采值很快,但若Host同时存在上千个agent类型监控项,还是会造成大部分agent监控项取值延迟,需根据监控项数量调整采值间隔优化,Prometheus官方显示的采集速度是10w/sec,且Prometheus使用时序数据库,更适用于监控数据的存储,按时间索引性能更高,所以使用Prometheus监控容器或k8s本身的性能监控比zabbix实现容器或k8s更优。
Prometheus监控项值仅支持数字类型,zabbix监控项取值类型支持数字、字符串,且zabbix图形化界面成熟,方便查看、配置监控项,所以可