监视Beanstalk生产环境是否存在错误(代码级别)

时间:2012-12-07 07:55:17

标签: amazon-web-services elastic-beanstalk

我们的生产基地位于Elastic Beanstalk。 SNS通知是一个很好的功能,可以随时更新环境状态。但是,我们希望密切关注生产环境日志。

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

我们的目标是

  1. 使用aws sdk或其他aws工具获取生产beanstalk tomcat日志,并在某些页面上显示在我们的测试版网站中。

  2. 定期从Live环境中的Beta环境运行一些工具。这基本上是对网站的测试,即是否所有代码级映射都是好的,如果有任何例外,那么通过电子邮件发送它们。

  3. 如果我们将point2分解为更多 - 我们有石英调度程序来安排特定时间的工作。我们计划添加一些脚本,定期测试整个环境。是否有任何Beanstalk内置的工具可以测试整个站点,访问所有URL并测试DB到java序列化对象类映射(hibernate映射)等,

    我们确实使用S3弹性beanstalk桶来检查tomcat日志,但是想实现step1&第二步,如果可能的话。

    - 感谢

1 个答案:

答案 0 :(得分:0)

对于第1项:

我不建议使用beta和dev来观看制作。相反,这就是我要做的事情:

  1. 在所有三种环境中设置Pingdom,以便我们可以密切关注正常运行时间
  2. 查看记录代码。您是否有明确的模式/习惯用于异常处理?您的日志记录功能正常吗?
  3. 使用Logback设置Papertrail。为什么?您将为设置系统日志接收器的每台计算机提供实时聚合日志跟踪。对于beanstalk-maven-plugin,我们即将发布一个原型(see an example 'blank' project created out of it)。即使你没有使用,也值得一试,看看如何使用它。
  4. 设置日志展示到S3。实际上,这种用法毫无用处。我建议你进行一些导入分析的工作(或者更好的是:从Hive导出使用 - 这是Papertrail的用法)
  5. 相应地定义您的健康检查代码。从依赖性的角度考虑可能出现的问题
  6. 查看/设置一些CloudWatch指标。如果您的应用程序很重,并且您使用的是t1.micro,那么它会飙升吗?利用你的优势
  7. 这只是一些想法。

    w / r / t项目#2:

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

    希望它有所帮助。