Elastic的Logstash突变拆分无效

斯法

我无法在Logstash中拆分http.request.referrer字段。这来自数据包节拍。我只想使用域而不是完整路径。使用以下过滤器,如此处建议的https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html,出现以下错误

[WARN ][logstash.filters.mutate  ] Exception caught while applying mutate filter {:exception=>"Invalid FieldReference: `sfa[2]`"}

但是,如果我不尝试检索第二个元素,而只是使用字段sfa将其添加到sfa_ref,则它可以正常工作,仅用正斜杠替换为逗号。

filter {
  mutate {
    add_field => {"sfa" => "%{[http][request][referrer]}"}
  }
  mutate {
    split => ["sfa", "/"]
    add_field => {"sfa_ref" => "%{sfa[2]}"}
  }
}

输入如下:

{
    "http": {
      "request": {
        "bytes": 727,
        "method": "get",
        "headers": {
          "content-length": 0
        },
        "referrer": "https://example.domain.com/web/font-awesome/css/font-awesome.min.css"
      },
      "response": {
        "bytes": 66989,
        "status_code": 200,
        "body": {
          "bytes": 66624
        },
        "headers": {
          "content-length": 66624,
          "content-type": "application/font-woff2"
        }
      },
      "version": "1.1"
    },
    "status": "OK"
  }

拆分后,该sfa字段变为:

"sfa": [ "https:", "", "example.domain.com", "web", "font-awesome", "css", "font-awesome.min.css" ]
斯法

遵循的文档似乎已过时。在较新版本的logstash中,寻址数组或其中的元素的正确方法是%{[field_name][index]}因此,我还需要在字段名称周围加上方括号。

mutate {
  split => ["sfa", "/"]
  add_field => {"sfa_ref" => "%{[sfa][2]}"}
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Logstash和Elastic升级

Logstash拆分根消息

Logstash动态拆分事件

Logstash:拆分json对象

Logstash日期无效格式

无效的配置Logstash文件

React GraphQL突变返回无效输入

VueX突变有效,但组件计算属性无效

Logstash到Elastic Search的日志-简单配置

Logstash Elastic Cloud 401未经授权的错误

如何使用带字段的Logstash拆分

Logstash 拆分过滤器

KeyError:“无效的拆分火车[:80%]。可用的拆分为:['train']”

Webpack代码拆分:无效的配置对象

Logstash CSV导入-如果不为空,则将add_field突变

Logstash Grok在Cookie字符串中拆分值

突变数据框时如何拆分和粘贴字符串?

Nuxt,将Vuex存储拆分为单独的文件会产生错误:未知突变类型:登录

错误:无效的 AST 节点:{"input":"** } 在 graphql 突变上(放大客户端)

logstash geoip.location映射到geo_point无效

通过Logstash将CSV文件加载到ElasticSearch无效

AWS Elastic Beanstalk 无效的二进制包

Logstash-如何在没有目标的情况下使用拆分过滤器拆分数组?

最小节拍 => logstash => elastic 没有在弹性(docker)中接收日志

什么是将多个Elastic Beats扩展到集中式Logstash的最佳实践

使用带有 jdbc 的 logstash 在 elastic 搜索中触发完全导入

在运行logstash实例时将条目复制到Elastic Search中

如何使用logstash和elastic配置本机python日志记录库?

Serilog HTTP Sink + Logstash:将Serilog消息数组拆分为单独的日志事件