Kibana對數據的可視化

  • 2019 年 10 月 3 日
  • 筆記

基於上一篇的操作,我們已經獲得了數據,接下來我們就要處理數據,因此選用了Kibana

      先來介紹一下,

        Kibana是一個針對Elasticsearch的開源分析及可視化平台,用來搜索、查看交互存儲在Elasticsearch索引中的數據

        使用Kibana,可以通過各種圖表進行高級數據分析及展示

   Kibana讓海量數據更容易理解。它操作簡單,基於瀏覽器的用戶介面可以快速創建儀錶板實時顯示Elasticsearch查詢動態

 

進入操作:

       1.首先,將elasticsearch和kibana搭建在一個伺服器上。

           其次,在kibana介面建立一個索引,和elaticsearch建立的索引進行配對。

        關於索引建立的步驟如下:

               1.打開kibana中的management管理

               2.單擊index patterns索引模組。

               3.選擇create index pattern模組,建立索引。

            進入新建索引頁面後,建立的索引名要和elasticsearch建立的索引對應,否則,無法創建kibana的索引。

   進入next step 後 不要更改設置裡面的默認選項,直接create就可以。

 

 2.索引建立完成後,我們可以去discover選項,選擇建立的索引,查看通過elaticsearch上傳的數據

 

 

3.既然已經找到數據,那麼我們就要對這些數據進行處理,我們選擇可視化裡面的創建折線圖Line來展示。

 

然後選擇想可視化的對應索引後,將出現如下介面。

 

 

選擇X和Y的單位等,比如x軸選擇時間作為單位,但是出現了以下問題:

匹配不到相應類型,也就是說,我在elaticsearch上傳的時間不是kibana需要的date類型。那我們的時間是什麼類型呢??

再回到當初的python上傳數據的程式碼發現,第23行的這句話(在上一篇文裡面):

y={id:1,time:str(time.strftime(%Y-%m-%d %H:%M:%S, time.localtime())),value:str(val)}
 
發現time鍵對應的值是個字元串類型的啊!!!
OK,那我就改類型,把str改成date類型,可以運用python的datetime庫,import datetime

str(time.strftime(%Y-%m-%d %H:%M:%S, time.localtime()))—->datetime.date.today()
 

再仔細看看,發現,value對應的值也是str,當你在kibana操作的時候,欄位裡面的選項也是沒有value選項的,現在知道了,
既然是str類型怎麼能當成數字傳上去呢,所以要把str類型轉成number,即刪除str()即可。
 
改完之後我們保存執行,在kibana中發現還是會報同樣的錯。為什麼呢???
因為索引裡面的欄位類型是不能更改的,所以想變,就只能重新建立一個新的索引了,注意索引的名字一定不能相同!!!
 
再重複建立索引,建立可視化圖的步驟,選擇相應的X軸 Y軸後,我們的折線圖就出來了。