基于ELK的简单数据分析

原文连接: http://www.open-open.com/lib/view/open1455673846058.htmlhtml

环境

  • 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,配置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
  • 编写以下配置文件linux

    alt text

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

简单的数据分析

  • 跑了四个多小时,差很少有890w数据
  • 咱们先来看看设备的操做系统版本号(android 4.4.4的设备最多,差很少有300万)json

    alt text

  • 设备型号分布app

    alt text

相关文章
相关标签/搜索