我正在使用opscenter 3.1.1,并在我的Cassandra集群上启用了JMX用户名/密码身份validation。 我想我已经更新了所有我的opscenterconfiguration正确强制代理使用JMX身份validation,但它不工作。
我使用以下jmx属性更新了/etc/opscenter/Clusters/[cluster-name].conf下的configuration
[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)
在这个stacktrace上面的几行,我看到一行说代理正在从opscenter中检索最新的configuration:
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中的一个bug,或者它已经被修复为4.0。
有想法该怎么解决这个吗?
该邮件列表线程中提到的错误也会影响3.1.1,并已在4.0.0中修复。 我们将会提到发行说明中添加的内容。
为了将来的参考,内部票号是OPSC-2136。 我们从你提到的configuration日志中提取任何authentication信息。