Rails应用程序日志在opsworks中

时间:2018-06-18 03:33:30

标签: ruby-on-rails amazon-web-services amazon-ecs aws-opsworks

在过去的两天里,我一直被困住,想知道如果他们存储了我的rails应用程序日志的存储位置是什么?

我正在使用一个Opsworks堆栈,这个堆栈并非由我设置,而且我找不到任何相关文章,我遇到了这些

How to debug Ruby On Rails on AWS OpsWorks?

https://medium.com/quiq-blog/logging-in-aws-elastic-container-services-ecs-21ce7781be18

https://aws.amazon.com/blogs/devops/send-ecs-container-logs-to-cloudwatch-logs-for-centralized-monitoring/

但所有这些看起来都很复杂或无关紧要。

我的猜测是有一个名为awslogs的代理设置,它从日志目录中获取日志。我的test.rb使用以下代码配置

if ENV["RAILS_LOG_TO_STDOUT"].present?
  logger           = ActiveSupport::Logger.new(STDOUT)
  logger.formatter = config.log_formatter
  config.logger    = ActiveSupport::TaggedLogging.new(logger)
end

从这一点开始,日志被重定向到stdout,不知何故,代理将它们接收并将它们发送到云监视器。我不是百分百的配置,甚至存储它们。

/ opt / aws / cloudwatch中有一些配置有一个名为awslogs-agent-setup.py的脚本和一个cwlogs.cfg文件,该文件包含代理的配置,但这些配置适用于我的应用运行的容器不是rails app本身。这是cwlogs.cfg文件的配置

[general]
 state_file = /var/awslogs/state/agent-state

[<my-cluster-name>/ecs-cluster/opsworks-command-log 
 /var/lib/aws/opsworks/chef/*.log]
 log_stream_name = ecs-cluster2
 file = /var/lib/aws/opsworks/chef/*.log
 log_group_name = <Log group for this cluster>

我愿意向可以帮助我解决问题的任何人提供进一步的信息。

提前致谢。

0 个答案:

没有答案