启用 SNMP 后 GlassFish 将无法启动

启用 SNMP 后 GlassFish 将无法启动

我有一个在 64 位 Debian Lenny 上运行的 GlassFish v3 应用服务器。一切运行正常,只是我想使用 SNMP 监视 GF 的 JVM 实例。但是,每次我尝试通过<jvm-options>在 domain.xml 中添加以下内容来启用它时:

-Dcom.sun.management.snmp.port=10161
-Dcom.sun.management.snmp.acl.file=/path/to/snmp.acl
-Dcom.sun.management.snmp.interface=127.0.0.1

GlassFish 拒绝启动:

$ asadmin start-domain
Waiting for DAS to start .Error starting domain: default.
The server exited prematurely with exit code 1.
Command start-domain failed.
$

jvm.log 或 server.log 中也没有任何值得说明的内容(好吧,实际上什么都没有)。snmp.acl 文件包含:

acl = {
  {
    communities = public
    access = read-only
    managers = localhost
  }
}

并且是 chmod 600 (我知道这不是问题,因为如果将其设置为 600 以外的任何值,它实际上会因权限错误而失败)

$ java -version
java version "1.6.0_0"
OpenJDK  Runtime Environment (build 1.6.0_0-b11)
OpenJDK 64-Bit Server VM (build 1.6.0_0-b11, mixed mode)

答案1

管理控制台 选项包括太阳JVM 的扩展。它不是 JVM 规范的一部分,因此它们在OpenJDK

无论如何,即使使用 Sun JVM,我在正在运行的集群上部署应用程序时也遇到了致命错误。也许这是 Sun 故意的,因为他们出售了用于 SNMP 监控的扩展。

答案2

我遇到了同样的问题。启用 SNMP 后,Glassfish 不再启动。解决方案很简单,如下所述:http://www.randombugs.com/java/glassfish/snmp-support-glassfish-211-cluster-support.html

只需在您的 acl 文件上放置正确的权限。

[randombugs@jack]# chown <application user> /etc/java-6-sun/management/snmp.acl
[randombugs@jack]# chmod o-r /etc/java-6-sun/management/snmp.acl
[randombugs@jack]# chmod g-r /etc/java-6-sun/management/snmp.acl

答案3

您可能已经检查过了,但是该端口上是否已经有任何东西在监听?

netstat -an | grep LISTEN 将显示该信息。

相关内容