kubernetes云原生纪元:从整体把握监控
监控的目的
- 及时发现已经出现的问题
- 提前预警可能发生的问题
监控什么
-
系统基础指标
服务器 内存CPU 基础信息
-
服务基础信息
服务占用多少内存多少CPU,内存是否溢出,占用的网络IO,磁盘 带宽 ,监听端口
-
服务个性信息
有些服务提供特定的接口,用来提供更细致跟深入服务的信息,每种服务有特定的特征,和自定义的参数,比如web服务,请求的排队情况,没秒的请求次数,错误次数,请求的处理时间。
-
日志
日志的异常数,某些特定的异常频率做预警。
如何监控
-
数据 采集
定时收集一些数据,每分钟,每10s去采集一次,为什么定时,它是一个持续长期的任务,采集一次肯定没有什么意义。
-
数据存储
数据采集完就算数据存储,用时间序列数据库来存储,为什么是时间序列,我们采集一次的是否需要报警吗,需要报警吗,但是我们一般是以时间或次数作为依据比如5分钟内某件事情发生3次来报警,3分钟内CPU使用持续超过70%报警,大部分的报警场景跟时间有关系。
-
定义报警规则
根据数据定义报警的规则,一旦达到条件,触发报警。
-
配置报警方式
具体的报警通知,打110或许是其中之一。但一般是通过邮件,短信,钉钉,企业微信…去发送对应接收报警的人或者是群主。
业内常见的监控组件/方案
-
Zabbix
载比克 对系统的监控
-
OpenFalcaon
小米开源的OpenFalcaon
-
听云、监控宝
商业产品
Kubernetes的监控
- 每个节点的基础指标
- 每个容器的基础指标
- Kubernetes集群基础组件的监控
Kubernetes因为每个容器节点都会经常变,如果部署一个监控服务,那也是费力不讨好的事。