我需要根据特定值在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
]}
实际创建了一个新字段(字段&#39; mycustomnewfield&#39;)但在消息字段中!因此,当我尝试创建图表时,我无法在kibana中看到它。我试图创建一个&#34;脚本字段&#34;在Kibana,但只能访问数字字段。
我应该在elasticSearch中使用特定的映射创建索引来创建新字段吗?
答案 0 :(得分:0)
我的配置实际上有问题。我应该用我的问题粘贴整个配置。事实上,我使用logstash作为托运人,也作为日志服务器使用。在服务器端,我修改了配置:
input {
tcp {
port => "yyyy"
host => "x.x.x.x"
mode => "server"
codec => json # I forgot this option
}}
因为logstash发货人实际上是在发送json,所以我需要向服务器咨询相关信息。现在,我在消息字段中不再有消息字段,并且我的新字段将插入到正确的位置。