Elastic Stack之kibana入門

簡述

爲了解決公司的項目在集羣環境下查找日誌不便的問題,在作過簡單調研後,我選用Elastic公司的Elastic Stack產品做爲咱們的日誌收集,存儲,分析工具。咱們經過下面張圖來看下各個組件的用處:html

 

咱們可使用logstash來收集日誌,Elasticsearch存儲日誌,Kibana搜索並展現可視化的頁面給用戶。這是一套成熟的開源產品,各個組件都是能夠單獨部署的,官方提供豐富的插件,天生支持集羣,入門簡單,可拓展性極強。linux

Kibana產品介紹:https://www.elastic.co/cn/products/kibanaspring

Kibana下載頁:https://www.elastic.co/downloads/kibana數據庫

Kibana用戶指南:https://www.elastic.co/guide/en/kibana/current/index.htmlcentos

 


 

kibana安裝和系統設置

接下來咱們在linux下的安裝,假設你已經安裝了Elasticsearch,logstash,而且安裝了jdk 1.8服務器

使用cat /etc/centos-release查看系統版本:elasticsearch

  CentOS Linux release 7.2.1511 (Core) ide

使用cat /proc/version 查看系統內核函數

  Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015工具

因爲個人服務器環境沒法鏈接外網,這裏採用rpm的方式離線安裝,首先從官網下載kibana-6.1.2-x86_64.rpm文件。

下載完成後,使用rpm命令安裝

   rpm -ivh /elk/kibana-6.1.2-x86_64.rpm

安裝完畢,使用systemd來將kibana設置爲開機啓動

  sudo /bin/systemctl daemon-reload

  sudo /bin/systemctl enable kibana.service

若是須要外網訪問,將kibaba.yml中的server.host設置爲0.0.0.0,接下來咱們啓動服務

  sudo systemctl start kibana.service

使用IP:5601訪問kibana,界面以下:

 

菜單概覽

  • Management

 首先,咱們須要到management中建立Index Pattern。符合規則的Index Pattern將被用來匹配elasticsearch數據庫中的index。例如,我建立了一個logstash-*的Index Pattern,能匹配到logstash-2018.01.18

 

簡單配置後,接下來咱們就能夠去discover菜單查詢數據了。

  • Discover

 

 在右上角有時間選項點擊能夠展開更多選擇,默認展現最近15分鐘,根據須要選擇。

 

搜索入門

Kibana支持Lucene query sysntax,此外Kuery爲kibana指定的查詢語言。

在搜索欄輸入任意字符,Kibana將使用message做爲默認字段,將輸入字符進行分詞檢索。注意:如須要使用中文分詞,須要使用插件進行相關配置。

  • 指定字段檢索

  message:injected

  • 將輸入字符使用雙引號包起來,則輸入字符會做爲一個短語搜索

  path:"/logs/xxxx/springframework.log"

  • 以下字符須要使用\進行轉義:

  + - && || ! () {} [] ^" ~ * ? : \

  • 通配符:
  1. ? 匹配單個字符  
  2. * 匹配0到多個字符
  • 近似搜索:

  "charA charB"~10 表示charA先後10個詞內出現charB

  • 範圍搜索:

  [ ] 表示端點數值包含在範圍內,{ } 表示端點數值不包含在範圍內

  數值類型示例,100到200:length:[100 TO 200]

  日期類型示例,6小時以內:date:{"now-6h" TO "now"}

      y years
      M months
      w weeks
      d days
      h hours
      H hours
      m minutes
      s seconds

  • 相關函數和示例:
  1. and path:"springframework*" AND @timestamp:["now-1h" TO "now"]
  2. orpath:"springframework*" OR @timestamp:["now-1h" TO "now"]      
  3. notNOT path:"springframework*"  或者   !path:"springframework*" 
  4. is path:"springframework*" 
  5. range : @timestamp:["now-1h" TO "now"]
  6. exists: _exists_:path  ##必須存在path字段
相關文章
相關標籤/搜索