【生产环境K8S从搭建到运维的实录(三)】Monitoring System监控系统
1.前述
当用户抱怨系统反映迟缓,可能是某台机器负荷过高,可能是某个服务进程被挂起,也可能是某个磁盘空间被占满,到底是什么原因呢?如果没有监控系统,对于运维人员来说是件多么可怕的事情,我们需要在几十台或者几百台服务器中去寻找原因。相反,如果有一套全面的可视化监控系统帮助我们实时地掌握整个系统的运行状态,那么我们就可以准确预测以及防止故障的发生。所以,监控系统是我们整个k8s系统中非常重要的一个子系统。
2.监控系统(Monitoring System)的构成
这次我们的监控系统主要分为三个部分,分别用到以下三个工具。
- 可视化数据展示模块:Grafana
- 监控系统的核心模块:Prometheus
- 监控数据存储模块:InfluxDB
当然市面上可以用来监控的工具还有很多,其中Prometheus就是近几年来非常流行并且适合k8s环境监控的工具之一,免费开源也是它被相中的一个重要原因。毕竟我们只选最对的,不选最贵的。
在我们的监控系统中,上面提到的三个工具都是以Docker容器的形式运行在同一台Linux环境的虚拟服务器中,这台服务器被我们称为监控服务器。这里需要注意一下,这台虚拟机是独立于k8s集群的,这台服务器以及服务器上运行的所有容器都是不受k8s集群管理的。
下面是我们这次监控系统的大致构成图,其中监控系统的核心Prometheus,从k8s集群中