![为什么 Heroku syslog 没有将日志记录到 rsyslogd?](https://linux22.com/image/586969/%E4%B8%BA%E4%BB%80%E4%B9%88%20Heroku%20syslog%20%E6%B2%A1%E6%9C%89%E5%B0%86%E6%97%A5%E5%BF%97%E8%AE%B0%E5%BD%95%E5%88%B0%20rsyslogd%EF%BC%9F.png)
我在使用 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 上重启我的应用程序,它才能开始向新的排水管写入数据。(在我尝试了许多其他方法之后!)