1. 程式人生 > >Elastic Stack之kibana入門

Elastic Stack之kibana入門

匹配 訪問 gpo 系統 1.2 system last smp http

為了解決公司的項目在集群環境下查找日誌不便的問題,我在做過簡單調研後,選用Elastic公司的Elastic Stack產品作為我們的日誌收集,存儲,分析工具。

Elastic Stack是ELK(Elasticsearch,Logstash,Kibana)從5版本開始的新名稱,那麽的他們都能幹什麽?參見下圖:

技術分享圖片

我們使用logstash來收集日誌,Elasticsearch存儲日誌,Kibana用來搜索並展示可視化的頁面給用戶。

ok,本章重點講Kibana在linux下的安裝,假設你已經安裝了Elasticsearch,logstash。

使用cat /etc/centos-release

查看系統版本:

  CentOS Linux release 7.2.1511 (Core)

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

  Linux version 3.10.0-327.el7.x86_64 ([email protected]) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015

由於我的服務器環境無法連接外網,這裏采用rpm的方式安裝,那麽首先我們需要先準備好rpm,從官網下載kibana-6.1.2-x86_64.rpm文件。

官網下載頁傳送門:

  https://www.elastic.co/downloads/kibana

下載完成後,使用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,界面如下:

技術分享圖片

默認打開discover面板。但我們首先需要到management中創建Index Pattern。符合規則的Index Pattern將被用來匹配elasticsearch數據庫中的index。例如,我創建了一個logstash-*的Index Pattern,能匹配到logstash-2018.01.18

技術分享圖片

簡單配置後,接下來我們就可以去discover菜單查詢數據了。

技術分享圖片

在右上角有時間選項點擊可以展開更多選擇,默認展示最近15分鐘,根據需要選擇。

技術分享圖片

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

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

指定字段檢索

  message:injected

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

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

如下字符需要使用\進行轉義:

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

通配符:

  ? 匹配單個字符

  * 匹配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

  相關函數和示例:

      and path:"springframework*" AND @timestamp:["now-1h" TO "now"]

      orpath:"springframework*" OR @timestamp:["now-1h" TO "now"]

      notNOT path:"springframework*" 或者 !path:"springframework*"

      is path:"springframework*"

      range : @timestamp:["now-1h" TO "now"]

      exists_exists_:path ##必須存在path字段

      

  

      

  

Elastic Stack之kibana入門