我们正在为我们的 QA 人员开发一项服务。
主要目标是我们的 Web 界面中的测试人员能够从 github 分支中选择此特定机器的转储并单击“部署”按钮,然后用于测试的 rails 应用程序将部署到 Digital Ocean。
我现在正在开发的功能是收集部署日志并通过我们的 Web 界面显示它们。
在 DO droplet 上有一个“logs”文件夹,其中包含在部署期间填充的不同日志文件:
migrations_result_#{machine_id}.log
,bundle_result_#{machine_id}.log
等。
我们服务上部署的机器的 id在哪里#{machine_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 似乎无法实现这一点。还是我错过了什么?有什么建议吗?
提前谢谢,对不起我的英语,我希望你能明白。