基於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

相關文章
相關標籤/搜索