如何在实时/生产环境中监控和维护我的grails应用程序?

时间:2010-02-12 12:22:55

标签: grails amazon-ec2 production-environment grails-plugin cloudfoundry

这是我第一次推出一个网站(在Amazon EC2平台和Cloud Foundry下使用Grails web框架),我很快意识到我还没有准备好在生产模式下正确监控和维护我的应用程序(幸运的是网站可供非常有限的用户访问。)

到目前为止,我遇到的问题是:

  • 无法改变我的观点。我需要重新部署我的应用程序
  • 我没有监控。我不知道谁有联系,他们什么时候登录/退出...
  • 重新部署我的应用程序(上传WAR +部署)至少需要30分钟。
  • 我不知道如何在没有通过Cloud Foundry进行重新部署的情况下重新启动我的Tomcat服务器!
  • ...

所以,我的问题非常简单:

工具(包括 grails插件)和方法你能推荐我让我从目前的失明中解脱出来吗?

5 个答案:

答案 0 :(得分:5)

我不确定如何这会有多大帮助,但是我使用JavaMelody Grails插件(http://www.grails.org/plugin/grails-melody)我用它来查看网站是否正在被使用服务。

希望有所帮助。

答案 1 :(得分:1)

我早期尝试过Cloud Foundry,发现它有点粗糙。听起来仍然如此,30多分钟的部署以及无法重启tomcat服务器。如果您刚刚创建了自己的EC2实例,安装了tomcat并管理了自己的部署,则可以解决一半问题。那会让你通过shell访问来反弹tomcat:

sudo /etc/init.d/tomcat6 restart

并重新部署您的应用

sudo /etc/init.d/tomcat6/stop
cp my.war /to/tomcat/dir 
sudo /etc/init.d/tomcat6 start

或者你可以通过tomcat管理控制台完成它,但我觉得它很脆弱。

关于监控,有几种方法可以做到这一点。最简单的方法是将CloudWatch监控添加到您的系统中。这将使您更深入地了解应用程序的性能。

如需更详细地监控谁与您的应用有关,我建议您查看Google AnalyticsMint。如果您需要超越(通过每个用户监控),您可能必须根据自己的需要推出自己的日志记录/跟踪。除了Google Analytics和Mint之外,您还可以集成其他付费套餐,但最适合您的需求,我不能说。

答案 2 :(得分:1)

对于已部署系统的实际监控,您还可以使用Hiperic HQ。它是Spring Source的监控解决方案,也是Grails Framework的所有者。

在您的情况下,它可以管理:

  1. tomcat服务器
  2. 数据库
  3. 的Linux
  4. 网络
  5. btw通过更改重新部署应用即可。在生产服务器上修改正在运行的应用程序是一种非常糟糕的做法。

答案 3 :(得分:1)

我不知道JMX和JConsole是否可以提供帮助,但这可能是查看启用JMX的POJO状态的好方法。 Spring使这很容易做到。

答案 4 :(得分:1)

  1. 是的,当你更改其中的内容时,你需要重新部署你的应用程序,没有办法解决这个问题。
  2. 如果使用grails插件,最近显着缩短了部署/重新部署时间(顺便说一句,你使用的是什么版本的插件?)在某些情况下,上传时间短至15秒。为亚马逊添加2-3分钟来启动实例,部署时间仍然非常易于管理。为了重新部署,不必启动实例,因此它甚至不如此。
  3. 要重新启动Tomcat登录到您的CloudFoundry帐户,请单击部署详细信息,单击运行Tomcat的实例,然后会出现一个“重新启动服务”按钮,它将执行此操作 - 重新启动Tomcat服务。
  4. 您无需启动自己的EC2实例即可获得shell访问权限。从DeploymentDetails复制实例的公有DNS名称,并使用您在注册Cloudfoundry时输入的私钥将SSH复制到其中。例如:

    ssh -i /path/to/gsg-keypair.pem root @ your_instance_DNS_name