elasticsearch - 使用elasticsearch和logstash删除输入标签字段

标签 elasticsearch logstash-configuration logstash-jdbc

我正在使用Logstash发送给elasticsearch,有人知道如何删除[tags]字段吗?
我正在使用此字段来筛选每个jdbc输入应输入的位置,下面留下一个示例。
我想要的是不要将该字段插入elasticsearch中,我尝试了remove_field,但是在使用它时,它不会直接插入elasticsearch中。

    input {
      jdbc {
            jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/ifxjdbc-4.50.3.jar"
            jdbc_driver_class => "com.informix.jdbc.IfxDriver"
            jdbc_connection_string => "zzzz"
            jdbc_user => "zzz"
            jdbc_password => "zzz"
            schedule => "*/5 * * * * *"                       
            statement => "SELECT * FROM informix.test ORDER BY tes_id ASC"
            tags => "test_001"
      }
    }

    filter { 
      mutate {
          remove_field => [ "@version","@timestamp" ]
      }
    } 
output {

  if "test_001" in [tags] {

        # Para ELK
        elasticsearch {
              hosts => "localhost:9200"
              index => "test"
              document_type => "test"
        }
  }      
}

尝试这样做:
mutate { add_field => { "[@metadata][mitags]" => [tags]  }
           remove_field => [tags]
        } 

但它不会插入elasticsearch中。

显然,elasticsearch中的输入[tags]被创建为一个数组....

最佳答案

如果要使用字段对输出进行过滤,则无法删除此字段,除非您使用 metadata 字段(好像您已经尝试过了),否则它将被插入elasticsearch中,但add_field配置错误。

尝试下面的管道。

input {
  jdbc {
      ... your jdbc config ...
    tags => "test_001"
  }
}
filter { 
    mutate {
        add_field => { "[@metadata][tags]" => "%{tags}" } 
    }
    mutate {
        remove_field => ["@version","@timestamp","tags"]
    }
} 
output {
    if "test_001" in [@metadata][tags] {
        elasticsearch {
            ... your elasticsearch output ...
        }
    }      
}

第一个mutate将在[@metadata][tags]字段中添加标签,第二个将删除您的字段,包括tags,然后您可以根据[@metadata][tags]进行过滤

关于elasticsearch - 使用elasticsearch和logstash删除输入标签字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61915741/

相关文章:

ruby-on-rails - 从 Elasticsearch::Model::Response::Records 到 Kaminari::PaginatableArray 的转换

elasticsearch - 在 Logstash 级别读取 CSV 并根据提取的数据进行过滤

Logstash JDBC - 如何处理 json 字段?

elasticsearch - 需要说明Logstash配置中使用的sql_last_value

java - 如何使用 Elastic 对最后的 Null 进行排序?

elasticsearch - 如何使用 java api elasticsearch 脚本更新多个字段

elasticsearch - 弹性平均Bool查询中的聚合

elasticsearch - 来自 Elasticsearch 错误的 Logstash 输入

Logstash转发器设置环境变量值