實戰Kibana的日誌關鍵詞搜索和日誌可視化

準備工作

首先,先下載一個elastic網站上下載一個它提供的demo---莎翁的《亨利四世》,下載地址是https://download.elastic.co/demos/kibana/gettingstarted/shakespeare.json 。


打開這個json字符串,裏面就是《亨利四世》的話劇劇本,長得是這個樣子:

image.png


可以看到裏面有“play_name”、"speaker"、"speech_number"、"line_id"等等名稱,每個名稱後面都有一個對應的值。


然後啓動elasticsearch,按照上面的文件格式生成索引。語句如下:

curl -XPUT http://localhost:9200/shakespeare -d '
{
 "mappings" : {
  "_default_" : {
   "properties" : {
    "speaker" : {"type": "string", "index" : "not_analyzed" },    #確定type是字符
    "play_name" : {"type": "string", "index" : "not_analyzed" },
    "line_id" : { "type" : "integer" },    #確定type是數字
    "speech_number" : { "type" : "integer" }
   }
  }
 }
}
';


導入剛剛下載的那個json:

curl -XPOST 'localhost:9200/shakespeare/_bulk?pretty' --data-binary @shakespeare.json


具體elasticsearch的增刪改查語法可以參看阮大師的http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html ,個人建議將elasticsearch和mysql對比一下,這樣更方便理解。


然後後臺啓動kibana,確認5601端口已經stand by,如圖:

image.png


然後在瀏覽器地址欄輸入“服務器外網ip:5601”打開kibana。


導入數據結束之後,使用#curl 'localhost:9200/_cat/indices?v',去查看一下效果,如果看到index裏有shakespeare那一欄就是導入成功了,如圖:

1.png


在啓動Kibana後,Kibana會自動在配置的es中創建一個名爲.kibana的索引(上圖第二個),這個索引用來存儲數據,注意!不要刪除了它。


Kibana的界面搜索

如果此時的kibana裏是第一次配置的話,那麼第一步就是配置新索引,我們之前在生成索引的時候寫的是shakespeare,那麼現在也寫shakespeare,然後點擊create,如圖:

image.png


然後在菜單欄左側的discover裏選擇剛剛建立的“shakespeare”,就會看到這樣的東西:

1.png


在Search上就可以進行搜尋,比如說我搜尋"freedom",如圖:

image.png


如果我搜尋“KING HENRY IV ”,他不分大小寫的把所有king、henry、iv都搜索出來。


如果我想搜尋line_id的第一行到第三行,那麼語句就是line_id:[1 TO 3],如圖:

image.png


如果想在上面的基礎上進一步細化,比如說要在line_id是從第一行到第三行,同時_type是scene的語句:line_id:[1 TO 3] AND _type:scene

image.png


假如不想要scene,那麼就把AND改成NOT。


如果這個時候只想關注一些指定的字段,那麼可以將鼠標移動到索引下面的字段上,然後選在add即可,同樣的移動上面已經選擇的字段選擇remove進行移除,比如我們試一下這個speaker:

image.png


add之後在點擊右側的具體的speaker,就會看到裏面的細節,比如這位westmoreland(威斯摩蘭伯爵):

image.png


這個時候就能看見這位伯爵大哥的臺詞細節,在第幾場的第幾節,說的是什麼臺詞。再返回菜單左側點擊這個speaker,我們還會看到一個比重:

image.png


從這裏就很清晰的看到,FALSTAFF(法斯塔夫)這個哥們的臺詞最多,也符合書裏塑造的那個嗜酒話癆的藝術形象。而我們的KING HENRY IV(亨利四世)的臺詞只是第四位,佔比重11%而已...


這樣具體的搭配搜索之後,可以點擊界面右上側的save進行保存搜尋結果,再搭配share分享搜索結果的url網址,如圖:

image.png


Kibana的圖像化展示

Kibana也能做到類似grafana那樣的炫酷圖象化展示,更加立體的表現日誌情況,首先選擇左側菜單欄裏的“Visualize”(可視化):

image.png


然後點擊“Create a Visualization”,裏面既有很多種圖形供你選擇,有餅型,有箭頭的,有文字的,有儀表盤的,如圖:

image.png


我們這裏先建立一個餅型的,還是上面那個臺詞多少的例子,首先選擇"shakespeare"作爲數據源,然後點擊“split slices”,如圖:

image.png 


然後在Aggergation裏選擇“Terms”,然後在Field裏選擇“Speaker”,size那裏寫8,最後點擊上面的那個三角播放鍵,看看結果:

image.png


這就很清晰的看出,亨利四世一共說了1086句話,佔比11.11%。


如果我們再加一個“Split Slices",這一次在原有的specker的基礎上選擇“play_name”,圖象變成了一個同心圓,最外面的一層就是新增的“play_name”的情況,如圖顯示FALSTAFF的所有臺詞會在兩個play_name裏出現:

image.png



如果這個盤子裏不想統計FALSTAFF這個話包,就添加一個過濾器,選擇speaker is not,後面寫上FALSTAFF即可,如圖:

image.png


效仿剛纔的方法也可以做一個儀表盤,如圖:

image.png


可視化的數據也可以save和share,同樣在web界面的右上角。保存的數據是可以在左側菜單欄裏的Dashboard裏展示,做成一個類似zabbix那樣的展示!



最後的最後,如果您覺得本文對您升職加薪有幫助,那麼請不吝贊助之手,刷一下下面的二維碼,贊助本人繼續寫更多的博文!

wKioL1l16m3BMYDKAACPHEqd55Q687.jpg

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