使用:input |处理数据后过滤器|输出> ElasticSearch存储的格式有点像:
"_index": "logstash-2012.07.02",
"_type": "stdin",
"_id": "JdRaI5R6RT2do_WhCYM-qg",
"_score": 0.30685282,
"_source": {
"@source": "stdin://dist/",
"@type": "stdin",
"@tags": [
"tag1",
"tag2"
],
"@fields": {},
"@timestamp": "2012-07-02T06:17:48.533000Z",
"@source_host": "dist",
"@source_path": "/",
"@message": "test"
}
我在特定字段中过滤/存储大部分重要信息,是否可以省略默认字段,如:@source_path和@source_host?在不久的将来,它将每月存储80亿个日志,我想在排除这个默认字段的情况下运行一些性能测试(我只是不使用这些字段)。
答案 0 :(得分:7)
这将从输出中删除字段:
filter {
mutate {
# remove duplicate fields
# this leaves timestamp from message and source_path for source
remove => ["@timestamp", "@source"]
}
}
答案 1 :(得分:0)
其中一些将取决于您用于查看日志的Web界面。我正在使用Kibana和一个客户记录器(c#)来索引以下内容:
{
"_index": "logstash-2013.03.13",
"_type": "logs",
"_id": "n3GzIC68R1mcdj6Wte6jWw",
"_version": 1,
"_score": 1,
"_source":
{
"@source": "File",
"@message": "Shalom",
"@fields":
{
"tempor": "hit"
},
"@tags":
[
"tag1"
],
"level": "Info"
"@timestamp": "2013-03-13T21:47:51.9838974Z"
}
}
这显示在Kibana中,源字段不存在。
答案 2 :(得分:0)
要排除某些字段,可以使用prune filter plugin。
@obj func didTap(_ gesture: UITabGestureRecognizer){
object2 = make2Node(image: nameOfimage, width: 0.07, height: 0.07)
object2.position = SCNVector(0,0,0.2)
arView.scene.rootNode.addChildNode(object2)
修剪过滤器不是logstash默认插件,必须首先安装:
filter {
prune {
blacklist_names => [ "@timestamp", "@source" ]
}
}