需求
在做Ceph的监控报警系统时,对于Ceph集群监控状态的监控,最初只是简单的OK、WARN、ERROR,按照Ceph的status输出来判断的,仔细想想,感觉这些还不够,因为WARN、ERROR状态中,是包含多种状态的,如果在大晚上收到一条关于Ceph health的报警信息,只知道了集群有问题,但具体是什么问题呢,不得而知。这个事情发生在工作时间,就还好处理,直接到Ceph环境中查看一下就OK。但是在晚上,有些报警没有那么紧急,可以第二天再处理。所以,就需要细化这些健康状态。
因此,从代码中将HEALTH_OK、HEALTH_WARN、HEALTH_ERR的相关描述输出拉出来,进行判断,分类处理,然后用状态码(status code)的方式来进行Level化。
Ceph本身的健康状态信息:
HEALTH_WARN:
集群健康状态描述信息 | 代表的现象 |
---|---|
Monitor clock skew detected | 时钟偏移 |
mons down, quorum | Ceph Monitor down |
some monitors are running older code | 部署完就可以看到,运行过程中不会出现 |
in osds are down | OSD down后会出现 |
flag(s) set | 标志位设置,可以忽略 |
crush map has legacy tunables | 部署完就可以看到,运行过程中不会出现 |
crush map has straw_calc_version=0 | 部署完就可以看到,运行过程中不会出现 |
cache pools are missing hit_sets | 使用cache tier后会出现 |