Cassandra
Datastax OpsCenter 3.1.1 代理 JMX 身份驗證錯誤
我正在使用 opscenter 3.1.1,並且剛剛在我的 Cassandra 集群上啟用了 JMX 使用者名/密碼身份驗證。我想我已經正確更新了所有 opscenter 配置以強制代理使用 JMX 身份驗證,但它不起作用。
我已經
/etc/opscenter/Clusters/[cluster-name].conf
使用以下 jmx 屬性更新了配置[jmx] username=username password=password port=7199
然後我重新啟動了 opscenter 和 opscenter 代理,但在 opscenter 代理日誌中看到以下錯誤:
DEBUG [Thread-10] 2013-11-15 10:07:28,461 Adding JMX connector to pool (127.0.0.1:7199) DEBUG [node-details-1] 2013-11-15 10:07:28,464 Starting real-time collection DEBUG [node-details-2] 2013-11-15 10:07:28,466 Starting short-time collection DEBUG [node-details-3] 2013-11-15 10:07:28,468 Starting long-time collection ERROR [node-details-1] 2013-11-15 10:07:28,474 Error getting realtime node details java.lang.SecurityException: Authentication failed! Credentials required at com.sun.jmx.remote.security.JMXPluggableAuthenticator.authenticationFailure(Unknown Source) at com.sun.jmx.remote.security.JMXPluggableAuthenticator.authenticate(Unknown Source) at sun.management.jmxremote.ConnectorBootstrap$AccessFileCheckerAuthenticator.authenticate(Unknown Source) at javax.management.remote.rmi.RMIServerImpl.doNewClient(Unknown Source) at javax.management.remote.rmi.RMIServerImpl.newClient(Unknown Source) at sun.reflect.GeneratedMethodAccessor62.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source) at sun.rmi.transport.Transport$1.run(Unknown Source) at sun.rmi.transport.Transport$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Unknown Source) at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source) at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source) at sun.rmi.server.UnicastRef.invoke(Unknown Source) at javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown Source) at javax.management.remote.rmi.RMIConnector.getConnection(Unknown Source) at javax.management.remote.rmi.RMIConnector.connect(Unknown Source) at javax.management.remote.rmi.RMIConnector.connect(Unknown Source) at opsagent.jmx$create_jmx_pool$wrapper__1044.invoke(jmx.clj:183) at opsagent.nodedetails$run_realtime_collection.invoke(nodedetails.clj:201) at opsagent.nodedetails$start_pool$fn__3237.invoke(nodedetails.clj:302) at clojure.lang.AFn.run(AFn.java:24)
在此堆棧跟踪上方幾行,我確實看到一行說代理正在從 opscenter 檢索最新配置:
INFO [StompConnection receiver] 2013-11-15 10:07:18,298 Got new config from OpsCenter:
但數據中唯一與 jmx 相關的屬性是
:jmx_port 7199
.這似乎是 3.2.2 中的錯誤(http://mail-archives.apache.org/mod_mbox/cassandra-user/201310.mbox/%3CCALHkrw_xjJBy5k-7vCc3NezLy17HLY_HPDCFptG74RqiivcgBg@mail.gmail.com%3E),但我明白了沒有跡象表明這是 3.1.1 中的錯誤或已在 4.0 中修復。
有想法該怎麼解決這個嗎?
該郵件列表執行緒中提到的錯誤也會影響 3.1.1,並已在 4.0.0 中修復。我們將在發行說明中提到這一點。
為了將來參考,內部票號是 OPSC-2136。我們從您提到的配置日誌中刪除任何身份驗證資訊。