Kibana 使用方法(简)

# Kibana 使用方法(简)

Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。您可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。您可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现。

Kibana 是基于 index 进行数据分析和可视化,所以在进入 Kibana 平台后首要的工作就是创建 index pattern,然后在创建 Visualization 或者 Alerting 的时候用上 index。

# 创建 Index pattern

First Step:

进入 Management > Index Patterns,点击Create Index Patterns Create Index Patterns 01

说明:

  • 需要输入一个 index 的全称才能被选中
  • 支持使用 * 通配符选择多个 index
  • 选择好 index 后点击Next step会进入下一步

Second Step:

Create Index Patterns 02

说明:

  • 可以选择添加作为时间过滤的字段
  • 如不添加,选择“I don't want to use the Time Filter”
  • 选择好 Time filter field name 后点击Create index pattern 会创建 Index Pattern

# 查看 Index pattern

进入 Discover,选择需要查看的 index pattern,如果查看到的是空白,需要注意选择的时间段(index 的数据是根据时间进行过滤的)。

View Index Pattern 01

添加更多字段到列表

页面左侧的Available fields,点击字段旁的add可以选择添加更多字段,添加后在页面右侧的数据列表可以即时查看。

View Index Pattern 02

保存搜索

View Index Pattern 03

# 创建 Visualization

First Step

进入 Visualize ,点击按钮。

visualize-1

Second Step

在弹出的 Dialog 中选择要使用的可视化类型。

visualize-2

Third Step

选择要进行可视化观察的 index pattern,或者也可以直接选择 Saved search。

visualize-3

Fourth Step

选择好之后会出来对应的可视化结果,如要保存需要点击页面中左上角的Save按钮。 visualize-4

# 创建 Alerting

First Step

进入 Alert,点击Create monitor进入创建 Monitor 的页面。

Create Alert 01

Second Step

在创建 Monitor 页面,填写 Monitor_name 、Index 等信息,然后点击底部的Create按钮即创建成功。

alert-2

# 使用 SQL on ES 功能

如果你希望直接通过 Kibana 对你已经存储的数据进行简单的 SQL 查询,可以使用侧边栏的 Dev-Tool 功能来完成:

Dev-Tool Console 中的语法如下:

POST /_opendistro/_sql?format=csv
{
  "query": "select country, user_segment, event_id FROM marsk* limit 5"
}

其中:

  • POST /_opendistro/_sql 为执行 SQL 入口点
  • ?format=csv 是指定查询的结果形式,可选的格式有 txt/csv/json
  • "query" 字段是查询的 SQL 语句:
    • from 之后需要指定 index pattern, 如此例中的 marsk*
    • 为了保护系统的不会因为不合理的查询而导致集群不稳定,请对你的查询语句作出限制,切勿对整个 index pattern 做全量的查询

查询的结果一般如下以 csv 格式返回

country,user_segment,event_id
CN,66,e28158700744139
CN,66,e282474602929324
CN,66,e10087239540291
CN,66,e14513082360858
CN,66,e115745583976608

方便进行后续的分析。

# SQL 的支持

  • SQL Select
  • SQL Delete
  • SQL Where
  • SQL Order By
  • SQL Group By
  • SQL Having
  • SQL Inner Join
  • SQL Left Join
  • SQL Show
  • SQL Describe
  • SQL AND & OR
  • SQL Like
  • SQL COUNT distinct
  • SQL In
  • SQL Between
  • SQL Aliases
  • SQL Not Null
  • SQL(ES) Date
  • SQL avg()
  • SQL count()
  • SQL max()
  • SQL min()
  • SQL sum()
  • SQL Nulls
  • SQL isnull()
  • SQL floor
  • SQL trim
  • SQL log
  • SQL log10
  • SQL substring
  • SQL round
  • SQL sqrt
  • SQL concat_ws
  • SQL union and minus

# SQL 的限制

  1. 在表连接并且查询多个索引时, group by 无法作用与多索引的字段,例如下面 users* 的 u.id
❎ select * FROM users* u join company c on u.company_id=c.id group by u.id

✅ select * FROM users* u join company c on u.company_id=c.id group by c.id 
  1. 查询时,索引名包含 ‘.’ 的不可查询,‘-’是可以查询的
❎ select os_type FROM marsk-event-2020.*
  1. 不可查询数组字段

更多

更多关于 Kibana 的使用介绍可以查看 官方文档 (opens new window)

上次更新: 2020/9/24 08:29:25