您的位置:首页 > 其它

基于ELK的简单数据分析

2017-01-09 11:12 316 查看
原文链接: http://www.open-open.com/lib/view/open1455673846058.html

环境

CentOS 6.5 64位

JDK 1.8.0_20

Elasticsearch 1.7.3

LogStash 1.5.6

Kibana 4.1.4

介绍

ElasticSearch是有名的开源搜索引擎,现在很多公司使用ELK技术栈做日志分析,比如新浪使用ELK处理每天32亿条记录,详细的介绍可以查看这里

我们的数据量没有新浪那么大,一天正常水平在6千万条左右,多的时候有一个亿条记录,受到新浪案例的启发我们基于ELK搭建自己的简单数据分析系统,刚开始选择这个的原因:(1)就我一个人折腾东西, (2)我不会前端,但是ELK中的kibana可以直接利用,(3)Hadoop/Hbase、Storm等大数据栈需要学习成本,短期内上手难度太大。(4)可用的机器数也是相当屌丝。

环境搭建

需要安装好Java,配置JAVA_HOME,bin目录添加到PATH环境变量

ElasticSearch

下载ElasticSearch,然后解压到/opt

执行/opt/elasticsearch-1.7.3/bin/elasticsearch -d 就可以在后台启动,但是为了同时管理ELK三个进程,我选择了supervisor做统一管理

启动ElasticSearch之后,我们需要关闭字符串的分词,对于数据分析的需求是不需要的,同时会存在问题,但是当作为搜索引擎的时候,这又是必须的。

关闭字符串的分词

curl -XPUT http://localhost:9200/_template/template_1 -d '{
"template": "*",
"settings": {
"index.refresh_interval": "5s"
},
"mappings": {
"_default_": {
"_all": {
"enabled": true
},
"dynamic_templates": [
{
"string_fields": {
"match": "*",
"match_mapping_type": "string",
"mapping": {
"index": "not_analyzed",
"omit_norms": true,
"type": "string"
}
}
}
],
"properties": {
"@version": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}'


Kibana

下载Kibana,然后解压到/opt

运行/opt/kibana-4.1.4-linux-x64/bin/kibana,同样适用supervisor管理

访问http://YourIP:5601即可

Logstash

到目前为止我们还没有数据源

下载LogStash,解压到/opt

编写如下配置文件



我们的数据来源于kafka中的一个topic,格式是json,输出到elasticsearch的索引,按天变化

简单的数据分析

跑了四个多小时,差不多有890w数据

我们先来看看设备的操作系统版本号(android 4.4.4的设备最多,差不多有300万)



设备型号分布

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: