elasticsearch - Logstash for Elasticsearch 索引中的小写字段名称

标签 elasticsearch logstash

我有一个logstash命令,我正在通过管道将一个文件写入Elasticsearch。我想使用一个字段来选择我将写入的索引 (appName)。然而,该字段中的数据并非全部小写,因此我需要在选择索引时这样做,但我不希望修改文档本身中的数据。

我在下面进行了尝试,首先将原始字段 (appName) 复制到新字段 (appNameIndex),小写新字段,将其从上传中删除然后使用它选择索引。

input {
      stdin { type => stdin }
}
filter {
  csv {
     separator => " "
     columns => ["appName", "field1", "field2", ...]
     convert => {
         ...
  }
}

filter {
  mutate {
    copy => ["appName", "appNameIndex"]
  }
}

filter {
  mutate {
    lowercase => ["appNameIndex"]
  }
}

filter {
  mutate {
    remove_field => [
      "appNameIndex", // if I remove this it works
       ...
    ]
  }
}

output {
   amazon_es {
     hosts =>
         ["my-es-cluster.us-east-1.es.amazonaws.com"]
     index => "%{appNameIndex}"
     region => "us-east-1"
  }
}

但是我收到错误消息

Invalid index name [%{appIndexName}]

显然它没有捕获我的突变。是因为删除部分将其完全删除了吗?我希望只是将其从文档上传中删除。我是否错误地处理了这个问题?

更新 我尝试取出删除索引名称部分,它确实有效,因此有助于识别错误的来源。现在的问题是我该如何解决它。删除这部分配置后,我基本上有两个具有相同数据的字段,一个是小写的,一个不是

最佳答案

您可以定义一个 @metadata 字段,它是一个永远不会包含在输出中的特殊字段 https://www.elastic.co/guide/en/logstash/current/event-dependent-configuration.html#metadata .

input {
  stdin { type => stdin }
}
filter {
   csv {
      separator => " "
      columns => ["appName", "field1", "field2", ...]
      convert => {
      ...
   }
}
filter {
   mutate {
      copy => ["appName", "[@metadata][appNameIndex]"]
   }
}
filter {
   mutate {
      lowercase => ["[@metadata][appNameIndex]"]
   }
}
output {
   amazon_es {
      hosts => ["my-es-cluster.us-east-1.es.amazonaws.com"]
      index => "%{[@metadata][appNameIndex]}"
      region => "us-east-1"
   }
}

关于elasticsearch - Logstash for Elasticsearch 索引中的小写字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58458851/

相关文章:

elasticsearch - Logstash:elasticsearch输出和非结构化数据

elasticsearch - 支持无痛语言的最小版本的kibana是什么

docker - 将Kibana容器与Elasticsearch连接

elasticsearch - 如何在具有不同数据的一台服务器上设置多个 Elasticsearch 实例?

spring - 在 java 中使用 elasticSearch 2.3.3 按索引名称和类型删除索引

scala - Elastic Search中的文档删除需要花费时间

Elasticsearch SQL 类子查询聚合

elasticsearch - Filebeat 复制事件

linux - logstash 文件输入无法读取文件

amazon-web-services - Logstash + kibana + elasticsearch 网络问题