搭建 elasticsearch kibana

ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,
Kibana 是一个与之配套的 web 界面。

安装所需的:

配置相关

启动 elasticsearch 方式如下

1
sudo service elasticsearch restart
  • 我是使用 supervisor 启动 kibana,
  • 同时使用 monit 监控elasticsearch

在/etc/defaut/elasticsearch 配置数据文件目录的地址,log 地址,调整内存和堆栈大小,个人认为机器配置的50% 就可以了。

Nginx 配置,使得kibanan可以被外部访问,eleasticsearch 默认监听的是5601:

1
2
3
4
5
6
7
8
9
10
11
server {
listen 80;
#auth_basic_user_file /home/ymserver/auth/kibana-user;
error_log /home/ymserver/log/nginx/kibana.err.log;
location / {
proxy_pass http://127.0.0.1:5601$request_uri;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

使用过程

Python 有支持elasticsearch 的库 elasticsearch-py
用其导数据进入elasticsearch,需要指定好索引。

使用restful查询
如下例子:其中’2014-12-18’是索引名,q后面是查询条件,_all表示全部索引

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
curl -XGET 'http://localhost:9200/2014-12-18/_search/?q=name:861160022835011'
curl -XGET 'http://localhost:9200/_all/_search/?q=name:861160022835011'
curl -XGET localhost:9200/_search -d '
{
"query": {
"bool": {
"must": [
{
"term": {
"field1": "X"
}
},
{
"term": {
"field3": "Z"
}
}
],
"must_not": {
"term": {
"field2": "Y"
}
}
}
}
}'

性能概述

导入1个月的日志4.2G,31天的文件,每天一个索引,用了6个小时,elasticsearch用了 6.7G 的空间,在海量数据查询1s内响应。