使用容器和Elasticsearch集羣對Twitter進行監控

介紹

Elasticsearch是ELK(Elasticsearch/Logstash/Kibana)的基石。在這篇文章中,咱們將使用Rancher Catalog來部署stack,並將它用於追蹤Twitter上的tag和brand。git

追蹤Twitter上的hashtag對於衡量基於Twitter的營銷活動的影響力是很是有用的。你能夠從中提取出諸如您的推文被轉發的次數,你的營銷活動爲你帶來了多少位新的關注者等有效信息。github

安裝ELK stack

Elasticsearch

若你已經有了一個正在工做中的Elasticsearch集羣,如今只須要調整一些集羣中的配置便可。咱們將使用JSON建立一個索引模板,來調整相關配置。docker

  • GitHub上獲取JSON模板json

  • 在你的瀏覽器中輸入http://[你的kopf在rancher主機上的路徑]數組

  • 在kopf中,點擊「more」,而後在下拉菜單中選擇「index templates」瀏覽器

圖片描述

如今咱們給咱們的索引模板起個名字,而且推進其配置。elasticsearch

  • 使用twitter_elk_example做爲模板名稱spa

  • 粘貼你以前下載的JSON文件中的內容日誌

  • 點擊「save」按鈕code

圖片描述

Elasticsearch集羣的配置就到這裏。如今讓咱們接着往下走。

Logstash

Logstash讓你可以分析所得到的數據而且將數據傳輸至你的Elasticsearch集羣中。它原生支持不少數據源(如Twitter APIs、collectd、Apache日誌等)。

在處理你的數據時,Logstash能夠幫助你解壓或格式化你數據中的正確部分。這樣,你就沒必要推送一些沒必要要的或者(更糟的)錯誤數據,這些髒數據會使你的Kibana dashboard與實際狀況不相符。

在咱們開始以前,須要建立Twitter應用密鑰

須要特別關注如下內容:

  • Consumer Key

  • Consumer Secret

  • Access Token

  • Access Token Secret

注意:確保你全部的Rancher主機的時鐘均已同步,不然你將沒法正確地使用Twitter證書。

如今跳轉到目錄頁並選擇Logstash(最好是最新的版本)。你須要在「Logstash inputs*」輸入框中加入如下內容(用你本身的APIs認證密鑰替換CAP文本):

twitter {
 consumer_key => "INSERT YOUR CONSUMER KEY"
 consumer_secret => "INSERT YOUR CONSUMER SECRET"
 oauth_token => "INSERT YOUR ACCESS TOKEN"
 oauth_token_secret => "INSERT YOUR ACCESS TOKEN SECRET"
 keywords => [ "docker", "rancher_labs", "rancher", "kubernetes" ]
 full_tweet => true
 }

注意:在關鍵字數組中,不要使用「@」或者「#」符號,不然Logstash將運行失敗並報「unauthorized message」錯誤。

在「Logstash output*」這個輸入框中,你須要加入如下內容

output {
 elasticsearch {
 host => "elasticsearch:9200"
 protocol => "http"
 cluster_name => "NAME OF YOUR ELASTICSEARCH CLUSTER"
 index => "twitter_elk_example"
 document_type => "tweets"
 }

圖片描述

最後,選擇「elasticsearch-clients as the Elasticsearch stack/service」,點擊「launch」按鈕便可!

圖片描述

接下來的事情Rancher將會幫你作完,包括部署一個徹底配置好的Logstash。若是一切順利,在幾分鐘以內,你應該能看到數據已經被加入到了你的Elasticsearch主頁中。你能夠在http://[你的ElasticSearch主機地址]/#kopt 中查看。

圖片描述

Kibana

Kibana能幫助你根據Elasticsearch集羣中的數據建立一個強大的dashboard。要部署Kibana,你只須要作兩件事情:選擇正確的Rancher Catalog版本,而後將它鏈接到elasticsearch-clients容器中。

圖片描述

這樣,一個配置正確的Kibana已經準備好被使用了!後續咱們還將會對它進行一些配置。

如今,整個ELK棧就部署好了。雖然Elasticsearch和Logstash已經部署好了,咱們仍是須要對Kibana進行一些操做。

在這個例子中,咱們只須要在Kibana中導入一個JSON儀表盤便可。

  • 點擊這裏獲取JSON文件

  • 進入Settings –> Object,而後點擊「import」,接下來選擇剛剛下載好的文件。你應該會看到相似於下圖的界面。

圖片描述

剩下的就是在Kibana中建立一個適當的索引設置了。

前往「Indices」頁面,而後點擊「New」按鈕。你應該能看到被建立好的索引和被選擇了的@timestamp(時間戳)。

圖片描述

到目前位置,你已經有了一個幫助你監控Twitter上的hashtag和brand的Kibana dashboard。要加載被導入的dashboard,你只須要在這裏點擊它的名字便可。

圖片描述

幾分鐘後,從新查看dashboard,你會看到相似下圖的界面:

圖片描述

至此,你就能成功監測Twitter上的tag和brand的狀況啦!

相關文章
相關標籤/搜索