在moogsoft的situation场景下,可以使用根本原因分析技术进行:
-
通过查看可能导致告警的根本原因,您可以立即确定在故障排除和诊断方面应该从哪里入手
-
根因推荐展示top3
-
通过对situation中可能根因的人工反馈,不断优化根因推荐结果
situation:是一种关联场景,即将相关的问题会整合到一起进行分析和处置,如同一个服务或同一个业务系统在20分钟滑动时间窗口内所产生的告警会合并到一个situation中进行处理,这样可以提供给应用管理员更丰富的告警上下文信息,可以全面来看业务层、数据库层、网络层、应用层等不同层级的告警,并进行综合分析和排障。
可能的根因如何运作
可以手动将告警标记为根本原因告警或症状告警。moogsoft RPC模型会使用此数据做为手工打标的数据来进行学习,并在下一次发生类似的situation时,预测其根本原因。
如上图所示,在关闭告警时,如果运维人员已经能够判断出问题的根因,则可以点击”RPC FEEDBACK“按钮,进行可能的根因标注。
随后 ,当moogsoft生成situation时,会将一个或多个告警标记为可能的根本原因。即使其内的告警量很少,也会始终提供根因推荐。通常,moogsoft拥有的数据越多,它就越准确。但是该数据需要保持一致,例如,两个冲突的标签会使模型混淆。如果您不知道根因,请不要胡乱为其做根因的标记。不需要对每个situation都标记根因。如下图所示,红框中即为可能的根因TOP3推荐结果,按分值进行排序。
Moogsoft如何学习
机器学习使用会使用告警中一些重要的字段作为训练特征,其使用神经网络来估计新创建situation中哪些告警是可能的根本原因。即使该种类型的situtation之前从来没有出现过,机器学习算法也会为其进行根因的推荐。
关于神经网络相关的算法介绍,各位可以通过搜索引擎详细了解,在这里不再详细介绍。
下图为针对机器学习算法选择进行根因分析特征变量和重新训练的操作界面。
配置和重新训练可能的根因
可能的根因模型为每个告警提供可能的根因分值。Retrain会使用用户重新标注的数据重新计算模型。您可以从告警的基本信息中选择哪些字段为算法输入的特征值。默认可能的根因配置使用的可选特征列表如下表所示:
特征 | 特征描述 |
agent | 在Moogsoft中代表通过哪个agent去获取监控源的告警,一个agent也可以代表一个监控源,如Prometheus、Zabbix等。 |
alert arrival order | 代表situation中每个告警到达的顺序。 |
alert Time | 基于告警的发生时间进行了时间的特征抽取,表示在一天中的时间,如一周中的第几天、一天中的第几个小时、小时中的分钟数等。这个特征,主要用于描述某些特殊的行业,如证券,一般早上才会有大量的业务涌入,并产生对系统的影响。 |
class | 告警的分类,如network、database、service、os等。 |
Description | 将描述标记为单词,并使用这些单词来识别可能指示根本原因的关键词和短语。(注意:该部分主要是将文本信息特征向量化来送给机器学习使用。如果是中文涉及到中文的分词,以及针对一些IT专用的名词要存放到词库中,这样才能取得不错的效果) |
Host | 告警的主机 |
Manager | 该告警的负责人,可能包括多个值 |
Severity & Arrival Order | 告警的严重等级和到达顺序 |
Severity Enum | 告警的严重性表示为独立值,为获取最佳效果,请与”severity Raw“结合使用。 |
Severity Raw | 原始严重等级 ,由于告警是被压缩的,因此请将其严重等级的转换过程表示出来,如”警告>主要>严重”。为获得最佳效果,moogsoft建议与”serverity Enum“或”Severity & Arrival Order”结合使用。 |
Situation Alert Time | 将警报时间表示为时间的组成部分,例如,一天中的几小时、一小时中的分钟。 |
type | 告警的类型:可用性、容量、连通性、安全等。 |