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 日志中心要正确搭建、程序配置正确,否则这个管道根本搭建不了。