疑问1:从Logstash传进来的数据,我们如何在ES中处理后方便展示和搜索呢??

这里,我们需要结合一下Kibana的界面来讲解一下。

登录到kibana界面后点击管理—>索引管理,在这里我们可以看到从logstash传进来的数据。此时我们需要把同一类型的数据归类,如之前我们传进来的nginx-access-log-2019.8.30这样的数据都是有加时间日期的,我们点击索引模式—>创建索引模式,输入nginx-access-log-,点击下一步后创建名为nginx-access-log-的索引模式,如下:

点击这个索引模式,我们可以看到能被ES搜索和聚合的字段,如下:

注:因为数据被Logstash已经处理过了,数据传到ES时会自动的创建好索引,格式见Logstash的output插件配置,我们可以点击kibana上的Discover,如下图所示:

疑问2:那么在kibana上如何查看导入数据的具体索引模式?

点击开发工具,在左边输入GET /你的索引名称(有提示的,不需要记的太清),再点击那个绿色三角形的运行按钮,右边就会显示这个索引的具体信息了,如下图:

创建索引:
但是由于我们的数据一般都是从logstash上传进来的,并不太需要在kibana上进行这个操作。
PUT /test_index(索引名,自定义)

查看索引:
GET /test_index(索引名)

删除索引:
DElETE /test_index(索引名)

从上图我们可以看到查出来的索引具体信息中都包含在一个mapping上,这里稍微介绍一下mapping。它其实类似于数据库的表结构定义,主要作用如下:
1、定义Index下的字段名

2、定义字段的类型,比如数值型,字符串型,布尔型等

3、定义倒排索引相关的配置,比如索引

4、mapping中的字段类型一旦设定后,禁止直接修改,原因如下:

  • lucenne实现的倒排索引生成后不允许修改
  • 可以重新建立的索引,然后做reindex操作

5、允许新增字段

  • 通过dynamic参数来控制字段的新增
  • true(默认)允许自动新增字段
  • false不允许自动新增字段,但是文档可以正常写入,但无法对字段进行查询操作等操作
  • strict文档不能写入,报错

当然:由于我们的索引字段都是在logstash中就定义好的,所以要修改其中的字段的话,一般建议都是在logstash上修改好再传到ES上,并不太建议在ES上修改。

疑问3:既然索引字段在logstash上创建了,ES还能干什么?

前面已经讲过了,ES提供结构化查询,全文查询和复杂查询等,我们可以非常灵活的利用它的聚合分析、DSL查询等功能去自定义我们想要的数据。后面在kibana上创建各种可视化视图时有会用到上述ES的一些功能,我们再对着讲解一下,要想更详细的去了解ES的各种语法结构,请参考官网文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.3/index.html

文档更新时间: 2019-09-04 10:25   作者:子木