基于ELK的简单数据分析
2017-01-09 11:12
316 查看
原文链接: http://www.open-open.com/lib/view/open1455673846058.html
JDK 1.8.0_20
Elasticsearch 1.7.3
LogStash 1.5.6
Kibana 4.1.4
我们的数据量没有新浪那么大,一天正常水平在6千万条左右,多的时候有一个亿条记录,受到新浪案例的启发我们基于ELK搭建自己的简单数据分析系统,刚开始选择这个的原因:(1)就我一个人折腾东西, (2)我不会前端,但是ELK中的kibana可以直接利用,(3)Hadoop/Hbase、Storm等大数据栈需要学习成本,短期内上手难度太大。(4)可用的机器数也是相当屌丝。
执行/opt/elasticsearch-1.7.3/bin/elasticsearch -d 就可以在后台启动,但是为了同时管理ELK三个进程,我选择了supervisor做统一管理
启动ElasticSearch之后,我们需要关闭字符串的分词,对于数据分析的需求是不需要的,同时会存在问题,但是当作为搜索引擎的时候,这又是必须的。
运行/opt/kibana-4.1.4-linux-x64/bin/kibana,同样适用supervisor管理
访问http://YourIP:5601即可
下载LogStash,解压到/opt
编写如下配置文件
我们的数据来源于kafka中的一个topic,格式是json,输出到elasticsearch的索引,按天变化
我们先来看看设备的操作系统版本号(android 4.4.4的设备最多,差不多有300万)
设备型号分布
环境
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万)
设备型号分布
相关文章推荐
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主
- 基于ELK的数据分析实践——满满的干货送给你
- 基于Python项目的Redis缓存消耗内存数据简单分析(附详细操作步骤)
- Ajax 数据请求的简单分析
- 基于缺陷数据的度量与分析
- 基于tcp/ip协议的Socket网络通讯 --> 简单的数据传送和库构造
- 脚本小工具 - 基于Txt的简单数据表查询
- 一个基于Ajax简单的数据验证
- BlogEngine.Net架构与源代码分析系列part3:数据存储——基于Provider模式的实现
- C语言数据类型大小分析(基于VC2005编译器)
- 通过一个对数据的存储和分析的简单实例初识Hadoop
- BlogEngine.Net架构与源代码分析系列part3:数据存储——基于Provider模式的实现
- 使用MS ACCESS + MS EXCEL实现最简单的数据分析。
- 一个简单的文件处理--16进制数据统计分析
- BlogEngine.Net架构与源代码分析系列part3:数据存储——基于Provider模式的实现
- 简单分析一下 RIA Services 的数据绑定原理
- 在JDK 6.0中基于StAX分析XML数据
- 基于.NET 2.0的GIS开源项目SharpMap分析手记(四):地图数据访问机制分析
- 基于数据字典的通用查询系统(二)数据库组成结构的分析
- 简单分析一下uboot的主要数据结构