89
Social Media & Big Data 從無到有打造專屬社群觀測站 戴君翰 ( Mark ) [email protected]

Twitter 與 ELK 基本使用

Embed Size (px)

Citation preview

Page 1: Twitter 與 ELK 基本使用

Social Media & Big Data從無到有打造專屬社群觀測站

戴君翰 ( Mark ) [email protected]

Page 2: Twitter 與 ELK 基本使用

今天來幹嘛?

來賺講師費的

Page 3: Twitter 與 ELK 基本使用

今天來幹嘛?來教大家寫一點點程式蒐集並觀測社群媒體資訊

Page 4: Twitter 與 ELK 基本使用

巨量資料處理與分析

隨手可得的巨量資料莫過於社群媒體

順帶一提:今天只講處理不講分析

Page 5: Twitter 與 ELK 基本使用

今天的主角 量大 好抓 好開放

Page 6: Twitter 與 ELK 基本使用

Elasticsearch LogstashKibana

0.今天的主角ELK

Page 7: Twitter 與 ELK 基本使用

ELK 簡介

Elasticsearch◈ 開放源碼索引資料庫◈ 多語系斷詞外掛◈ 全文檢索搜尋◈ 跨機器叢集倉儲◈ 內建HA

Logstash◈ 資料解析與轉送◈ 可接收49種來源資訊◈ 可輸出至56種目的地◈ 提供42種常見資料中

介處理方式

Kibana◈ Elasticsearch視覺化

呈現界面◈ 快速觀察資料內容◈ 8種實用圖表◈ 自由搭建報表系統◈ 即時更新呈現內容

Page 8: Twitter 與 ELK 基本使用

事前準備

◈ 下載 JDK 8http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

◈ 下載 Elasticsearchhttps://www.elastic.co/downloads/elasticsearch

◈ 下載 Logstashhttps://www.elastic.co/downloads/logstash

◈ 下載 Kibanahttps://www.elastic.co/downloads/kibana

◈ 確認 Twitter Key

Page 9: Twitter 與 ELK 基本使用

實作步驟

蒐集關鍵字安裝

ElasticsearchLogstash 介接資料

Kibana 建立觀察版面

Page 10: Twitter 與 ELK 基本使用

Elasticsearch LogstashKibana

1.Elasticsearch

Page 11: Twitter 與 ELK 基本使用

Elasticsearch 簡介

◈ Elasticsearch = Lucene + REST api◈ 建立索引以達到快速查詢資料

1 , Mark , 25 , Taipei2 , Eric , 30 , Taipei3 , Lucas , 25 , Taipei

Name ID

Mark 1

Eric 2

Lucas 3

Age ID

25 1,3

30 2

City ID

Taipei 1,2,3

IndexID Name Age City

1 Mark 25 Taipei

2 Eric 30 Taipei

3 Lucas 25 Taipei

DB

Page 12: Twitter 與 ELK 基本使用

Elasticsearch 簡介

◈ JSON based的儲存格式◈ 容易表達結構化的階層式資料◈ 不須先定義欄位(schema free)

Page 13: Twitter 與 ELK 基本使用

Elasticsearch 簡介

◈ 叢集架構易於擴張與備份◈ Replica Set◈ Shard

Page 14: Twitter 與 ELK 基本使用

Sharding 機制

◈ 分散儲存資料機制◈ 資料分散成不同區塊儲存◈ 分散存取加速運算

Data1

Data2

Data1

Data2

Node1

Node3

Data3

Data3

Node2Data

Page 15: Twitter 與 ELK 基本使用

Replica 機制

◈ 重複儲存機制◈ 把每份資料複製一份以上◈ 避免叢集間機器損壞導致資料遺失

Data1

Data2

Data2

Data3

Data3

Data1

Node1

Node2

Node3

Data1

Data2

Data2

Data3

Node1

Node2

Page 16: Twitter 與 ELK 基本使用

Shard機制

◈ REST api 方便資料管理URI分為3個區塊

Localhost:9200 / index / type / id分別對應傳統資料庫的

DB / table / primary key

傳統SQL資料庫 Elasticsearch

DB Index

Table Type

Primary key Id

Row Document

Column ( Schema ) Field

Page 17: Twitter 與 ELK 基本使用

介紹完了,來安裝吧

Page 18: Twitter 與 ELK 基本使用

安裝JAVA

◈ 安裝不難 , 重點在設定JAVA_HOME

Page 19: Twitter 與 ELK 基本使用

安裝JAVA

◈ 安裝不難 , 重點在設定JAVA_HOME

Page 20: Twitter 與 ELK 基本使用

修改設定檔

◈ Cluster Name◈ 檔案在 /config/elasticsearch.yml

# ---------------------------------- Cluster -----------------------------------## Use a descriptive name for your cluster:## cluster.name: my-application#

# ---------------------------------- Cluster -----------------------------------## Use a descriptive name for your cluster:#cluster.name: MarkES#

Page 21: Twitter 與 ELK 基本使用

解壓縮,執行 Elasticsearch

◈ 使用 cmd 執行 elasticsearch.bat

Page 22: Twitter 與 ELK 基本使用

確認有沒有執行成功

Page 23: Twitter 與 ELK 基本使用

來個圖形界面吧

◈ 安裝 Head 圖形化界面 plugin.bat install mobz/elasticsearch-head

確認是剛剛打的名字

Page 24: Twitter 與 ELK 基本使用

Elasticsearch LogstashKibana

2.Logstash

Page 25: Twitter 與 ELK 基本使用

Logstash 簡介

◈ Logstash 三大組成

• file, exec, http, tcp, syslog• rss, TwitterInput

• grok, csv, json, key-value • date, geoip, Filter

• file, zip, tcp, stdout• elasticsearch, solr, redis Output

Page 26: Twitter 與 ELK 基本使用

Logstash 簡介

◈ Logstash 多執行序設定

• threads or workers 參數• redis, Input

• 執行時加入-w參數Filter

• workers 參數• elasticsearch, solr, redis Output

Page 28: Twitter 與 ELK 基本使用

Logstash 業界使用情境

Page 29: Twitter 與 ELK 基本使用

Logstash 業界使用情境

Page 30: Twitter 與 ELK 基本使用

Logstash 業界使用情境

Page 31: Twitter 與 ELK 基本使用

Logstash 基本使用

◈ 撰寫設定檔stdinStandard input就是鍵盤輸入拉

stdoutStandard output就是螢幕輸出拉

Page 32: Twitter 與 ELK 基本使用

Logstash 基本使用

◈ 執行程式囉◈ logstash.bat agent –f simple.config

輸入的東西被直接輸出並且帶有時間及電腦名稱

Page 33: Twitter 與 ELK 基本使用

Logstash 基本使用

◈ 但真正的輸出長相並非如此 ◈ 修改 simple.config

CodecCode & decode在這邊就是解碼囉

Page 34: Twitter 與 ELK 基本使用

Logstash 基本使用

◈ 執行程式囉◈ logstash.bat agent –f simple.config

輸出其實是有欄位的!!

Page 35: Twitter 與 ELK 基本使用

Logstash 基本使用

◈ 來吃看看檔案◈ 先下載範例日誌http://www.monitorware.com/en/logsamples/apache.php

Page 36: Twitter 與 ELK 基本使用

Logstash 基本使用

◈ 來吃看看檔案◈ 吃檔案設定檔撰寫

Sincedb存放檔案讀取的進度

Page 37: Twitter 與 ELK 基本使用

Logstash 基本使用

◈ 執行程式囉◈ logstash.bat agent –f apacheLog.config

欄位沒有被正確解析!!

Page 38: Twitter 與 ELK 基本使用

Logstash 基本使用

◈ 撰寫 Filter◈ 使用 grok 解析日誌◈ https://grokdebug.herokuapp.com/

Page 39: Twitter 與 ELK 基本使用

Logstash 基本使用

◈ 有Filter的設定檔

Page 40: Twitter 與 ELK 基本使用

Logstash 基本使用

◈ 執行結果

欄位被正確解析囉 :)

Page 41: Twitter 與 ELK 基本使用

Logstash 基本使用

◈ 其實不用這麼麻煩….

因為是標準APACHE Log才可以這樣噢

Page 42: Twitter 與 ELK 基本使用

“今天要收的是 Twitter 資訊

當然要先註冊 Twitter 囉!

Page 43: Twitter 與 ELK 基本使用

如何成為 Twitter 開發人員

◈ 註冊 Twitter 帳號◈ 一定要認證手機◈ 隨便完成註冊:)

Page 44: Twitter 與 ELK 基本使用

如何成為 Twitter 開發人員

◈ 進入 Apps 管理頁面◈ https://apps.twitter.com/◈ Create New App !!

Page 45: Twitter 與 ELK 基本使用

如何成為 Twitter 開發人員

◈ 輸入基本資料

不能跟別人重複

不能少於10個字

Page 46: Twitter 與 ELK 基本使用

如何成為 Twitter 開發人員

◈ 取得授權 Token

Page 47: Twitter 與 ELK 基本使用

如何成為 Twitter 開發人員

◈ 取得授權 Token

Page 48: Twitter 與 ELK 基本使用

如何成為 Twitter 開發人員

◈ 取得授權 Token保留以下四個欄位的值Consumer KeyConsumer SecretAccess TokenAccess Token Secret

Page 49: Twitter 與 ELK 基本使用

Logstash 與 Twitter

◈ input Twitter

設定關鍵字與語系

填入剛剛的內容

Page 50: Twitter 與 ELK 基本使用

Logstash 與 Twitter

◈ 開始接收資料

Page 51: Twitter 與 ELK 基本使用

Logstash 與 Twitter

◈ 撰寫儲存資料◈ Elasticsearch Output

設定取得完整的Tweet內容

Page 52: Twitter 與 ELK 基本使用

Logstash 與 Twitter

◈ 查看搜集完成的資料

Page 53: Twitter 與 ELK 基本使用

修改template

◈ 整理 twitter 文章地理資訊格式◈ 把不該斷詞的欄位設定為不斷詞◈ 把該拿掉的字拿掉(stopwords)

Page 54: Twitter 與 ELK 基本使用

Logstash 補充說明

◈ 多個 Input 就要開啟多個 Logstash 嗎使用 type 參數區隔多個來源◈ 可以實作 Multi-forwarding 嗎?支援同時多種輸出管道

Page 55: Twitter 與 ELK 基本使用

Logstash 補充說明

輸入時設定type參數

輸出時辨識以作區隔

Page 56: Twitter 與 ELK 基本使用

Logstash 補充說明

輸入時設定type參數

也可做同內容多個輸出

Page 57: Twitter 與 ELK 基本使用

Elasticsearch LogstashKibana

3.Kibana

Page 58: Twitter 與 ELK 基本使用

事前準備

◈ 必須要裝好 Elasticsearch 版本 > 1.4.4

◈ Elasticsearch 裡面必須有資料 最好跟時間有關係 如果能跟地理位置有關那更好

Page 59: Twitter 與 ELK 基本使用

Kibana 簡介

◈ 先運行起來◈ Kibana/bin/kibana.bat◈ http://localhost:5601

Page 60: Twitter 與 ELK 基本使用

控制列介紹

◈ 功能區塊分成四大部份

看資料用的區塊

處理視覺化呈現

將視覺化區塊排版

資料來源設定

Page 61: Twitter 與 ELK 基本使用

資料來源設定

◈ 勾選資料中有時間資訊

輸入index名稱twitter

辨識時間欄位@timestamp

Page 62: Twitter 與 ELK 基本使用

時間設定

◈ 設定顯示資料的時間區間

Page 63: Twitter 與 ELK 基本使用

時間設定

◈ 設定 Auto refresh◈ 固定時間畫面自動刷新◈ 顯示最新資料

Page 64: Twitter 與 ELK 基本使用

Discover

◈ 快速掌握資料內容 Search區可下關鍵字查詢

時間軸區立即確認資料在時間的分布情形

原始資料區立即確認資料實際上的內容

Page 65: Twitter 與 ELK 基本使用

Discover

◈ 快速掌握資料內容

欄位選擇區1. 確認欄位型態2. 修改原始資料

區顯示內容

地理位置時間字串

布林值數值

Page 66: Twitter 與 ELK 基本使用

Discover

◈ 稍微下個關鍵字

Page 67: Twitter 與 ELK 基本使用

Discover

◈ 稍微下個關鍵字

沒有iPhone阿….

Page 68: Twitter 與 ELK 基本使用

Discover

◈ 多叫出一個欄位[retweeted_status.source]

Page 69: Twitter 與 ELK 基本使用

Discover

◈ 更精準的關鍵字◈ 指定 text 欄位

Page 70: Twitter 與 ELK 基本使用

Discover

◈ 儲存 Search

Page 71: Twitter 與 ELK 基本使用

Visualize

Page 72: Twitter 與 ELK 基本使用

Visualize

◈ 看看今天的目標

Page 73: Twitter 與 ELK 基本使用

Visualize

◈ 看看今天的目標

Metric Metric Metric Markdown

Areachart

Linechart

Vertical Barchart

TileMap

Piechart

Datatable

Datatable

Page 74: Twitter 與 ELK 基本使用

Visualize

◈ Metric◈ 單一統計數值◈ 配合 Search 做條件篩選

= tweet only search + count

Page 75: Twitter 與 ELK 基本使用

Visualize

◈ Markdown◈ 增加描述文字 ◈ 用 Markdown 語法撰寫文字

#關鍵字: iPhone---------------* 觀察時間 : 2016/03/04* 觀察者 : Mark Dai

Page 76: Twitter 與 ELK 基本使用

Visualize

◈ Area chart◈ 常用於畫堆疊圖◈ 利用 filter 堆疊不同的結果

Retweet =>retweeted_status.source:*Tweet =>NOT retweeted_status.source:*

Page 77: Twitter 與 ELK 基本使用

Visualize

◈ Bar chart◈ 就長條圖◈ 利用 Date Histogram 做出時間軸

X軸 = @timestamp

Page 78: Twitter 與 ELK 基本使用

Visualize

◈ Line chart◈ 就折線圖◈ 利用 term 分隔不同的結果

Split line : place.country.raw AND Top 5

Page 79: Twitter 與 ELK 基本使用

Visualize

◈ Data table◈ 多層統計數值◈ 類似SQL Group By 的效果◈ 下載CSV

Page 80: Twitter 與 ELK 基本使用

Visualize

◈ Pie chart◈ 可以做多層的圓餅圖

內圈:國家外圈:地點

Page 81: Twitter 與 ELK 基本使用

Visualize

◈ Tile map◈ 在地圖上打點◈ 要配合專屬格式 : geo point

Page 82: Twitter 與 ELK 基本使用

“快完成了,最後一步了

組個嚇人的儀表板!

Page 83: Twitter 與 ELK 基本使用

Dashboard

◈ 你的圖都準備好了嗎?

Page 84: Twitter 與 ELK 基本使用

Dashboard

◈ 選擇要加入的圖 ( 當然是全部囉 ! )

Page 85: Twitter 與 ELK 基本使用

Dashboard

◈ 點完會變成這樣….◈ 拉一拉調整一下囉

Page 86: Twitter 與 ELK 基本使用

Dashboard

◈ 調整完會變這樣

Page 87: Twitter 與 ELK 基本使用

Dashboard

◈ 按下設定,套用黑色,質感再升級

◈ 辛苦做完別忘了儲存喔

Page 88: Twitter 與 ELK 基本使用

Dashboard

◈ 可以下關鍵字對全文檢索◈ 也可按任意圖表加入篩選條件◈ 整個Dashboard篩選都是連動的喔

啟用篩選 | 釘選 | 反向選擇 | 刪除 | 修改條件

Page 89: Twitter 與 ELK 基本使用

Thanks!

Any questions?

You can find me at:[email protected]