周末参加了公司组织的黑客马拉松比赛,

通宵达旦完成了作品是个值得纪念的经历, 我们的产品叫做:正义的朋友

  • 我们想要实现的功能是让人在紧急关头用最快速的方式联系到可以帮助你的人,于是我们通过锁屏应用来实现;
  • 用户在锁屏状态,画一个v手势,会把自己的地理位置发送给设置好的联系人,并持续每十秒发送一次周围的声音给联系人;
  • 用户在锁屏状态,画一个w手势,会发出专业的求救声

这次比赛的感觉, 与当年叫神马团队的似曾相识, 队友非常给力, 大家都很拼, 我喜欢这种感觉, 事实上,在比赛之前,为了工作上的项目我已经几乎透支了, 队友也是一样。 但周六上午我们还是快速进入状态, 被逼的潜力果然不容小觑. 晒一张我们队伍合照.

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内响应。

0%