在我们的一个应用程序中,我们使用logstash解析应用程序日志并将其索引到elasticsearch中。我们的简单架构是 logfiles ---> filebeat--->logstash-----> elasticsearch。
由于我们启用了多个日志文件示例(apachelogs、passengerlogs、应用程序日志等),logstash 无法解析大量数据,因此 Elasticsearch 中缺少日志。有没有办法在logstash上处理大量数据,或者我们可以有多个logstash服务器根据日志类型接收来自filebeat的日志吗?例如:应用程序日志将输出logstash-1和apachelogs发送到logstash-2。
提前致谢。
目前无法在 Filebeat 中多次定义相同的输出类型。
但是有一些选择可以实现你想要的:
您可以使用filebeat中的loadbalance选项将事件分发到多个Logstash。 https://www.elastic.co/guide/en/beats/filebeat/current/logstash-output.html#loadbalance,默认情况下,beats 会选择一个随机主机并坚持使用。
使用队列,如kafka并使logstash使用kafka输入,这将允许您根据需要添加更多LS。