Kibana配置索引模板和索引模式
在使用 Kibana
进行日志查询之前,需要配置索引模板和索引模式。
在前文中,笔者在 ELK
日志中心的 Logstash
配置文件中指定了 index=> "newbee-mall-cloud-%{+YYYY.MM.dd}"
,即 index
名称以 “newbee-mall-cloud-” 开头并加上一个日期的字符串,如 newbee-mall-cloud-2023.10.24
或 newbee-mall-cloud-2024.02.14
等。这个值作为 index
参数,当 Logstash
实例向 Elastic Search
实例传输日志信息的时候,日志信息就会被写入这个索引。当通过 Kibana
读取 Elastic Search
中的数据时,需要指定读取哪些索引中的数据。就像通过 MySQL
数据库读取数据,需要指定表名。本节就是配置这个参数,具体操作介绍如下。
配置索引模板
进入索引管理页面,过程如图 13-15 所示。

在索引管理页面中单击 “索引管理”,之后单击 “索引模板” 选项卡,此时页面中会出现 “创建模板” 按钮,如图 13-16 所示。
单击 “创建模板” 按钮,打开创建模板页面后,输入模板名称和索引模式,名称可以随便写,索引模式需要与之前 Logstash
实例中配置的索引有一定的关系。如图 13-17 所示,这里笔者配置模板名称为 newbee-mall-cloud-services-logs
,配置索引模式为 newbee-mall-cloud-*
,这样就可以匹配 Elastic Search
中的索引了,如 newbee-mall-cloud-2023.10.24
、newbee-mall-cloud-2024.02.14
、newbee-mall-cloud-2025.02.07
这些索引都会被当前配置的索引模式匹配进来。


单击页面下方的 “下一步” 按钮,后续几个页面不用刻意配置,直接单击 “下一步” 按钮即可,最后单击 “创建模板” 按钮即可。
配置索引模式
配置索引模式主要是为了与创建的索引模板做匹配。
在索引管理页面中单击 “索引模式”,打开 Kibana
的索引模式页面,之后单击 “创建索引模式” 按钮,如图 13-18 所示。

在索引模式创建页面输入名称,即输入在第 13.4.1 节中创建的索引模板名称。如果输入正确,此时页面右侧就会出现这个名称所能匹配的索引源,这里展示的索引就是 Logstash
实例输出给 Elastic Search
实例的数据,Kibana
会根据 “newbee-mall-cloud-*” 到 Elastic Search
实例中搜索并匹配,匹配成功的选项会出现在页面右侧。当然,如果 Elastic Search
实例中有多个索引与这个名称匹配,则这些索引都会出现在页面右侧的列表中。之后,选择时间戳字段,最后单击 “创建索引模式” 按钮就完成创建了,如图 13-19 所示。

当然,在这个步骤中,如果 Kibana
实例通过读取 Elastic Search
实例中的索引,发现并没有匹配到,则无法完成创建。而恰好,刚刚我们已经启动了 spring-boot-elk
项目,日志会通过 Logstash
实例输出到 Elastic Search
实例中。这时,Elastic Search
实例中创建了一个名称为 newbee-mall-cloud-xxxx.xx.xx
的索引,如 newbee-mall-cloud-2023.01.10
,spring-boot-elk
项目输出到日志会被保存在这个索引中。所以,为了测试流程顺利,在配置索引模式前,使用程序通过 Logstash
实例向 Elastic Search
实例输出一些日志,这样索引创建了,日志数据也有了,索引模式就能够顺利地添加了。
注意事项:这里只需要保证 Logback
配置文件中 Logstash
的 IP
地址和端口号正确,并且顺利启动 spring-boot-elk
项目就可以了,Spring Boot
项目的启动日志会被 Logstash
实例收集并输出给 Elastic Search
实例。
索引模式创建完成后的页面如图 13-20 所示。

通过Kibana查询日志
接下来查看一下日志数据吧!日志浏览页面如图 13-21 所示。
当然,如果在浏览器的地址栏中访问 /elk-logs
的 IP
地址,输出的三条不同级别的测试日志也会实时地出现在 Kibana
页面中,如图 13-22 所示。
日志信息在 Kibana
网页中已经能够正常显示了,日志中心的搭建和基础整合就完成了。


这里简单地做一个总结,在整合 ELK
日志中心时,真正的编码并不多,也不复杂,只是做了一些配置而已,做这些配置其实就是在 Java
工程与 ELK
日志中心之间创建了一个管道。至于其他的技术性操作,和项目关系不大,如接收日志、解析日志、存储日志数据、删除日志数据、创建索引数据、索引日志信息、日志搜索、日志统计等,都是在 ELK
各个实例中进行的,开发人员只需要在程序与 ELK
日志中心之间搭建一个管道即可。
当然,这一切的前提是 ELK
日志中心要正确搭建、程序配置正确,否则这个管道根本搭建不了。