如何在Logstash导入CSV时跳过Elasticsearch指定自动生成字段
移除Logstash导入CSV时自动生成的message、event、log字段
这些自动生成的字段来自Logstash的默认行为:
message:默认保留CSV的原始行内容event.original:ECS(Elastic Common Schema)相关默认字段,存储原始事件内容log.file.path:由file插件自动添加的CSV文件路径记录
要移除这些字段,只需在Logstash配置中添加mutate过滤器,明确删除不需要的字段:
Logstash配置修改示例
input { file { path => "/Users/abc/Downloads/opt/jenkins/workspace/agg_report2.csv" start_position => "beginning" sincedb_path => "/dev/null" # 避免重复读取,按需调整 } } filter { csv { separator => "," columns => ["Label", "Samples", "Average Response Time", "Median", "90th pct", "95th pct", "99th pct", "Min", "Max", "Error %", "Throughput", "Received KB/sec", "Stddev"] # 你的CSV解析配置 } # 新增mutate过滤器删除冗余字段 mutate { remove_field => [ "message", "event", "log", "@version" ] # 可按需补充其他要删除的字段 } } output { elasticsearch { hosts => ["http://localhost:9200"] index => "jmeter2" } # stdout { codec => rubydebug } # 测试用,可临时开启查看输出结构 }
注意事项
- 若使用Filebeat采集后传给Logstash,可在Filebeat配置中禁用相关字段,或在Logstash中统一删除
- 确认
remove_field中的字段名与实际生成的完全一致,比如event是整个对象,直接写字段名即可删除整个对象 - 修改配置后重启Logstash生效,已导入的旧数据需重新导入,或通过Elasticsearch的更新API批量删除冗余字段
内容的提问来源于stack exchange,提问作者Kiran Kadam
相关产品推荐
相关产品推荐

