Linux
啟用 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)
-Dcom.sun.management 選項是Sun對 JVM 的擴展。它不是 JVM 規範的一部分,因此它們在OpenJDK中不可用!
無論如何,即使使用 Sun JVM,我在正在執行的集群上部署應用程序時也遇到了致命錯誤。也許這是 Sun 有意為之,因為他們出售了 SNMP 監控的擴展。
我有同樣的問題。啟用 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