【发布时间】:2016-08-25 07:56:01
【问题描述】:
我正在使用 logstash 将我的应用程序日志输出存储到弹性搜索中。
最初我想到了一个架构,应用服务器 1 和 2 将日志发送到集中式 logsatsh,在那里我们将解析输入并将其发送到弹性搜索。
但是,许多应用程序都在使用集中式 logstash 服务器。我们不希望它与日志一起垃圾。
因此,我正在寻找一些实用程序或程序,它可以解析应用程序服务器本身的输入并将其发送到集中的 logstash,这将进一步转发到弹性搜索。
我不确定 Logstash 是否可以用作代理。我想到的架构如下。
而不是将日志传送到集中式服务器并对其进行解析。是否可以在应用程序服务器本身中运行 logstash ,它将解析日志并将其发送到集中式 logstash 。
仅用于示例 conf 文件。
在应用服务器中
input{
file{
path => "/tmp/test.log"
start_position => "beginning"
}
}
filter{
parsing logic here with grok
}
output{
Centralized logstash IP
}
在集中式logstash节点中
input{
application server IP
}
output{
elastic search IP
}
是否可以这样实现,或者是否有任何其他简单的方法可以做到这一点。
【问题讨论】:
-
像这样分布logstash是将负载分布到一组机器上的好方法,而无需创建特定于logstash的机器。缺点是维护 - 将 logstash 配置发布到一组机器会很痛苦(即使使用 ansible 等)。我喜欢远程机器上带有集中式日志存储的 filebeat。