这是我第一次推出一个网站(在Amazon EC2平台和Cloud Foundry下使用Grails web框架),我很快意识到我还没有准备好在生产模式下正确监控和维护我的应用程序(幸运的是网站可供非常有限的用户访问。)
到目前为止,我遇到的问题是:
所以,我的问题非常简单:
工具(包括 grails插件)和方法你能推荐我让我从目前的失明中解脱出来吗?
答案 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 Analytics或Mint。如果您需要超越(通过每个用户监控),您可能必须根据自己的需要推出自己的日志记录/跟踪。除了Google Analytics和Mint之外,您还可以集成其他付费套餐,但最适合您的需求,我不能说。
答案 2 :(得分:1)
对于已部署系统的实际监控,您还可以使用Hiperic HQ。它是Spring Source的监控解决方案,也是Grails Framework的所有者。
在您的情况下,它可以管理:
btw通过更改重新部署应用即可。在生产服务器上修改正在运行的应用程序是一种非常糟糕的做法。
答案 3 :(得分:1)
我不知道JMX和JConsole是否可以提供帮助,但这可能是查看启用JMX的POJO状态的好方法。 Spring使这很容易做到。
答案 4 :(得分:1)
您无需启动自己的EC2实例即可获得shell访问权限。从DeploymentDetails复制实例的公有DNS名称,并使用您在注册Cloudfoundry时输入的私钥将SSH复制到其中。例如:
ssh -i /path/to/gsg-keypair.pem root @ your_instance_DNS_name