【问题标题】:logstash as agent to parse and send to centralized logstash serverlogstash 作为代理解析并发送到集中式logstash服务器
【发布时间】: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。

标签: elasticsearch logstash


【解决方案1】:

可以使用这种架构。

但是在应用服务器上使用 Logstash 进行解析的问题在于 Logstash 会消耗大量资源,尤其是在您使用 grok 解析的情况下,这会影响您的应用。由于必须解析长消息,Logstash 有时会占用高达 99% 的 CPU 时间。
你最好在你的应用服务器上使用一个简单的传送器(比如 beaver 或 filebeat)并在专用服务器上安装 Logstash。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 2021-07-03
    相关资源
    最近更新 更多