0

我们的生产站点位于 Elastic Beanstalk。SNS 通知是一个很好的功能,可以让我们随时了解环境状态的变化。但是,我们要密切关注生产环境日志。

我们的项目是一个 java web 应用程序,我们想从其他 beanstalk 环境中检查生产环境的状态,即 beta 和 staging 环境,它们也在同一区域和同一应用程序中。

我们的目标是

  1. 使用 aws sdk 或其他 aws 工具获取生产 beanstalk tomcat 日志并显示在我们的 beta 站点的某个页面上。

  2. 在 Live 环境中定期从 Beta 环境运行一些工具。基本上是对站点进行测试,即所有代码级映射是否良好,如果有任何异常,则通过电子邮件发送给他们。

如果我们将第 2 点进一步细分——我们有石英调度程序可以在特定时间安排工作。我们计划添加一些脚本来定期测试完整的环境。是否有任何 Beanstalk 内置工具可以测试整个站点、访问所有 URL 并测试 DB 以 java 序列化对象类映射(休眠映射)等,

我们确实使用 S3 弹性 beanstalk 存储桶来检查 tomcat 日志,但如果可能的话,希望实现 step1 和 step2。

- 谢谢

4

1 回答 1

0

对于项目 #1:

我不建议使用 beta 和 dev 来观看生产。相反,这就是我要做的:

  1. 在所有三个环境中设置 Pingdom,这样我们就可以密切关注正常运行时间
  2. 查看日志记录代码。您是否有明确的异常处理模式/习惯用法?您的日志记录功能正常吗?
  3. 使用 Logback 设置 Papertrail。为什么?您将为您设置系统日志接收器的每台机器提供实时聚合日志拖尾。对于 beanstalk-maven-plugin,我们即将发布一个原型(参见一个由它创建的示例“空白”项目)。即使你不使用,它也值得,所以看看如何使用它。
  4. 设置日志转出到 S3。事实上,这种用法是毫无用处的。我建议你做一些事情来导入分析(或者更好的是:从Hive导出使用- 这是 Papertrail 所做的事情)
  5. 相应地定义您的健康检查代码。根据依赖关系考虑可能出现的问题
  6. 查看/设置一些 CloudWatch 指标。如果您的应用程序很重并且您在 t1.micro 上,它会在哪些条件下达到峰值?使用它对您有利

这只是一些想法。

w/r/t 项目#2:

我建议你重新考虑你的结构。我实际上不喜欢在弹性 beanstalk 服务器中使用 crontab 的想法,因为它容易出错(leader_only?管理输出?)。相反,我使用了我最喜欢的新的 crontab webapp - Jenkins,并设置了一个集成测试/冒烟测试工件,只有相关位来远程测试实例。Selenium 可能会有所帮助,但我想如果您的 Services 很重要,例如,您可能会更乐意依靠rest-assured

希望能帮助到你。

于 2013-01-04T13:20:35.407 回答