【发布时间】:2015-07-27 15:59:46
【问题描述】:
我们正在向 ELK 堆栈发送 CF 日志消息。多行日志消息在 Logstash 中被分解为多个日志消息。多行日志消息的每一行结束。当堆栈跟踪转储到日志时,这是有问题的。堆栈跟踪的每一行都被转换为日志消息。试图通过 Kibana 查看这一点几乎是不可能的。 Logstash 提供了一个 Grok 功能,允许对日志消息进行操作。一种常见的解决方案是创建一个 Grok 过滤器,该过滤器使用时间戳来指示日志条目何时开始,并将直到下一个时间戳的所有行组合成一条日志消息。问题是 CF 为每一行添加了一个时间戳。有没有人想出一个好的 Grok 表达式来处理来自 CF 的多行日志消息?
这是来自 Cloud Foundry 的日志的 sn-p。在 Logstash 中,每一行都被视为一条单独的日志消息
2015-07-24T10:37:59.93-0600 [App/0] OUT org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://11.11.11.11:9191/someendpoint":Connect to 11.11.11.11:9191 [/11.11.11.11] failed: Connection refused; nested exception is org.apache.http.conn.HttpHostConnectException: Connect to 11.11.11.11:9191 [/11.11.11.11] failed: Connection refused
2015-07-24T10:37:59.93-0600 [App/0] OUT at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:580)
2015-07-24T10:37:59.93-0600 [App/0] OUT at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:530)
2015-07-24T10:37:59.93-0600 [App/0] OUT at org.springframework.web.client.RestTemplate.postForLocation(RestTemplate.java:305)
2015-07-24T10:37:59.93-0600 [App/0] OUT at com.digitalglobe.p2020.eventservice.sendevent.EventSenderCommand.run(EventSenderCommand.java:104)
【问题讨论】:
-
您能否为这些日志消息提供一个日志示例?如果每一行都有时间戳,作为一个人,您如何找到新的多行消息开始的指示?
-
@TomKregenbild 感谢您的关注。我从 Cloud Foundry 日志流中添加了一个 sn-p。
-
嗨,我正在尝试做同样的事情,试图从下面列出的 Cloud Foundry 日志中获取时间戳、主机、请求者、响应时间、应用程序 ID、使用的代理和许多其他内容 2015-08-03T09:51 :15.000+00:00 [RTR] 输出 mm1-spring-music.example.com - [03/08/2015:09:51:15 +0000] "GET /assets/ HTTP/1.1" 200 428 "mm1--music.example.com " "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36" XX.XX.XXX.XX" vcap_request_id:5ad0-f9-46a9-77-2095952faf78response_time: 0.002043376 app_id:08b8-c7-4613-bf12-1a 可以分享一下你用过的logstash.conf吗
标签: cloud-foundry logstash-grok