我从事开发多年,但在操作方面没有丰富的经验,所以如果这是一个新手问题,请原谅。
在我的公司,我们运行一个用 Java 编写的 Web 服务,主要基于 Tomcat Web 服务器。我们有两个数据中心,每个数据中心大约有 10 台主机。主机有几种类型:数据库、Tomcat、一些离线 Java 进程、memcached 服务器。所有主机都是 Linux CentOS
到目前为止,在向生产发布新版本时,我们一直在使用一组内部 shell 脚本来复制 jar/wars 并重新启动 tomcats。
公司规模越来越大,因此运营所有这些以及将代码从开发、QA、准备阶段转移到生产阶段变得越来越困难。典型的发布经常涉及人为错误,这会浪费我们宝贵的正常运行时间。有时我们需要恢复到上次已知的良好状态,这至少可以说并不容易……
我们正在寻找一种工具、一个框架、一个解决方案来提供以下功能:
- 支持给定的技术列表(java、tomcat、linux 等)
- 提供跨不同阶段的轻松部署,包括 QA 和生产
- 提供配置管理。例如设置服务器属性(每个主机的连接 URL 是什么等)、server.xml 或上下文配置等
- 监控。如果我们可以在同一个软件包中进行监控,那就太好了。如果没有,那么我们可以使用另一个工具来监控我们的服务器。
- 最好是开源的,并且有大量的文档 ;)
有人能分享一下经验吗?推荐一些工具吗?
谢谢!
答案1
免责声明,我是 Zenoss 社区经理。
芝诺斯涵盖了除配置管理之外的所有要点,但您可以将其与另一个系统结合使用。
- 支持给定的技术列表(java、tomcat、linux 等)
- 当然,禅定明ZenPack 增加了 JMX 监控,可用于 Tomcat 或任何其他支持 JMX 的应用程序。
- 提供跨不同阶段的轻松部署,包括 QA 和生产
- Zenoss 具有多种生产状态,因此您可以确定如何监控您的设备,无论您处于“测试”、“生产”、“预生产”、“维护”还是“退役”。
- 提供配置管理。例如设置服务器属性(每个主机的连接 URL 是什么等)、server.xml 或上下文配置等
- 您可以将 Zenoss 与 Puppet、Cfengine 等结合使用。
- 监控。如果我们可以在同一个软件包中进行监控,那就太好了。如果没有,那么我们可以使用另一个工具来监控我们的服务器。
- 这就是 Zenoss 的用途。
- 最好是开源的,并且有大量的文档 ;)
- GPLv2 和大量文档。
答案2
我绝对推荐尝试TC 服务器来自 SpringSource。它使管理和诊断企业环境中的 Tomcat 实例变得轻而易举,并且您可以获得参与 Tomcat 项目的人员的大力支持。不过,这一切都是有代价的。 :(
答案3
嗯,至少在某种程度上,您可以使用 Java 自己的 jVisualVM。
它包含在每个 JDK java 安装中...
只需查看 lib 文件夹,它就在那里。
答案4
Splunk + Nagios + Nagios JMX 插件或 Log4j 可能很合适……