基于ELK的簡單數據分析

neoly 8年前發布 | 65K 次閱讀 分布式/云計算/大數據

來自: http://feixiao.github.io/articles/ji-yu-elkde-jian-dan-shu-ju-fen-xi.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
  • 編寫如下配置文件

    alt text

我們的數據來源于kafka中的一個topic,格式是json,輸出到elasticsearch的索引,按天變化

<h3>簡單的數據分析</h3>

<ul> 
 <li>跑了四個多小時,差不多有890w數據</li>

 <li> <p>我們先來看看設備的操作系統版本號(android 4.4.4的設備最多,差不多有300萬)</p>

alt text

  • 設備型號分布

    alt text

  • 2016年2月15日更新

    Published

    Category

    大數據

    Tags

    環境

    • 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
    • 編寫如下配置文件

      alt text

    我們的數據來源于kafka中的一個topic,格式是json,輸出到elasticsearch的索引,按天變化

    簡單的數據分析

    • 跑了四個多小時,差不多有890w數據
    • 我們先來看看設備的操作系統版本號(android 4.4.4的設備最多,差不多有300萬)

      alt text

    • 設備型號分布

      alt text

    • </ul> </div>

     本文由用戶 neoly 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
     轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
     本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!