从logstash日志创建Kibana图

时间:2016-03-14 15:59:03

标签: elasticsearch logstash kibana logstash-configuration

我需要根据特定值在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中使用特定的映射创建索引来创建新字段吗?

1 个答案:

答案 0 :(得分:0)

我的配置实际上有问题。我应该用我的问题粘贴整个配置。事实上,我使用logstash作为托运人,也作为日志服务器使用。在服务器端,我修改了配置:

input {
tcp {
    port => "yyyy"
    host => "x.x.x.x"
    mode => "server"
    codec => json # I forgot this option
}}

因为logstash发货人实际上是在发送json,所以我需要向服务器咨询相关信息。现在,我在消息字段中不再有消息字段,并且我的新字段将插入到正确的位置。