日志聚类,指采集文本日志时,将相似度高的数据聚合在一起,提取共同的日志Pattern,快速掌握日志全貌。

日志服务提供日志聚类功能,支持多种格式的文本日志聚合,可应用于DevOps中的问题定位、异常检测、版本回归等运维动作,或应用于安全场景下的入侵检测等。您还可以将聚类结果以分析图表的形式保存在仪表盘中,实时查看聚类数据。

功能优势

  • 支持任意格式日志:Log4J、Json、单行(syslog)。
  • 亿级数据,秒级输出结果。
  • 日志经任意条件过滤后再聚类。
  • 对聚类后Pattern,根据签名反查原始数据。
  • 不同时间段Pattern比较。
  • 动态调整聚类精度。

计费标准

开启日志聚类功能后,索引总量会增加原始日志大小的10%。例如原始数据为100GB/天,开启该功能后,索引总量增加10GB。

原始日志大小 索引比例 日志聚类功能产生的索引量 索引总量
100GB 20%(20 GB) 100 * 10% 30GB
100GB 40%(40 GB) 100 * 10% 50GB
100GB 100%(100 GB) 100 * 10% 110GB

开启日志聚类功能

日志聚类功能默认为关闭状态,使用前请手动开启。

  1. 登录日志服务控制台,单击Project名称。
  2. 单击日志库名称后的日志库管理图标图标,选择查询分析
  3. 如果设置过索引,单击查询分析属性 > 设置。如果没有设置过索引,单击开启索引
    图 1. 开启索引

    开启索引
    图 2. 修改索引

    修改索引
  4. 设置索引属性,并开启日志聚类的功能开关。
    图 3. 开启日志聚类

    开启聚类
  5. 单击确定
    成功开启日志聚类功能后,日志服务会对采集到的日志数据进行自动聚类,您可以:

查看聚类结果和原始日志

  1. 在查询分析页面的查询框中输入查询语句,并单击查询/分析
    可以通过关键字过滤日志,对包含或不包含指定关键字的日志数据进行自动聚类。
    说明 不支持SQL语句,即不能对分析结果进行聚类。
  2. 单击进入日志聚类页签,查看聚类结果。
    日志聚类页签展示了过滤后的日志聚类结果。
    显示项 说明
    Number 聚类序号。
    Count 该聚类类别的日志条数。
    Pattern 具体的日志模式,每个聚类会有一个或多个子Pattern。
    图 4. 聚类结果

    聚类结果
  3. 鼠标指向Count列,有浮动栏展示当前聚类的子Pattern、每个子Pattern的占比。也可以单击数字前的加号+,展开子Pattern列表。
    图 5. 查看聚类详情

    聚类详情
  4. 单击子Pattern前的Count值,查看该分类中的原始日志。
    图 6. 查看原始数据

    原始数据

调整聚类精度

  1. 在查询分析页面单击进入日志聚类页签。
  2. 在页签右上角的Pattern分类中拖拽滑动条,调整聚类的精度。
    • 聚类偏向于,表示聚类结果分类细、Pattern保留的细节多。
    • 聚类偏向于,表示聚类结果分类粗,Pattern细节被隐藏得更多。
图 7. 调整聚类精度

调整聚类精度

对比不同时间段的聚类日志数量

单击Log Compare,设置对比时间后单击确定按钮。
日志对比
显示项 说明
Number 聚类编号。
Pre_Count 当前Pattern在之前时段的原始日志数量。
Count 当前Pattern在当前时段的原始日志数量。
Diff 当前Pattern在两个时段的日志数量差值。
Pattern 某类日志具体的Pattern结果 。
API示例
  • 获取日志聚类结果
    • SQL语句:
      * | select a.pattern, a.count,a.signature, a.origin_signatures from (select log_reduce(3) as a from log) limit 1000 
      说明 查看聚类结果时,您也可以通过复制查询语句按钮来获取日志聚类结果的SQL语句。
    • 输入参数:log_reduce(precision)

      precision : 接收整数[1~16]作为聚类精度,数字越小,聚类精度越高,生成的Pattern格式越多,默认为3。

    • 返回字段:
      • pattern :某类日志具体的Pattern结果。
      • count : 某类日志的个数。
      • signature :某类日志Pattern的签名。
      • origin_signatures :这类日志的二级签名,可以通过这个二级签名,反查原始数据。
  • 对比不同时间段日志聚类结果
    • SQL语句
      * | select v.pattern, v.signature, v.count, v.count_compare, v.diff from (select compare_log_reduce(3, 86400) as v from log) order by v.diff desc limit 1000 
      说明 通过Log Compare按钮来对比日志聚类结果后,您也可以通过复制查询语句按钮来获取对应的SQL语句。
    • 输入参数:compare_log_reduce(precision, compare_interval)
      • precision :接收整数[1~16]作为聚类精度,数字越小,聚类精度越高,生成的Pattern格式越多,默认为3。
      • compare_interval :正整数,表示对比多少秒之前的数据。
    • 返回字段:
      • pattern :某类日志具体的Pattern结果 。
      • signature :某类日志Pattern的签名。
      • count : 某类日志的个数。
      • count_compare : 对比时间段同signature日志个数。
      • diff : count和count_compare的差值。

日志聚类视频

日志聚类操作介绍视频: