是否可以为Elasticsearch维护从FileBeat到LogStash的索引名?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以为Elasticsearch维护从FileBeat到LogStash的索引名?相关的知识,希望对你有一定的参考价值。
我真的是ELK的新手,我已经建立了一个ELK堆栈,其中FileBeat将日志发送到LogStash进行一些处理,然后输出到Elasticsearch。
我想知道是否有可能一直保持filebeat.yml中设置的索引名称到Elasticsearch。之所以这样,是因为我要为生成日志的不同类型的应用程序服务器提供多个索引。如果我在logstash.conf中省略索引,则默认设置;但是,如果我指定一些内容,显然可以生效。我只是希望它使用FileBeat中设置的内容。
或者有某种方法可以配置多个输出部分,在这些部分中可以评估日志类型,以便我可以适当地命名它们?
filebeat.yml
# Optional index name. The default index name is set to filebeat in all lowercase.
index: "something-%+yyyy.MM.dd"
logstash.conf
output
elasticsearch
hosts => ["somehost:12345"]
index => "my_filebeat_index_name_would_be_preferred-%+yyyy-MM-dd"
我想继续使用LogStash,因为我有自定义的GROK模式等,而不是直接进入Elastic。任何帮助将不胜感激。
谢谢。
您可以在filebeat.yml中指定的索引名称仅适用于elasticsearch输出,因为filebeat直接连接到您的集群。但是,如果您将Logstash用作文件信号目标,则不可能。
问:或者有某种方法可以配置多个输出部分,在这些部分中可以评估日志类型,以便我可以适当地命名它们?
是的,这在Logstash管道中是绝对可行的(并且有些普遍)。因此,首先,您需要为日志设置某些条件/标记,以使Logstash选择正确的elasticsearch输出(以及正确的索引)。您可以通过标签来实现。因此,例如,类别A的所有日志/事件都获得标签“ tag_A”(您可以在特定的日志输入中或通常在filebeat.yml中为每个日志源分别设置它们)。
下一步是在logstash管道中实现标签值的评估。您可以按照以下方式进行操作:
output if "tag_A" in [tags] elasticsearch hosts => ["somehost:12345"] index => "index-A-%+yyyy-MM-dd" else if "tag_B" in [tags] elasticsearch hosts => ["somehost:12345"] index => "index-B-%+yyyy-MM-dd"
这种if-else结构使您可以按各种索引索引数据。
希望我能为您提供帮助。
以上是关于是否可以为Elasticsearch维护从FileBeat到LogStash的索引名?的主要内容,如果未能解决你的问题,请参考以下文章
是否需要从Logstash向HTTPS输出到Elasticsearch购买“xpack”?
如何从Apache Flink写入Elasticsearch