8

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

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

  • 不能改变我的看法。我需要重新部署我的应用程序
  • 我没有监控。我不知道谁已连接,他们何时登录/注销...
  • 重新部署我的应用程序(上传 WAR + 部署)至少需要 30 分钟。
  • 如果不通过 Cloud Foundry 重新部署,我不知道如何重新启动我的 Tomcat 服务器!
  • ...

所以,我的问题很简单:

您可以推荐哪些工具(包括grails 插件)和方法让我摆脱目前的失明状态?

4

5 回答 5

5

我不确定这有多大帮助,但是我使用 JavaMelody Grails 插件(http://www.grails.org/plugin/grails-melody)我用它来查看该站点是否正在使用,然后再拉下服务。

希望有帮助。

于 2010-02-22T22:19:52.887 回答
1

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

于 2010-02-23T02:09:52.503 回答
1
  1. 是的,当您更改其中的内容时,您需要重新部署您的应用程序,这是没有办法的。
  2. 如果使用 grails 插件,最近部署/重新部署时间已大大缩短(顺便说一句,您使用什么版本的插件?)在某些情况下,上传时间短至 15 秒。为 Amazon 增加 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

于 2010-03-20T22:12:50.087 回答
1

对于已部署系统的实际监控,您还可以使用Hiperic HQ。这是来自 Spring Source 的监控解决方案,他们也是 Grails 框架的所有者。

根据您的情况,它可以管理:

  1. Tomcat服务器
  2. 数据库
  3. linux
  4. 网络
  5. ETC

顺便说一句,重新部署应用程序并进行更改是可以的。在生产服务器上修改正在运行的应用程序是一种非常糟糕的做法。

于 2010-02-20T23:34:19.590 回答
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 类似的付费软件包,但我不能说最适合您的需求。

于 2010-02-14T19:35:39.767 回答