Kibana配置索引模板和索引模式

在使用 Kibana 进行日志查询之前,需要配置索引模板和索引模式。

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

配置索引模板

进入索引管理页面,过程如图 13-15 所示。

image 2025 04 18 15 24 48 146
Figure 1. 图13-15 进入索引管理页面

在索引管理页面中单击 “索引管理”,之后单击 “索引模板” 选项卡,此时页面中会出现 “创建模板” 按钮,如图 13-16 所示。

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

image 2025 04 18 15 25 26 921
Figure 2. 图13-16 索引管理页面
image 2025 04 18 15 25 50 966
Figure 3. 图13-17 创建模板页面

单击页面下方的 “下一步” 按钮,后续几个页面不用刻意配置,直接单击 “下一步” 按钮即可,最后单击 “创建模板” 按钮即可。

配置索引模式

配置索引模式主要是为了与创建的索引模板做匹配。

在索引管理页面中单击 “索引模式”,打开 Kibana 的索引模式页面,之后单击 “创建索引模式” 按钮,如图 13-18 所示。

image 2025 04 18 15 26 34 892
Figure 4. 图13-18 单击“创建索引模式”按钮

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

image 2025 04 18 15 26 58 771
Figure 5. 图13-19 创建索引模式步骤示意

当然,在这个步骤中,如果 Kibana 实例通过读取 Elastic Search 实例中的索引,发现并没有匹配到,则无法完成创建。而恰好,刚刚我们已经启动了 spring-boot-elk 项目,日志会通过 Logstash 实例输出到 Elastic Search 实例中。这时,Elastic Search 实例中创建了一个名称为 newbee-mall-cloud-xxxx.xx.xx 的索引,如 newbee-mall-cloud-2023.01.10spring-boot-elk 项目输出到日志会被保存在这个索引中。所以,为了测试流程顺利,在配置索引模式前,使用程序通过 Logstash 实例向 Elastic Search 实例输出一些日志,这样索引创建了,日志数据也有了,索引模式就能够顺利地添加了。

注意事项:这里只需要保证 Logback 配置文件中 LogstashIP 地址和端口号正确,并且顺利启动 spring-boot-elk 项目就可以了,Spring Boot 项目的启动日志会被 Logstash 实例收集并输出给 Elastic Search 实例。

索引模式创建完成后的页面如图 13-20 所示。

image 2025 04 18 15 28 40 890
Figure 6. 图13-20 索引模式创建完成后的页面

通过Kibana查询日志

接下来查看一下日志数据吧!日志浏览页面如图 13-21 所示。

当然,如果在浏览器的地址栏中访问 /elk-logsIP 地址,输出的三条不同级别的测试日志也会实时地出现在 Kibana 页面中,如图 13-22 所示。

日志信息在 Kibana 网页中已经能够正常显示了,日志中心的搭建和基础整合就完成了。

image 2025 04 18 15 29 23 455
Figure 7. 图13-21 日志浏览页面
image 2025 04 18 15 29 38 551
Figure 8. 图13-22 Kibana 页面

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

当然,这一切的前提是 ELK 日志中心要正确搭建、程序配置正确,否则这个管道根本搭建不了。