【发布时间】:2013-08-14 23:53:07
【问题描述】:
我们正在为我们的 QA 人员开发一项服务。
主要目标是让我们 Web 界面的测试人员能够从 github 分支中选择此特定机器的转储并单击“部署”按钮,然后用于测试的 rails 应用程序将部署到 Digital Ocean。
我现在正在开发的功能是收集部署日志并通过我们的 Web 界面显示它们。
在 DO droplet 上有一个“logs”文件夹,其中包含在部署期间填充的不同日志文件:
migrations_result_#{machine_id}.log、bundle_result_#{machine_id}.log等
其中#{machine_id}是我们服务上部署机器的id(不是droplet id)。
在 remote_syslog gem 的帮助下,我们正在监控每个 Droplet 上的“日志”文件夹,并通过 udp 将它们发送到我们的主服务服务器,并在 rsyslog 的帮助下我们将它们存储在一个特定的文件夹中,比如说/var/log/deplogs/
所以在/var/log/deplogs/ 我们有:
migrations_result_1.log、bundle_result_1.log、
migrations_result_2.log、bundle_result_2.log、
...
migrations_result_n.log、bundle_result_n.log
我需要如何监控这个文件夹并将每个日志文件的内容保存到mysql数据库?
我需要实现如下(Ruby 代码):
Machine.find(#{machine_id}).logs.create!(text: "migrations_result_#{machine_id}.log contents")
Rsyslog 似乎无法做到这一点。还是我错过了什么? 有什么建议吗?
先谢谢了,对不起我的英语,我希望你能明白。
【问题讨论】:
标签: mysql ruby-on-rails ruby linux rsyslog