【发布时间】:2016-03-14 15:59:03
【问题描述】:
我需要根据特定的值在kibana中创建一个图表。
这是我来自 logstash 的原始日志:
2016-03-14T15:01:21.061Z Accueil-PC 14-03-2016 16:01:19.926 [pool-3-thread-1] INFO com.github.vspiewak.loggenerator.SearchRequest - id=300,ip=84.102.53.31,brand=Apple,name=iPhone 5S,model=iPhone 5S - Gris sideral - Disque 64Go,category=Mobile,color=Gris sideral,options=Disque 64Go,price=899.0
在此日志行中,我有 id 信息“id=300”。 为了使用 id 值在 Kibana 中创建图形,我需要一个新字段。所以我有一个特定的 grok 配置:
grok {
match => ["message", "(?<mycustomnewfield>id=%{INT}+)"]
}
通过这种转换,我得到以下 JSON:
{
"_index": "metrics-2016.03.14",
"_type": "logs",
"_id": "AVN1k-cJcXxORIbORG7w",
"_score": null,
"_source": {
"message": "{\"message\":\"14-03-2016 15:42:18.739 [pool-1950-thread-1] INFO com.github.vspiewak.loggenerator.SellRequest - id=300,ip=54.226.24.77,email=client951@gmail.com,sex=F,brand=Apple,name=iPad R\\\\xE9tina,model=iPad R\\\\xE9tina - Noir,category=Tablette,color=Noir,price=509.0\\\\r\",\"@version\":\"1\",\"@timestamp\":\"2016-03-14T14:42:19.040Z\",\"path\":\"D:\\\\LogStash\\\\logstash-2.2.2\\\\logstash-2.2.2\\\\bin\\\\logs.logs.txt\",\"host\":\"Accueil-PC\",\"type\":\"metrics-type\",\"mycustomnewfield\":\"300\"}",
"@version": "1",
"@timestamp": "2016-03-14T14:42:19.803Z",
"host": "127.0.0.1",
"port": 57867
},
"fields": {
"@timestamp": [
1457966539803
]
},
"sort": [
1457966539803
]}
实际上创建了一个新字段(字段“mycustomnewfield”),但在消息字段中!结果,当我尝试创建图表时,我在 kibana 中看不到它。我尝试在 Kibana 中创建一个“脚本字段”,但只能访问数字字段。
我应该在 elasticSearch 中使用特定映射创建索引以创建新字段吗?
【问题讨论】:
-
感觉您的配置发生了其他事情。虽然它没有回答你的问题,但我会从“id=”到最后,并通过 kv{} 过滤器运行它。
-
感谢您的回答,我尝试使用 kv 过滤器,它做同样的事情 => 该字段始终位于消息字段内。我将使用 kv 过滤器,但我仍然有问题。
-
就像我说的,感觉这 grok{} 行并不是让你搞砸的那一行。我会查看整个配置以了解 [message] 发生的其他事情。
-
那么实际上有什么问题吗?新字段不应该插入到“消息”字段中?
标签: elasticsearch logstash kibana logstash-configuration