【问题标题】:Create a Kibana graph from logstash logs从 logstash 日志创建 Kibana 图
【发布时间】: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


【解决方案1】:

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

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

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

【讨论】:

  • 很高兴你找到它。
猜你喜欢
  • 2014-10-30
  • 1970-01-01
  • 1970-01-01
  • 2015-05-14
  • 2016-04-12
  • 2018-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多