ELK分析產品銷售狀況

本專案係以2007-2009三年間某銷售資料,進一步以ELK做銷售分析,以圖表形式取得產品銷售情況。


環境需求

1.Ubuntu Server 22.04.4

2.ELASTICSEARCH 8.13.0

3.LOGSTASH 8.13.0

4.KIBANA 8.13.0


功能

1.以logstash設定日期與經緯度資料型態,並output至Elasticsearch再以Kibana進行分析。
2.用Kibana製作5張不同類型分析圖表的Dashboard,以此了解銷售情況。


環境設定安裝

  • ELASTICSEARCH 離線安裝
    • 1.下載/安裝ELASTICSEARCH
      sudo wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.5.3-amd64.deb
      *如沒有安裝則使用:sudo dpkg -i elasticsearch-8.5.3-amd64.deb
    • 2.開啟Elasticsearch
      sudo systemctl daemon-reload
      sudo systemctl start elasticsearch
    • 3.確認是否可以進入Elasticsearch
      網頁輸入: https://10.167.223.84:9200/
    • 4.重置密碼Elasticsearch(設定密碼:(elastic)
      sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u elastic
    • 5.重置密碼kibana(設定密碼:elastic])
      sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u kibana_system
  • KIBANA 離線安裝
    • 1.下載/安裝KIBANA
      sudo wget https://artifacts.elastic.co/downloads/kibana/kibana-8.5.3-amd64.deb
      dpkg -i kibana-8.5.3-amd64.deb
      *如沒有安裝則使用:sudo dpkg -i kibana-8.5.3-amd64.deb
    • 2.重新啟動
      systemctl start kibana
    • 3.確認是否可以進入kibana
      網頁輸入: http://10.167.223.84:5601/
    • 4.取得 Token 貼上kibana網頁
      sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
    • 5.取得 驗證碼 貼上kibana網頁.
      sudo /usr/share/kibana/bin/kibana-verification-code
      *TOKEN 與驗證碼修改內容(如無法連線 最底下可以修改)
      sudo vi /etc/kibana/kibana.yml
  • LOGSTASH 離線安裝
    • 1.下載/安裝LOGSTASH
      sudo wget https://artifacts.elastic.co/downloads/logstash/logstash-8.5.3-amd64.deb
      *如沒有安裝則使用:sudo dpkg -i logstash-8.5.3-amd64.deb
    • 2.重啟
      sudo systemctl restart elasticsearch

KIBANA儀表板圖表製作

  • 匯入銷售資料/圖表製作:
    • 1.進入KIBANA的Data Visualizer匯入資料範例資料檔案下載
    • 2.進入Discover,擴大搜尋資料範圍改成Last150 years即可看到匯入的全部資料
    • 3.創建儀表板,拉入原始資料欄位創建圖表
  • 儀錶板畫面呈現

Logstash設定日期與經緯度資料型態

  • output至Elasticsearch:
    • 1.建立conf設定檔(可參考網頁最底下)
    • 2.使用指令啟動:/usr/share/logstash/bin/logstash –f /etc/logstash/環境變數.conf
  • 儀錶板畫面呈現
conf設定檔內容(僅供參考,應依環境變數設定):
#sudo /usr/share/logstash/bin/logstash -f /etc/logstash/manual/hwhw.conf

input {
  file {
    path => "/home/jonas/Downloads/*data.csv"
    start_position => "beginning"
    sincedb_path => "/dev/null"
    # 設置檔案的編碼格式
    codec => plain {
      charset => "UTF-8"
    }
  }
}

filter {
  # 解析 CSV 檔案
  csv {
    separator => ","
    columns => ["UNIT" ,"AC-YEAR" ,"YEAR" ,"MONTH" , "YM","DEP","STORE","BRAND","SEASON","TYPE","QUALITY","SALES(K)","COST(K)","PRICE(K)","MARGIN(K)","ORIGEN", "Latitude", "Longitude"]
    # 如果第一行是標頭,你可以設置為 true
    # skip_header => true
  }

  # 設定日期欄位的資料型態
  date {
    match => ["YEAR", "YYYY年"]
    target => "YEAR"
  }
  # 將經緯度欄位轉換為浮點數型態
  mutate {
    convert => { "QUALITY" => "integer" }
    convert => { "SALES(K)" => "float" }
    convert => { "COST(K)" => "float" }
    convert => { "PRICE(K)" => "float" }
    convert => { "MARGIN(K)" => "float" }
    convert => { "Latitude" => "float" }
    convert => { "Longitude" => "float" }
  }
   
}

output {
  elasticsearch {
    hosts => ["https://localhost:9200"]
    index => "hwhw"	
    ssl => true
    ssl_certificate_verification => false
    user => elastic
    password=>"elastic"
  }
  stdout { codec => rubydebug }
}

CATEGORIES:

Comments are closed