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

介紹


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


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


安裝ELK stack


Elasticsearch


若你已經有了一個正在工作中的Elasticsearch集羣,現在只需要調整一些集羣中的配置即可。我們將使用JSON創建一個索引模板,來調整相關配置。


  • GitHub上獲取JSON模板

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

  • 在kopf中,點擊“more”,然後在下拉菜單中選擇“index templates”


wKiom1kTKRjhKxFJAACWV6zk2fQ808.jpg


現在我們給我們的索引模板起個名字,並且推動其配置。


  • 使用twitter_elk_example作爲模板名稱

  • 粘貼你之前下載的JSON文件中的內容

  • 點擊“save”按鈕


wKiom1kTKS6Sc-zHAACZEPVSHl0935.jpg


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"
 }

wKiom1kTKV6zZR7dAABueZVzZ1M238.jpg


最後,選擇“elasticsearch-clients as the Elasticsearch stack/service”,點擊“launch”按鈕即可!


wKioL1kTKWqDJWX5AAAwWH2y8ws290.jpg


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


wKiom1kTKXfh_XM1AAAOMVOCsRs488.jpg


Kibana


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


wKioL1kTKYrRx_U_AABB_5hXbbU709.jpg


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


現在,整個ELK棧就部署好了。雖然Elasticsearch和Logstash已經部署好了,我們還是需要對Kibana進行一些操作。


在這個例子中,我們只需要在Kibana中導入一個JSON儀表盤即可。


  • 點擊這裏獲取JSON文件

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


wKioL1kTKabTTd_AAABiQUgAro0835.jpg


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


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


wKiom1kTKbWAWNkiAACEEqM8XAk702.jpg


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


wKioL1kTKcTzhFnuAAAc_3cW-2U070.jpg


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


wKioL1kTKduACaNQAACi300xW2E339.jpg


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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章