本文介绍日志聚类功能及其操作,包括开启日志聚类、查看聚类结果和原始日志、对比不同时间段的聚类日志数量等。

背景信息

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

功能优势

  • 支持任意格式日志,例如Log4j、JSON、单行等。
  • 亿级数据,秒级输出结果。
  • 日志数据可以按任意模式聚类。
  • 按pattern聚类的数据可以根据pattern的签名反查原始数据。
  • 比较不同时间段的pattern。
  • 动态调整聚类精度。

操作视频

索引流量

开启日志聚类功能后,索引总量会增加原始日志大小的10%。例如原始数据为100 GB/天,开启该功能后,索引总量增加10 GB。
原始日志大小 索引比例 日志聚类功能产生的索引量 索引总量
100 GB 20%(20 GB) 100 * 10% 30 GB
100 GB 40%(40 GB) 100 * 10% 50 GB
100 GB 100%(100 GB) 100 * 10% 110 GB

开启日志聚类功能

  1. 登录日志服务控制台
  2. 单击目标Project。
  3. 日志管理 > 日志库页签中,单击目标Logstore右侧的日志库管理图标 > 查询分析
  4. 开启日志聚类功能。
    1. 单击查询分析属性 > 设置
      如果您还未开启索引,请单击开启索引
    2. 查询分析页面,开启日志聚类功能。
    3. (可选)配置聚类字段过滤的白名单和黑名单。
      支持通过关键字过滤日志,对白名单或黑名单中指定的关键字的日志数据进行自动聚类。
    4. 单击确定

查看聚类结果和原始日志

  1. 在查询分析页面的查询框中输入查询语句,单击查询/分析
    说明 此处仅支持输入查询语句来过滤日志,但不支持分析语句(SQL语句),即不能对分析结果进行日志聚类。
  2. 单击日志聚类页签,查看聚类结果。
    聚类详情
    参数 说明
    Number 聚类序号。
    Count 当前指定的查询时间段内,某pattern对应的日志条数。
    Pattern 某类日志的具体模式,每个聚类会有一个或多个子pattern。
    • 鼠标指向Count列的数字,在悬浮框展示当前聚类的子pattern及每个子pattern的占比。单击数字前的加号(+),展开子pattern列表。
    • 单击Count列的数字,跳转到原始日志页签,查看对应pattern的原始日志。

调整聚类精度

日志聚类页签中,拖拽Pattern分类中的滑动条,调整聚类的精度。
  • 聚类偏向于,表示聚类结果分类细,pattern细节被保留的多。
  • 聚类偏向于,表示聚类结果分类粗,pattern细节被隐藏的多。

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

  1. 日志聚类页签中,单击Log Compare
  2. 设置对比时间,单击确定
    例如:在执行查询操作时,时间范围选择为15分钟。在Log Compare中,选择1天,则自动显示开始时间和结束时间,时间范围为1天前的15分钟。日志对比
    参数 说明
    Number 聚类编号。
    Pre_Count Log Compare中设置的时间段内,该pattern对应的日志数量。
    Count 当前指定的查询时间段内,某pattern对应的日志条数。
    Diff 某pattern在两个时段的日志数量差值及升降百分比。
    Pattern 某类日志的具体模式。

SQL示例

日志服务还支持通过执行查询分析语句获取日志聚类结果。

  • 获取日志聚类结果
    • 查询分析语句
      * | select a.pattern, a.count,a.signature, a.origin_signatures from (select log_reduce(3) as a from log) limit 1000 
      说明 查看聚类结果时,您可以单击复制查询语句获取日志聚类结果所对应的查询分析语句。
    • 修改参数

      修改查询分析语句中的log_reduce(precision),precision代表聚类精度,取值范围1~16,数字越小,聚类精度越高,生成的pattern格式越多,默认为3。

    • 返回字段
      统计图表页签中返回日志聚类详细信息。
      参数 说明
      pattern 某类日志的具体pattern。
      count 当前指定的查询时间段内,某pattern对应的日志条数。
      signature 某pattern的签名。
      origin_signatures 某pattern的二级签名,可以通过二级签名,反查原始数据。
  • 对比不同时间段日志聚类结果
    • 查询分析语句
      * | 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对比不同时间段日志聚类结果后,您可以单击复制查询语句获取对应的查询分析语句。
    • 修改参数
      修改查询分析语句中的compare_log_reduce(precision, compare_interval)
      • precision代表聚类精度,取值范围1~16,数字越小,聚类精度越高,生成的pattern格式越多,默认为3。
      • compare_interval表示对比N秒之前某一时间段的日志,正整数。
    • 返回字段
      参数 说明
      pattern 某类日志的具体模式。
      count_compare 在前一时间段内,某pattern对应的日志数量。
      count 当前指定的查询时间段内,某pattern对应的日志条数。
      diff count和count_compare的差值。
      signature 某pattern的签名。

关闭日志聚类功能

如果您不再需要使用日志聚类功能,可关闭该功能。

  1. 在目标Logstore的查询分析页面,单击查询分析属性 > 设置
  2. 关闭日志聚类开关。
  3. 单击确定