首页 > 解决方案 > 无法使用 logstash-logger gem 将日志发送到另一台服务器中的 logstash

问题描述

我正在使用 rails 5.2.1 和 ruby​​ 2.5.0。我在环境文件中包含以下内容

 config.logstash = [
 {
        type: :tcp,
        port: 5044,
        host: 'log server ip addrees',
        verify_hostname: false
  }
]

在 Gemfile

gem "lograge"
gem "logstash-event"
gem 'logstash-logger'

然后我打开了日志服务器的入站端口 5044 和应用服务器的出站端口。但是显示错误

[LogStashLogger::Device::TCP] Errno::EPIPE - Broken pipe

我已经在日志服务器中安装了 elk 堆栈来接收来自 stg 和 dev 服务器的日志。但目前正在收到上述错误。

我还有另一个疑问,如果它成功了,那么我如何识别日志来自哪个服务器(stg 或 prod)?

标签: ruby-on-railslogstash

解决方案


我通过将日志写入文件解决了这个问题。然后使用应用程序firebeat将 Json 文件发送到 logstash 服务器。它将新的日志发送到服务器读取的logstash服务器的5044端口。在filebeat中,我将一个变量设置为prod,stg对应于每个服务器,以识别logstash配置中的服务器。


推荐阅读