Logstash + Elasticsearch + Kibana 搭建日志平台
概述
日志系统中的收集、查询、显示,分别对应于Logstash、Elasticsearch、Kibana。
- Logstash:是一个应用程序日志、事件的传输、处理、管理和搜索的平台
- Elasticsearch:是基于lucene的开源搜索引擎
- Kibana:是一个功能强大的elasticsearch数据显示客户端
日志收集采用分布式方式,使用redis作为中间缓冲队列。LEK平台结构如下:

- Shipper:Logstash分发端
- Broker:redis缓存数据库
- Indexer:Logstash收集端
- Storage&Search:Elasticsearch
- Web Interface:Kibana
安装
搭建环境和所需组件:
- Windows7
- redis64-2.8.12
- logstash-1.4.2
- elasticsearch-1.2.1
- kibana3
安装redis
启动redis服务
cmd到redis64-2.8.12根目录下,输入:
1redis-server
看到类似信息即可:
1[5424] 28 Nov 10:06:03.898 * The server is now ready to accept connections on port 6379
安装Elasticsearch
启动Elasticsearch服务
cmd到elasticsearch-1.2.1\bin根目录下,输入:
1elasticsearch
看到类似信息即可:
1[2014-11-28 10:06:32,688][INFO ][node] [Batroc the Leaper] started
安装Logstash
配置shipper.conf(日志分发)
在logstash-1.4.2\bin目录下新建一个shipper.conf文件,内容如下:
1input {
2 file {
3 path => "D:\error.log"
4 type => "App-log"
5 codec => "json"
6 }
7}
8
9
10output {
11 redis {
12 host => "127.0.0.1"
13 port => "6379"
14 key => "testlog"
15 data_type => "list"
16 codec => "json"
17 }
18}
- input中配置从哪里收集日志,这里表示从file(文件)中收集,地址是
D:\error.log - output中配置将日志信息分发到哪里,这里表示分发到redis中,配置好地址和端口等信息
logstash-1.4.2\bin目录下,启动shipper的命令:
1logstash agent -f shipper.conf
配置collector.conf(日志收集)
在logstash-1.4.2\bin目录下新建一个collector.conf文件,内容如下:
1input {
2 redis
3 {
4 host => "127.0.0.1"
5 port => "6379"
6 key => "testlog"
7 data_type => "list"
8 type => "redis-input"
9 codec => "json"
10 }
11}
12
13
14output {
15 elasticsearch {
16 host => "127.0.0.1"
17 }
18}
表示从reids中得到日志信息,并发送给Elasticsearch。
logstash-1.4.2\bin目录下,启动collector的命令:
1logstash agent -f collector.conf
安装Kibana
Kibana是一个webapp,把他放在web容器(如tomcat)中即可。
运行
请先确保监控的日志文件存在,此处为D:\error.log。
- 运行redis
- 运行Elasticsea
- 运行shipper
- 运行collector
- 启动tomcat容器
- 打开Kibanna页面:http://localhost:8080/kibana

