Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Social Media & Big Data
從無到有打造專屬社群觀測站
戴君翰 ( Mark )
markdai@iii.org.tw
今天來幹嘛?
來賺講師費的
今天來幹嘛?
來教大家寫一點點程式
蒐集並觀測社群媒體資訊
巨量資料處理與分析
隨手可得的巨量資料莫過於社群媒體
順帶一提:今天只講處理不講分析
今天的主角
量大
好抓
好開放
Elasticsearch
Logstash
Kibana
0.
今天的主角
ELK
ELK 簡介
Elasticsearch
◈ 開放源碼索引資料庫
◈ 多語系斷詞外掛
◈ 全文檢索搜尋
◈ 跨機器叢集倉儲
◈ 內建HA
Logstash
◈ 資料解析與轉送
◈ 可接收49種來源資訊
◈ 可輸出至56種目的地
◈ 提供42種常見資料中
介處理方式
Kibana
◈ Elasticsearch視覺化
呈現界面
◈ 快速觀察資料內容
◈ 8種實用圖表
◈ 自由搭建報表系統
◈ 即時更新呈現內容
事前準備
◈ 下載 JDK 8
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads
-2133151.html
◈ 下載 Elasticsearch
https://www.elastic.co/downloads/elasticsearch
◈ 下載 Logstash
https://www.elastic.co/downloads/logstash
◈ 下載 Kibana
https://www.elastic.co/downloads/kibana
◈ 確認 Twitter Key
實作步驟
蒐集關鍵字
安裝
Elasticsearch
Logstash
介接資料
Kibana
建立觀察版面
Elasticsearch
Logstash
Kibana
1.
Elasticsearch
Elasticsearch 簡介
◈ Elasticsearch = Lucene + REST api
◈ 建立索引以達到快速查詢資料
1 , Mark , 25 , Taipei
2 , Eric , 30 , Taipei
3 , Lucas , 25 , Taipei
Name ID
Mark 1
Eric 2
Lucas 3
Age ID
25 1,3
30 2
City ID
Taipei 1,2,3
Index
ID Name Age City
1 Mark 25 Taipei
2 Eric 30 Taipei
3 Lucas 25 Taipei
DB
Elasticsearch 簡介
◈ JSON based的儲存格式
◈ 容易表達結構化的階層式資料
◈ 不須先定義欄位(schema free)
Elasticsearch 簡介
◈ 叢集架構易於擴張與備份
◈ Replica Set
◈ Shard
Sharding 機制
◈ 分散儲存資料機制
◈ 資料分散成不同區塊儲存
◈ 分散存取加速運算
Data
1
Data
2
Data
1
Data
2
Node1
Node3
Data
3
Data
3
Node2Data
Replica 機制
◈ 重複儲存機制
◈ 把每份資料複製一份以上
◈ 避免叢集間機器損壞導致資料遺失
Data
1
Data
2
Data
2
Data
3
Data
3
Data
1
Node1
Node2
Node3
Data
1
Data
2
Data
2
Data
3
Node1
Node2
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
介紹完了,來安裝吧
安裝JAVA
◈ 安裝不難 , 重點在設定JAVA_HOME
安裝JAVA
◈ 安裝不難 , 重點在設定JAVA_HOME
修改設定檔
◈ 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
#
解壓縮,執行 Elasticsearch
◈ 使用 cmd 執行 elasticsearch.bat
確認有沒有執行成功
來個圖形界面吧
◈ 安裝 Head 圖形化界面
plugin.bat install
mobz/elasticsearch-head
確認是剛剛打的名字
Elasticsearch
Logstash
Kibana
2.
Logstash
Logstash 簡介
◈ Logstash 三大組成
• file, exec, http, tcp, syslog
• rss, TwitterInput
• grok, csv, json, key-value
• date, geoip,Filter
• file, zip, tcp, stdout
• elasticsearch, solr, redisOutput
Logstash 簡介
◈ Logstash 多執行序設定
• threads or workers 參數
• redis,Input
• 執行時加入-w參數
Filter
• workers 參數
• elasticsearch, solr, redisOutput
Logstash 簡介
◈ threads + workers = CPU 核心數
◈ 官方效能檢測:
https://github.com/elastic/logstash-performance-testing/blob/master/READM
E.md
◈ 非官方效能檢測:
https://gist.github.com/paulczar/4513552
Logstash 業界使用情境
Logstash 業界使用情境
Logstash 業界使用情境
Logstash 基本使用
◈ 撰寫設定檔
stdin
Standard input
就是鍵盤輸入拉
stdout
Standard output
就是螢幕輸出拉
Logstash 基本使用
◈ 執行程式囉
◈ logstash.bat agent –f simple.config
輸入的東西被直接輸出
並且帶有時間及電腦名稱
Logstash 基本使用
◈ 但真正的輸出長相並非如此
◈ 修改 simple.config
Codec
Code & decode
在這邊就是解碼囉
Logstash 基本使用
◈ 執行程式囉
◈ logstash.bat agent –f simple.config
輸出其實是有欄位的!!
Logstash 基本使用
◈ 來吃看看檔案
◈ 先下載範例日誌
http://www.monitorware.com/en/logsamples/apache.php
Logstash 基本使用
◈ 來吃看看檔案
◈ 吃檔案設定檔撰寫
Sincedb
存放檔案讀取的進度
Logstash 基本使用
◈ 執行程式囉
◈ logstash.bat agent –f apacheLog.config
欄位沒有被正確解析!!
Logstash 基本使用
◈ 撰寫 Filter
◈ 使用 grok 解析日誌
◈ https://grokdebug.herokuapp.com/
Logstash 基本使用
◈ 有Filter的設定檔
Logstash 基本使用
◈ 執行結果
欄位被正確解析囉 :)
Logstash 基本使用
◈ 其實不用這麼麻煩….
因為是標準APACHE Log才可以這樣噢
“今天要收的是 Twitter 資訊
當然要先註冊 Twitter 囉!
如何成為 Twitter 開發人員
◈ 註冊 Twitter 帳號
◈ 一定要認證手機
◈ 隨便完成註冊:)
如何成為 Twitter 開發人員
◈ 進入 Apps 管理頁面
◈ https://apps.twitter.com/
◈ Create New App !!
如何成為 Twitter 開發人員
◈ 輸入基本資料
不能跟別人重複
不能少於10個字
如何成為 Twitter 開發人員
◈ 取得授權 Token
如何成為 Twitter 開發人員
◈ 取得授權 Token
如何成為 Twitter 開發人員
◈ 取得授權 Token
保留以下四個欄位的值
Consumer Key
Consumer Secret
Access Token
Access Token Secret
Logstash 與 Twitter
◈ input Twitter
設定關鍵字與語系
填入剛剛的內容
Logstash 與 Twitter
◈ 開始接收資料
Logstash 與 Twitter
◈ 撰寫儲存資料
◈ Elasticsearch Output
設定取得完整的Tweet內容
Logstash 與 Twitter
◈ 查看搜集完成的資料
修改template
◈ 整理 twitter 文章地理資訊格式
◈ 把不該斷詞的欄位設定為不斷詞
◈ 把該拿掉的字拿掉(stopwords)
Logstash 補充說明
◈ 多個 Input 就要開啟多個 Logstash 嗎
使用 type 參數區隔多個來源
◈ 可以實作 Multi-forwarding 嗎?
支援同時多種輸出管道
Logstash 補充說明
輸入時設定type參數
輸出時辨識以作區隔
Logstash 補充說明
輸入時設定type參數
也可做同內容多個輸出
Elasticsearch
Logstash
Kibana
3.
Kibana
事前準備
◈ 必須要裝好 Elasticsearch
版本 > 1.4.4
◈ Elasticsearch 裡面必須有資料
最好跟時間有關係
如果能跟地理位置有關那更好
Kibana 簡介
◈ 先運行起來
◈ Kibana/bin/kibana.bat
◈ http://localhost:5601
控制列介紹
◈ 功能區塊分成四大部份
看資料用的區塊
處理視覺化呈現
將視覺化區塊排版
資料來源設定
資料來源設定
◈ 勾選資料中有時間資訊
輸入index名稱
twitter
辨識時間欄位
@timestamp
時間設定
◈ 設定顯示資料的時間區間
時間設定
◈ 設定 Auto refresh
◈ 固定時間畫面自動刷新
◈ 顯示最新資料
Discover
◈ 快速掌握資料內容
Search區
可下關鍵字查詢
時間軸區
立即確認資料在時
間的分布情形
原始資料區
立即確認資料實際
上的內容
Discover
◈ 快速掌握資料內容
欄位選擇區
1. 確認欄位型態
2. 修改原始資料
區顯示內容
地理位置
時間
字串
布林值
數值
Discover
◈ 稍微下個關鍵字
Discover
◈ 稍微下個關鍵字
沒有iPhone阿….
Discover
◈ 多叫出一個欄位[retweeted_status.source]
Discover
◈ 更精準的關鍵字
◈ 指定 text 欄位
Discover
◈ 儲存 Search
Visualize
Visualize
◈ 看看今天的目標
Visualize
◈ 看看今天的目標
Metric Metric Metric
Mark
down
Area
chart
Line
chart
Vertical Bar
chart
Tile
Map
Pie
chart
Data
table
Data
table
Visualize
◈ Metric
◈ 單一統計數值
◈ 配合 Search 做條件篩選
= tweet only search + count
Visualize
◈ Markdown
◈ 增加描述文字
◈ 用 Markdown 語法撰寫文字
#關鍵字: iPhone
---------------
* 觀察時間 : 2016/03/04
* 觀察者 : Mark Dai
Visualize
◈ Area chart
◈ 常用於畫堆疊圖
◈ 利用 filter 堆疊不同的結果
Retweet =>retweeted_status.source:*
Tweet =>NOT retweeted_status.source:*
Visualize
◈ Bar chart
◈ 就長條圖
◈ 利用 Date Histogram 做出時間軸
X軸 = @timestamp
Visualize
◈ Line chart
◈ 就折線圖
◈ 利用 term 分隔不同的結果
Split line : place.country.raw AND Top 5
Visualize
◈ Data table
◈ 多層統計數值
◈ 類似SQL Group By 的效果
◈ 下載CSV
Visualize
◈ Pie chart
◈ 可以做多層的圓餅圖
內圈:國家
外圈:地點
Visualize
◈ Tile map
◈ 在地圖上打點
◈ 要配合專屬格式 : geo point
“快完成了,最後一步了
組個嚇人的儀表板!
Dashboard
◈ 你的圖都準備好了嗎?
Dashboard
◈ 選擇要加入的圖 ( 當然是全部囉 ! )
Dashboard
◈ 點完會變成這樣….
◈ 拉一拉調整一下囉
Dashboard
◈ 調整完會變這樣
Dashboard
◈ 按下設定,套用黑色,質感再升級
◈ 辛苦做完別忘了儲存喔
Dashboard
◈ 可以下關鍵字對全文檢索
◈ 也可按任意圖表加入篩選條件
◈ 整個Dashboard篩選都是連動的喔
啟用篩選 | 釘選 | 反向選擇 | 刪除 | 修改條
件
Thanks!
Any questions?
You can find me at:
markdai@iii.org.tw

More Related Content

Twitter 與 ELK 基本使用