ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,
Kibana 是一个与之配套的 web 界面。
安装所需的:
配置相关
启动 elasticsearch 方式如下
1
| sudo service elasticsearch restart
|
在/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内响应。