Filebeat - 多个服务器实例配置

时间:2017-06-26 13:41:24

标签: elasticsearch logstash elastic-stack filebeat

我确实使用filebeat配置了Elastic Stack(Logstash + Elastic search + Kibana)。所以我的问题是我有多个服务器,我部署了我的应用程序实例(微服务应用程序)。我想从所有服务器捕获日志,但为此我必须在每个服务器中安装filebeat。这是正确的理解吗?或者我们可以配置类似于单个filebeat实例的东西能够从所有服务器(服务器可以是同一网络)获取日志并通过TCP或任何协议发送日志吗?

2 个答案:

答案 0 :(得分:0)

是的,您必须在要废弃日志的所有服务器上部署filebeat。

答案 1 :(得分:0)

另一种选择是将logstash配置为侦听TCP端口,然后将应用程序配置为记录到套接字而不是文件。

input {
  tcp {
    port => 8192
    codec => json
    tags => [ "micrologs" ]
  }
}

这将在端口8192上的Logstash框中设置一个侦听器。每次登录一个,每次都有一个连接,格式化为JSON。

input {
  tcp {
    port => 8192
    codec => json_lines
    tags => [ "micrologs" ]
  }
}

这是相同的,除了连接是持久的,并且json_lines编解码器用于根据传入连接中的JSON行分解日志事件。

您不必在此使用json,如果需要,可以是纯文本。我使用JSON作为结构化日志的一个例子。