繁体   English   中英

是否可以为 Elasticsearch 维护从 FileBeat 到 LogStash 的索引名称?

[英]Is it possible to maintain the index name from FileBeat to LogStash for Elasticsearch?

我对 ELK 真的很陌生,我已经设置了一个 ELK 堆栈,FileBeat 将日志发送到 LogStash 进行一些处理,然后输出到 Elasticsearch。

我想知道是否可以将 filebeat.yml 中设置的索引名称一直保持到 Elasticsearch。 我想要它的原因是因为我想要生成日志的不同类型的应用服务器的多个索引。 如果我在logstash.conf 中省略了索引,则它是默认值; 但如果我指定一些东西,显然这会生效。 我只是想让它使用 FileBeat 中设置的内容。

或者有什么方法可以配置多个输出部分,其中可以评估日志类型,以便我可以适当地命名它们?

文件节拍.yml

# Optional index name. The default index name is set to filebeat in all lowercase.
  index: "something-%{+yyyy.MM.dd}"

日志文件

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 结构使您可以将数据索引到各种索引中。

我希望我能帮助你。

编辑:

您的评估不仅限于标签。 您可以评估文档中包含的任何字段,例如文件名、主机名等。

您可能想看看这个参考( https://www.elastic.co/guide/en/logstash/current/event-dependent-configuration.html )关于如何在 Logstash 中访问字段值、执行条件等配置。

编辑2:

更复杂的方法是向包含确切目标索引名称的文档添加一个字段(通过日志输入或 filebeat.yml 中的字段选项)。 使用这种方法,不再需要在 Logstash 管道中进行评估,因为您可以从字段值动态设置索引设置的值。

假设您标记此字段destination_index那么您可以实现如下输出插件:

output{
  if [destination_index]{   #optional check for field's existance in document
    elasticsearch {
      hosts => ["somehost:12345"]
      index => "%{[destination_index]}-%{+yyyy-MM-dd}"
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM