2017年9月15日 星期五

Elasticsearch / Kibana 操作

Kibana 的操作介面,  大致上只要清楚幾個名詞的定義就可以大概知道要怎麼運用

  1. index pattern  :  elasticsearch 的 index , 類似 database 裡的 table name, 也就是 logstash 在 output 裡設定的 index 值. 可以透過以下指令取得 elasticsearch 的 index list
    curl 'http://localhost:9200/_cat/indices?v'
    
    而 index pattern 則是可以透過萬用字元, 來設定要從那些 index 找資料, 例如 filebeat-* 就是從所有名稱開頭為 filebeat- 的 index 裡找資料
  2. filter :  從選定的 index pattern 所符合的資料中, 設定過濾條件.
    在選單上的 Discover 裡, 可以設定多組 filter  (從上方的 add a filter).
    每組 filter 裡可以設定多個過濾條件.
  3. visualize : 從選定的 index pattern 所符合的資料中, 產生統計圖.
    在 visualize 的設定裡, 可以自行設定 filter, 或套用已設定好的 filter.
    可以從設定好的 visualize , 再增加額外的 filter 來觀察統計結果的變化.
  4. dashboard : 可以在 dashboard 中, 指定一個以上的 visualize .
    目的是在於可以將相關的統計資料 (visualize) 放在同一個 dashboard 來觀看.

field list

在設定完 index pattern 後, 會列出符合的 index 資料裡的所有欄位資料.
可以先確認是否符合自己設定的 grok parse 的結果.

filter 的設定

kibana 的介面提供的預設篩選條件有限, 若需要自定義篩選條件時, 可以點選 "Edit Query DSL" 來自行編輯語法.
可以從這個網站查詢合適的語法, 例如我要設定查詢條件是
欄位(field) "source"  的內容包含有 finance 這個字串, 設定的查詢語法是

{
  "query": {
    "wildcard": {
      "source": "*finance*"
    }
  }
}


visualize 的設定

visualize 設定裡, 選擇圖表種累的部份還蠻容易懂的, 視需要選擇即可.
比較需要說明的, 可能是設定 aggregation (X 軸) 的選項, 例如

  1. Date Histogram :依設定的日期/時間 field 來做統計
  2. Terms : 選擇需要的 field 來統計
  3. Filters : 可以設定 filter 來先對選取的資料過濾後再進行統計
另外就是在右上角可以設定資料篩選的時間範圍, 我一開始時沒注意到這邊, 結果時間範圍是錯的, 一直顯示沒有符合的資料, 浪費了不少時間除錯.


其他

Kibana 的 menu 裡有個選項  Dev Tools,  可以用來測試篩選資料的方法, 會比自己用 curl 對 elasticsearch 測試來得方便.

另外就是 menu 裡的 Timelion 選項, 可以看到資料匯入的統計圖, 可以用來確認資料是否有持續正常匯入.


大致上知道這些就可以簡單入手操作 kibana/elasticsearch , 其他的功能可能就要遇到才有機會瞭解了.

沒有留言: