0

我有一个在 Amazon EC2 实例上运行的 Perl/Plack/Postgres/Linux Web 应用程序。我即将开始在负载均衡器后面的多个实例上运行它,因此我需要一种方法将应用程序的日志消息收集到一个地方。

目前我使用一个 log4perl 配置文件,它使用 Log::Log4perl::Appender::File 将日志记录到磁盘上。一些日志消息被路由到多个日志文件,还有一些还由发送电子邮件的附加程序处理。我使用 Linux logrotate 实用程序进行轮换,但我根本不使用 syslog 来处理应用程序级别的消息。

将日志发送到 Amazon Cloudwatch 似乎是解决问题的好方法。虽然我可以在 CPAN 上找到各种模块来与 Amazon Cloudwatch 交互(感谢模块建议),但我找不到任何现成的 log4perl 附加程序来帮助解决这个问题。我需要自己写吗?

如果有什么不同,我已经在我的项目中使用了 AWS::Signature4 和 Amazon::S3::Thin。到目前为止,我已经避免使用具有严重依赖关系的模块,例如 Moose,但如果需要,我可以放松该策略。

4

2 回答 2

0

您可以尝试 EC2 实例的“awslogs”代理。这将有助于将日志发送到 cloudwatch。随附的日志将在 cloudwatch 控制台的日志部分下可用。

于 2015-11-04T15:36:30.037 回答
0

如果您满足日志要求(ex 的良好时间戳格式),您可以使用 awslogs。如果您运行的是 Amazon Linux,设置可能会更容易一些,但在大多数发行版上都可以。

阅读http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/QuickStartEC2Instance.html

于 2015-11-04T16:07:25.057 回答