大数据处理解决方案中,有大量的分布式系统,其日志分散在集群的各个节点,这就给跟进系统运行效果以及排错带来了很大的难度。
ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。
logstash是一个应用程序日志、事件的传输、处理、管理和搜索的平台。你可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计。
Kibana是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。
这是一个Demo,在单台PC上安装并进行初步测试。测试通过后会进行统一规划后,部署到生产环境。
搭建环境:
OS | Ubuntu Server 12.04 |
Java | Java 1.6.0_31 |
ElasticSearch | 1.0.1 |
Logstash | 1.3.3 |
Kibana | 3.0.0 |
1. 下载最新版本的ElasticSearch
1
|
wget
https
:
//download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.0.1.tar.gz
|
2. 参考《分布式搜索引擎Elasticsearch——安装部署》
logstash分为 index和agent ,agent负责监控、过滤日志,index负责收集日志并将日志交给ElasticSearch 做搜索
1. 下载最新版本的Logstash
1
|
wget
https
:
//download.elasticsearch.org/logstash/logstash/logstash-1.3.3-flatjar.jar
|
2. index配置文件:index.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
input
{
redis
{
host
=
>
'127.0.0.1'
data_type
=
>
'list'
port
=
>
'6379'
key
=
>
'logstash:redis'
type
=
>
'redis-input'
}
}
output
{
elasticsearch_http
{
host
=
>
'127.0.0.1'
port
=
>
'9200'
}
}
|
input设置从redis中获取数据,output设置将数据输出到ES。
启动index:
1
|
java
-
jar
/
soft
/
logstash
-
1.1.0
-
monolithic
.
jar
agent
-
f
.
/
index
.
conf
>>
index
.
log
&
|
3. agent配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
input
{
file
{
type
=
>
"test"
path
=
>
"~/opt/logstash/test"
}
}
filter
{
grep
{
match
=
>
[
"message"
,
"error"
]
}
}
output
{
redis
{
host
=
>
'127.0.0.1'
data_type
=
>
'list'
key
=
>
'logstash:redis'
}
}
|
启动agent:java -jar /soft/logstash-1.1.0-monolithic.jar agent -f ./agent.conf >> agent.log &
1. 下载新版Kibana
1
|
wget
https
:
//download.elasticsearch.org/kibana/kibana/kibana-3.0.0milestone5.tar.gz
|
2. 修改配置文件
解压后,打开配置文件config.js。
设置elasticsearch链接地址为:”http://localhost:9200″。(Demo在单机上,如果ES安装在其他机器,则将localhost修改为对应的机器地址)
3. 安装配置Nginx web服务器
1
2
3
4
5
6
7
8
9
|
server
{
listen
80
;
server_name
elk
.
test
.
com
;
location
/
{
root
/
home
/
[当前用户名
]
/
opt
/
kibana
-
3.0.0milestone5
/
;
index
index
.
html
index
.
htm
;
}
}
|
4. 打开Kibana
配置host:127.0.0.1 elk.test.com;
在浏览器打开http://elk.test.com
1. 新增日志数据
1
2
|
echo
"error 3333"
>>
~
/
opt
/
logstash
/
test
echo
"test elk"
>>
~
/
opt
/
logstash
/
test
|
2. 查看Kibana
第一条数据满足filter,被录入系统,第二条不满足filter没有录入。