为什么 Heroku syslog 没有将日志记录到 rsyslogd?

为什么 Heroku syslog 没有将日志记录到 rsyslogd?

我在使用 syslog 排水时遇到问题,具体描述如下https://devcenter.heroku.com/articles/logging

总而言之,我在 EC2 上有一个正在运行的 Ubuntu 10.04 实例rsyslogd。我还按照他们的描述设置了安全组,并使用类似 的命令添加了 syslog 排水heroku drains:add syslog://host1.example.com:514

我可以通过 从 Heroku 控制台向我的rsyslogd实例发送消息nc。我看到它们出现在日志文件中,所以我知道没有防火墙/安全组问题。但是,Heroku 似乎没有将日志消息转发到heroku drains列出的服务器。我希望看到 HTTP 请求、Rails 消息等。

我还能尝试做其他什么来解决这个问题吗?我是新手rsyslogd,所以我很容易错过一些东西。

答案1

在 Heroku 支持的帮助下,我发现了我做错的事情。(谢谢大家!)

我使用了错误的安全组名称(default而不是logplex)。(Dynos 在下运行default,所以这就是它nc起作用的原因。)

这些是 AWS 安全组 Web 界面中字段的适当值:

  • 创建新规则:Custom TCP rule
  • 端口范围:514
  • 来源:(098166147350/logplex注:不是 default

答案2

我的看法是:

请注意,在排水 URL 末尾添加端口号 (514) 很重要。我最初认为“syslog://”前缀应该足够了,但显然它不够。

答案3

感谢您发布此信息。但有一件事让我很困惑。我必须在 Heroku 上重启我的应用程序,它才能开始向新的排水管写入数据。(在我尝试了许多其他方法之后!)

相关内容