Kibana中的索引名是否需与Logstash写入Elasticsearch的索引名一致
ELK+Filebeat数据流转链路及索引命名问题解答
1. ELK+Filebeat完整数据流转链路
- 数据采集阶段:Filebeat部署在日志生成的业务节点上,监听配置指定的日志文件或目录,增量读取新增日志内容,完成基础的结构化封装后,可根据配置直接输出到Elasticsearch,或先转发给Logstash做复杂处理。
- 数据清洗转换阶段(可选):如果使用Logstash作为中间处理层,Logstash接收Filebeat上报的日志数据后,会按照预设的filter规则完成字段拆分、格式转换、脏数据过滤、数据补全等处理,处理完成后再输出到Elasticsearch。
- 数据存储阶段:Elasticsearch接收来自Filebeat或Logstash的写入请求,将数据写入对应索引完成持久化存储,同时自动构建倒排索引支撑后续的快速查询。
- 数据查询可视化阶段:Kibana对接Elasticsearch集群,提供可视化看板、Dev Tools命令查询、日志多维度分析等能力,你使用的
GET _all就是Kibana Dev Tools中查询集群全量索引的命令。
2. XYZ索引命名相关问题
2.1 XYZ索引是否为Logstash写入时指定的名称
需要结合你的实际数据流架构判断:
- 如果你的数据流是Filebeat → Logstash → Elasticsearch:那XYZ基本就是Logstash写入Elasticsearch时指定的名称,对应Logstash配置中output模块elasticsearch插件的
index参数,参考配置示例:
output { elasticsearch { hosts => ["http://你的ES节点地址:9200"] index => "XYZ" } }
- 如果你的数据流是Filebeat直接写入Elasticsearch,未经过Logstash:那XYZ是Filebeat配置中output.elasticsearch模块的
index参数指定的名称,和Logstash没有关联。
2.2 是否支持设置为不同的索引名
完全支持,根据你的数据流架构对应修改配置即可:
- 走Logstash转发的场景:直接修改Logstash output配置中elasticsearch插件的
index参数值,保存配置后重启Logstash即可生效,后续新写入的数据会进入新索引,原有XYZ索引的存量数据不会受影响。 - Filebeat直写ES的场景:修改Filebeat配置中output.elasticsearch模块的
index参数,重启Filebeat即可生效。
除此之外还支持按字段、时间等规则动态生成索引名,比如按天分索引的配置index => "XYZ-%{+YYYY.MM.dd}",系统会自动生成带日期后缀的日级索引,更方便做索引生命周期管理。
内容的提问来源于stack exchange,提问作者Avinash_Tester
相关产品推荐
相关产品推荐

