从 logstash 日志创建 Kibana 图

Create a Kibana graph from logstash logs

我需要根据特定值在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 中创建一个 "scripted field",但只能访问数字字段。

我是否应该在 elasticSearch 中使用特定映射创建索引以创建新字段?

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

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

因为 logstash 托运人实际上正在发送 json,我需要就此向服务器提出建议。现在我的消息字段中不再有消息字段,我的新字段被插入到正确的位置。