java - Java 系统监视器

标签 java monitoring jmx monitor

我们正在为十几个客户运行服务器集群。每个客户在 Jetty 上都有一些应用程序服务器。这里重要的是:

  • 有许多 Java 进程需要监控。
  • 我需要能够按机器和客户对它们进行分组(切片)(一台机器可以服务多个客户,每个客户有很多机器)。
  • 我还需要收集和显示一些特定于域的每个客户数据。

我更愿意使用 JMX 公开它们,尽管我仍然可以自由地使用其他合理的解决方案。

我可以使用什么(最好是免费和开源)服务器进行监控?我需要一些东西来从所有这些服务器收集信息,保留历史记录,并让我编写自定义仪表板进行演示。

我考虑过的一个解决方案是 Hyperic,但它确实很笨重,而且插件开发也很糟糕。

最佳答案

你可能想尝试 Nagios/Centreon 来做这种事情 - 你可以用 Java 为其编写插件(要么让 NRPE 运行连接到你的服务器的 Java 程序,要么运行实现 NRPE 协议(protocol)的 jNRPE,从而避免启动大量短命的 JVM) - 使用 JMX 命令行客户端(由 Internet Archive 等人制作)来查询 JMX beans。

当然还有 JConsole - 我相信您可以为此编写插件,但它可能无法胜任这项工作!

最后,jstat 会生成大量有关 GC 和相关进程的详细统计信息,您可以将其直接通过管道传输到文件。虽然不是很图形化。

关于java - Java 系统监视器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7243601/

相关文章:

java - 更改javamelody的存储目录

docker - Prometheus cAdvisor docker 监控

tomcat - 为什么 JMX 中显示的线程数与 tomcat 设置不匹配?

java - 安装 JBoss 服务器后,我无法访问 jmx 控制台

java - 使用mockito、ioC和 Autowiring 测试服务

java - 通过值在多对多集合中的存在来过滤 Hibernate 实体

java - 有什么方法可以将一个条目添加到具有来自 int 变量的自定义位置的 Java 数组列表中吗?

java - 如何将UTF-8中的字符串转换为不带Bom的byteArray

azure - 如何使用 Terraform 创建 Azure 警报

java - 从 VisualVM 通过 JMX 远程连接到 JBoss AS 时如何避免此 NullPointerException?