elasticsearch+logstash+kibana是Elastic提供的一套开源的日志解决方案,网上已经有相关的教程,推荐比较全面的ELKstack中文指南

  • 下面是博主本次搭建elk的笔记,当然博主是参考ELKstack中文指南来搭建的,所以,如果你也需要这样一套日志解决方案,可以熟读一下GitBookELK中文指南。

好,闲话少说,首先,博主是在自己本地机器上搭建的这套环境,并没有到运用到生产上,所以,在生产环境上会出现什么问题,博主并不清楚,当然,已经有好多大公司在使用这套日志解决方案了,所以相对来说应该是比较成熟的。

博主的环境是MAC10.11.4 (15E65),因为买的国外的VPS内存实在是小了点儿,所以。。。

下载并安装

第一步从Elastic官网下载elasticsearch、logstash、kibana(2.x版本),解压安装。

1
2
$ tar -zxvf logstash-2.3.4.tar.gz
$ ln -s logstash-2.3.4 logstash

后续elasticsearch和kibana同样的安装方式。当然,本环境需要redis作为媒介,redis的安装教程,本文就不详细赘述了,可以参考redis快速安装指南

启动

1、启动elasticsearch

1
bin/elasticsearch -d

2、在logstash目录下新建配置文件目录conf

conf
1
2
cd conf
vim logstash.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
mkdir conf
cd conf
vim logstash.conf
input {
file {
path => ["*.log*"]#存放日志的路径
codec => multiline {
pattern => "^[^\[0-9\]:\[0-9\]:\[0-9\]]"
what => "previous"
}
}
}
filter {
grok {
match => [ "message", "(?m)(?<logtime>[0-9]{2}:[0-9]{2}:[0-9]{2})\s*\[\S*\]\s*(?<level>\w+)\s*(?<detail>.*)" ]
}
}
output {
redis{
host => "127.0.0.1"
port => "6379"
data_type => "list"
key => "logstash"
}
}
vim logstash_agent.conf
input {
redis{
host => "127.0.0.1"
port => "6379"
data_type => "list"
key => "logstash"
}
}
output {
elasticsearch{
hosts => "127.0.0.1"
index => "logstash-%{+YYYY.MM.dd}"
template => "logstash_template.json"
template_name => "logstash"
}
}

3、启动logstash

1
2
bin/logstash -f etc/logstash.conf
bin/logstash -f etc/logstash_agent.conf

4、启动kibana

1
bin/kibana

  • 当然,前提是你已经启动redis。

测试

现在,你可以访问kibanaWeb,出现文章开头的web页面就说明已经配置成功:

结束语

是不是挺简单的,嘿嘿,当然,这只是简单的搭建起环境,其实还可以做的更精,这套日志解决方案本身就支持很多插件,也可以和hadoop、spark等等做集成,需要的话,就动手做吧。