异常检测
异常检测
在定期搜集应用的多维度运行指标之后,我们即需要运用异常检测算法来发现潜在的问题目标。首先需要对于指标进行特征选取与处理,譬如关联性处理、指标转换等。然后针对稳定区间、非稳定区间,用不同的离群点检测算法来综合打分做处理。
错误
错误是指当前系统发生的错误请求和错误率,是需要在添加监控时首要关注的指标。基础监控维度的宕机、磁盘(坏盘或文件系统错误)、进程或端口挂掉、网络丢包等故障。业务监控则较为复杂,可能包含以下方面:
- 核心功能处理错误,每种系统都有特定的核心功能,比如 HDFS 的文件块读写、Zookeeper 对 Key 的读写和修改操作。
- 基础功能单元丢失或异常,这里的基础功能单元是指一个系统功能上的基本单位,例如 HDFS 的 Block、Kafka 的 Message,这种基础数据的丢失一般都会对业务功能造成直接的影响。
- Master 故障,对于中心化的分布式系统来说,Master 的健康状况都是重中之重。例如 HDFS 的 NameNode、Zookeeper 的 Leader,ElasticSearch 的 MasterNode。
- 可用节点数,对于分布式系统来说,可用节点数也是非常重要的,比如 Zookeeper、ETCD 等系统需要满足可用节点数大于不可用节点数才能保证功能的正常。
除白盒监控外,主要功能或接口、以及内部存在明显边界的功能模块和上游依赖模块,都应该添加黑盒端到端监控。
- MTTF, Mean Time To Failure,系统平均运行多长时间才发生故障,越长越好
- MTTR, Mean Time To Recover,故障平均修复时间,越短越好
可用性计算公式:Availability= MTTF /(MTTF+MTTR)