Я использую opscenter 3.1.1 и только что включил аутентификацию по имени пользователя и паролю JMX в моем кластере Cassandra. Я думаю, что правильно обновил все свои конфигурации 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. И мы удаляем любую информацию аутентификации из упомянутого вами журнала конфигурации.