You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Open Distro聚合中添加事件的完整日志?

将完整日志纳入Open Distro聚合功能的实现方法

1. 先把完整日志转为可聚合的字段

Open Distro的聚合功能只能基于字段操作,所以首先得把完整日志内容存入一个明确的字段中,常见采集工具的配置方式如下:

  • 用Filebeat的话:默认情况下,Filebeat会把整条日志内容自动存入message字段。如果你的日志没有自动生成这个字段,可在filebeat.yml的input配置里添加强制映射:
    filebeat.inputs:
      - type: log
        paths:
          - /path/to/your/logs/*.log
        fields:
          full_log: "${message}"
        fields_under_root: true
    
    这样就会把完整日志内容存入顶级字段full_log里。
  • 用Logstash的话:如果是通过Logstash中转,可在filter阶段添加mutate插件,把完整日志内容写入指定字段:
    filter {
      mutate {
        add_field => { "full_log" => "%{message}" }
      }
    }
    
    这里的message是Logstash默认接收的完整日志内容字段,按需替换成你实际的原始日志字段即可。

2. 确保字段在索引中支持聚合

把日志写入Open Distro后,需要检查字段的映射类型:

  • 如果字段是text类型,默认是关闭fielddata的,无法直接聚合。你需要修改索引映射,给该字段开启fielddata,或者添加一个keyword子字段:
    PUT /your_index/_mapping
    {
      "properties": {
        "full_log": {
          "type": "text",
          "fielddata": true,
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        }
      }
    }
    
    注意:开启fielddata会占用较多内存,如果日志内容很长,更推荐用keyword子字段(比如full_log.keyword)来做聚合,不过要根据日志长度调整ignore_above的值。

3. 在Open Distro中使用该字段做聚合

完成上述配置后,就可以在Open Distro的可视化或Discover模块里使用这个字段创建聚合了:

  • 比如在Visualize中创建一个Terms聚合,选择full_log或full_log.keyword作为聚合字段,就能统计不同完整日志内容的出现次数;
  • 如果是做数值聚合(比如统计日志长度),可以用Scripted字段基于full_log计算长度,再做聚合。

内容的提问来源于stack exchange,提问作者amy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 14:25:15