使用 Elasticsearch 索引日志文件

Index log files using Elasticsearch

我是 elasticsearch 的新手。我已经为此搜索了几天,但找不到与之相关的任何内容。实际上,我想通过 Apache Flume.

索引来自 spooldir 的日志文件

我可以在 elasticsearch 中接收数据。但现在我希望将日志数据拆分为多个字段,然后进行索引。比如说...

"127.0.0.1 - - [18/Mar/2015:20:36:04 -0700] "GET / HTTP/1.1" 404 994"...this is my log data.

现在索引应该像...

 field 1 is IP address,
 field 2 is timestamp, 
 field 3 is GET or POST method,
 field 4 is protocol,
 field 5 is status code,
 field 6 is time taken

然后我想使用 Kibana 可视化这些字段。默认情况下,我只能看到像

这样的 Kibana 字段
_source, 
_index,
 _id, 
_type

我希望显示所有这些字段。

使用Logstash.

Logstash 负责为多种类型的日志建立索引。您可以找到 here 使用 grok 过滤器为 HTTP 日志编制索引的示例。

如果 Logstash 索引成功,您将能够在 Kibana 中看到所有日志。

要么使用 Flume 中的 Morphline 拦截器来解析您的数据,要么编写您自己的拦截器来完成这项工作。

Logstash 也很好用,但它缺乏 Flume 的事务处理能力。