通过消费组读取文本日志进行模板匹配

日志模板匹配通过在线匹配日志和模板,监控日志模板的统计信息,例如数量变化。本文介绍通过读取日志文本进行模板匹配的操作步骤。

前提条件

创建日志模板匹配作业

  1. 登录日志服务控制台

  2. 进入创建作业页面。

    1. 日志应用区域的智能运维页签中,单击智能异常分析

    2. 在实例列表中,单击目标实例。

    3. 在左侧导航栏中,选择分析任务 > 文本分析 > 日志模板匹配

    4. 在页面右上角的日志模板匹配任务区域,单击立即创建

  3. 创建模板匹配作业配置向导页面的基本信息区域:

    1. 配置任务名Project日志库类型源日志库等信息。任务结果全部写入当前Project下名称为internal-ml-log的Logstore中。

    2. 创建AliyunLogETLRole角色,日志服务会扮演该角色获取数据。单击下一步

  4. 创建模板匹配作业配置向导页面的算法配置区域,配置不同算法。配置完成后单击完成,日志模板匹配作业从配置的开始时间开始对日志进行检测。

    相似度聚类算法

    不依赖日志模板库,根据日志相似度进行在线聚类匹配分析。

    参数

    说明

    日志实体字段

    根据日志实体字段的值对日志数据分组,每一个分组内的日志数据单独进行模板发现。最多选择或输入2个字段。

    日志等级字段

    用于识别日志风险等级或严重程度的字段,如infoerror等等。如果日志等级字段解析异常或者日志等级字段为空时,则日志等级为unknown

    日志文本字段

    选择待分析的日志字段,文本分析作业将拼接您所选择的字段的值,将其作为整体进行统计分析。最多可选择5个日志字段。如果下拉列表中不存在目标字段,您可手动输入。

    重要
    • 不需要创建索引。

    • 日志模板发现日志模板匹配针对文本内容进行分析,对应日志字段的值必须是text类型,否则将被自动转化成text类型。

    • 如果所有指定的字段的值都不存在,则不会对相应的日志进行统计分析。

    时间窗口长度

    算法以滑动窗口的方式依次分析每个时间窗口内的日志。单位:秒。

    算法会等待时间窗口内的全部日志被采集完成后,再进行分析并生成分析结果。

    异常总数阈值

    当时间窗口内出现的异常事件数量达到该阈值时,表示实体整体倾向于处于异常状态。包括如下两种设置方式。

    • 设置为相对值,取值范围为[0.1,0.5]

    • 设置为绝对值,取值范围为[1,20]

    相似度阈值

    如果日志内容与某一个日志类别模板的相似度大于相似度阈值,则日志属于该日志类别。相似度阈值越低,日志越容易被归为同一个日志类别。

    高级参数

    参数

    说明

    初始化窗口数量

    文本分析作业冷启动(日志积累与算法准备)所需的窗口数。日志相似聚类算法在初始化的若干个窗口内只进行日志积累与算法准备,在后续的时间窗口中才对积累的日志进行异常检测。更多信息,请参见如何设置初始化时间窗口数量?

    最大静默窗口数

    通过最大静默窗口数时间窗口长度指定最大的静默时间,用于检测少见的日志类别。

    针对已发现的日志类别,如果在最大静默时间内没有再次采集到该日志类别的日志,文本分析作业将认为该日志类别已丢失。如果后面再次出现相同的日志类别的日志,文本分析作业会定义一个新的日志类别。例如系统异常时输出Error日志,系统恢复后不再出现该日志,等下次系统异常(超过最大静默时间),再次输出Error日志时,作业会提示出现新的日志类别。

    默认值为672,表示1天内的最大静默窗口数为672个。

    采样率

    通过采样率调整文本分析作业处理日志的比例,默认为1,即处理全部日志。如果采样率小于1,文本分析作业会随机选取对应比例的日志进行处理。

    该参数适用于海量日志场景,当日志量超过作业的处理能力时,您可以调小该参数。

    分隔符

    文本分析作业使用分隔符(包括此处配置的分隔符和空白字符)对日志进行分词。例如日志为11:22:33:44:55,分隔符为冒号(:),日志内容将被解析为11、22、33、44和55。

    数据过滤配置

    通过日志等级字段过滤日志。

    • 如果日志的风险等级与白名单中的日志等级相匹配,则文本分析作业将对其进行分析。

    • 如果日志的风险等级与黑名单中的日志等级相匹配,则文本分析作业不会对其进行分析。

    通识字段模板

    在文本分析作业对日志进行预处理时,日志相似聚类算法会使用模板表达式匹配日志中的文本内容并将其替换为模板名称,有助于提高分析的准确性。例如模板名称IP模板表达式((?<=[^A-Za-z0-9])|^)(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})((?=[^A-Za-z0-9])|$),表示符合该模板表达式的文本内容将被替换为IP

    模板表达式需满足Python正则表达式规则,最多可配置5个模板。

    输入待测试的文本内容后,单击测试,验证您所配置的字段模板是否符合预期。例如输入192.0.2.0,匹配结果为<:IP:>,表示字段模板的配置符合预期。

    相似度匹配算法

    依赖日志模板库,将日志数据与模板库中的模板进行匹配,统计保存匹配结果。

    参数

    说明

    模板源Project

    关联的日志模板库的Project名称。

    模板源Logstore

    关联的日志模板库的Logstore名称。

    模板源任务

    关联的日志模板库的资源标识。

    相似度

    如果日志内容与某一个日志类别模板的相似度大于相似度阈值,则日志属于该日志类别。相似度阈值越低,日志越容易被归为同一个日志类别。

    日志实体字段

    根据日志实体字段的值对日志数据分组,每一个分组内的日志数据单独进行模板发现。最多选择或输入2个字段。

    日志等级字段

    用于识别日志风险等级或严重程度的字段,如infoerror等等。如果日志等级字段解析异常或者日志等级字段为空时,则日志等级为unknown

    日志文本字段

    选择待分析的日志字段,文本分析作业将拼接您所选择的字段的值,将其作为整体进行统计分析。

    • 配置字段白名单:作业仅处理白名单中选择的字段。

    • 配置字段黑名单,作业忽略黑名单中选择的字段,仅处理日志中的其他字段。

    重要
    • 不需要创建索引。

    • 日志模板发现日志模板匹配针对文本内容进行分析,对应日志字段的值必须是text类型,否则将被自动转化成text类型。

    • 如果所有指定的字段的值都不存在,则不会对相应的日志进行统计分析。

    高级配置

    参数

    说明

    匹配方式

    选择不同的匹配方式

    • 字符匹配:直接根据字符是否相同匹配日志与日志模板,适用于日志量和模板量较小的场景

    • 向量匹配:将日志和模板向量化后进行匹配,适用于日志量和模板量较大的场景

    • 哈希匹配:通过相似性哈希匹配日志和日志模板,属于模糊匹配,适用于日志量和模板量特别大的场景

    最大分词数

    限制每一条日志分词后最大的词数,忽略日志中超过最大分词数的部分。

    起始常量长度

    表示日志中的句首的若干个词一定是最终日志模板中的一部分。例如起始常量长度配置为2,那么算法认为每条日志中的前2个词一定是最终日志模板中的一部分。

    采样率

    通过采样率调整文本分析作业处理日志的比例,默认为1,即处理全部日志。如果采样率小于1,文本分析作业会随机选取对应比例的日志进行处理。

    该参数适用于海量日志场景,当日志量超过作业的处理能力时,您可以调小该参数。

    分隔符

    文本分析作业使用分隔符(包括此处配置的分隔符和空白字符)对日志进行分词。例如日志为11:22:33:44:55,分隔符为冒号(:),日志内容将被解析为11、22、33、44和55。

    数据过滤配置

    通过日志等级字段过滤日志。

    • 如果日志的风险等级与白名单中的日志等级相匹配,则文本分析作业将对其进行分析。

    • 如果日志的风险等级与黑名单中的日志等级相匹配,则文本分析作业不会对其进行分析。

    通识字段模板

    在文本分析作业对日志进行预处理时,日志相似聚类算法会使用模板表达式匹配日志中的文本内容并将其替换为模板名称,有助于提高分析的准确性。例如模板名称为IP,模板表达式((?<=[^A-Za-z0-9])|^)(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})((?=[^A-Za-z0-9])|$),表示符合该模板表达式的文本内容将被替换为IP

    模板表达式需满足Python正则表达式规则,最多可配置5个模板。

    输入待测试的文本内容后,单击测试,验证您所配置的字段模板是否符合预期。例如输入192.0.2.0,匹配结果为<:IP:>,表示字段模板的配置符合预期。

    哈希聚类算法

    不依赖日志模板库,基于日志聚类功能进行在线聚类匹配分析。

    参数

    说明

    相似度阈值

    如果日志内容与某一个日志类别模板的相似度大于相似度阈值,则日志属于该日志类别。相似度阈值越低,日志越容易被归为同一个日志类别。

    融合度阈值

    如果两个日志类别模板的相似度大于融合度阈值,则尝试将这两个模板合并为一个模板。融合度阈值越低,模板越容易合并到一个模板。

    时间窗口长度

    算法以滑动窗口的方式依次分析每个时间窗口内的日志。单位:秒。

    算法会等待时间窗口内的全部日志被采集完成后,再进行分析并生成分析结果。

    最大类别数量

    作业保存的日志模板的最大数量,如果超过最大类别数量,则会删除自动生成的模板。

    数据延迟

    处理每个时间窗口的日志数据前作业等待的时间,以确保日志聚类结果已经生成。

    重试等待时长

    如果读取日志聚类结果出现异常时,等待多长时间后再次重试。

    分隔符

    文本分析作业使用分隔符(包括此处配置的分隔符和空白字符)对日志进行分词。例如日志为11:22:33:44:55,分隔符为冒号(:),日志内容将被解析为11、22、33、44和55。

    高级配置

    参数

    说明

    最大类别数量

    作业保存的日志模板的最大数量,如果超过最大类别数量,则会删除自动生成的模板。

    数据延迟

    处理每个时间窗口的日志数据前作业等待的时间,以确保日志聚类结果已经生成。

    重试等待时长

    如果读取日志聚类结果出现异常时,等待多长时间后再次重试。

    分隔符

    文本分析作业使用分隔符(包括此处配置的分隔符和空白字符)对日志进行分词。例如日志为11:22:33:44:55,分隔符为冒号(:),日志内容将被解析为11、22、33、44和55。

查看日志匹配作业结果

  1. 登录日志服务控制台

  2. 查看作业详情页面。

    1. 日志应用区域的智能运维页签中,单击智能异常分析

    2. 在实例列表中,单击目标实例。

    3. 在左侧导航栏中,选择分析任务 > 文本分析 > 日志模板匹配

    4. 单击目标作业标识,查看匹配结果。

  3. 不同的算法类型,有不同的匹配结果。

    相似度聚类算法

    说明

    创建作业后,需等待一段时间才能看到首个时间窗口内的分析结果。等待时间取决于时间窗口内的日志量,一般不超过一个时间窗口的时长。

    1. 日志模板管理页签,查看已生成的日志模板。您还可以单击概览,查看该日志模板对应的日志数量变化趋势。

    2. 日志异常详细页签,查看日志异常详情。如果您在创建文本分析作业时,设置了日志实体字段,则可以在页面左上角筛选实体。系统将展示目标实体对应的分析结果,包括如下内容。

      • 日志数量趋势统计:展示所选时间范围内每个时间窗口中日志数量的变化情况,以及数量异常变化时的异常分数。

      • 日志类别异常总览:展示所选时间范围内每个时间窗口中日志整体的异常情况和每个日志类别的异常情况。分数越高,异常情况越严重,分数在0~1之间。

      • 日志异常详情:单击具体的色块,将在日志异常详情区域展示对应的异常事件详情。展示所选时间范围内所有的异常事件,包括异常事件所涉及的日志类别、日志等级、异常类型、异常分数和异常出现的时间窗口等信息。关于异常类型的更多信息,请参见异常类型说明

    相似度匹配度算法或者哈希聚类算法

    在匹配作业仪表盘中查看各个日志模板的匹配情况。

    image.png

    image.png

配置日志模板匹配告警

说明

只有相似度聚类算法,可以配置日志告警。

  1. 登录日志服务控制台

  2. 查看作业详情页面。

    1. 日志应用区域的智能运维页签中,单击智能异常分析

    2. 在实例列表中,单击目标实例。

    3. 在左侧导航栏中,选择分析任务 > 文本分析 > 日志模板匹配

  3. 配置对于日志模板的告警。

    1. 单击页面右上角的告警配置

    2. 告警配置对话框中,新建模板或为已有模板设置告警,然后单击确定

      1. 选择选择模板配置已有模板配置告警时,可通过模板ID和日志等级指定日志模板,并设置告警。

      2. 选择选择模板配置为新模板预设告警时,可通过日志等级指定日志模板,并设置告警。即出现对应日志等级的新模板时,会触发告警。

    3. 告警参数说明。

      参数

      说明

      告警名称

      自定义告警的名称。

      模板ID

      根据模板ID指定日志模板。

      通过模板ID日志等级指定日志模板时,两者为或者关系。

      日志等级

      根据日志等级指定日志模板。

      告警条件

      选择告警条件。

      • 数量条件:当日志模板对应的日志量超过您所设置的阈值时,触发告警。

      • 数量异常波动:当日志模板对应的日志量异常变动时,触发告警。

      • 罕见日志出现:当出现罕见(出现频率很低)的日志模板时,触发告警。

      触发条件

      当选择告警条件数量条件时,您需要配置对应的日志数的数量阈值。

      告警策略

      告警策略用于合并、静默和抑制已产生的告警。

      • 选择极简模式普通模式时,您无需配置告警策略。日志服务默认使用SLS内置动态告警策略(sls.builtin.dynamic)进行告警管理。

      • 选择高级模式时,您可以自定义选择行动策略和告警策略。如何创建告警策略,请参见创建告警策略

      行动策略

      行动策略用于控制告警通知渠道和频率等。

      • 告警策略选择为极简模式时,您只需配置行动组即可。配置行动组后,日志服务自动为您创建一个名为规则名称-行动策略的行动策略。由该告警监控规则触发的所有告警,都通过该行动策略发送通知。如何配置,请参见通知渠道说明

        重要

        您可以在行动策略管理页面,修改该行动策略。具体操作,请参见创建行动策略。如果您在修改行动策略时添加了判断条件,则此处的告警策略将自动变更为普通模式

      • 告警策略选择为普通模式高级模式时,您可以选择内置的或自定义的行动策略进行告警通知。如何创建行动策略,请参见创建行动策略。如果选择告警策略高级模式,还可以开启或关闭自定义行动策略。更多信息,请参见动态行动策略机制