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字段
相关文章
相关标签/搜索