2015-10-09 23 views
5

ho seguito queste istruzioni "Attivazione dell'autenticazione JMX":Cassandra "status nodetool" viene a mancare con "credenziali necessarie" dopo l'abilitazione JMX remoto

http://docs.datastax.com/en/cassandra/2.2/cassandra/configuration/secureJmxAuthentication.html

Tuttavia sto avendo questo problema:

nodetool status -u cassandra -pw cassandra 
error: Authentication failed! Credentials required 
-- StackTrace -- 
java.lang.SecurityException: Authentication failed! Credentials required 
    at com.sun.jmx.remote.security.JMXPluggableAuthenticator.authenticationFailure(JMXPluggableAuthenticator.java:211) 
    at com.sun.jmx.remote.security.JMXPluggableAuthenticator.authenticate(JMXPluggableAuthenticator.java:163) 
    at sun.management.jmxremote.ConnectorBootstrap$AccessFileCheckerAuthenticator.authenticate(ConnectorBootstrap.java:219) 
    at javax.management.remote.rmi.RMIServerImpl.doNewClient(RMIServerImpl.java:232) 
    at javax.management.remote.rmi.RMIServerImpl.newClient(RMIServerImpl.java:199) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:497) 
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323) 
    at sun.rmi.transport.Transport$1.run(Transport.java:200) 
    at sun.rmi.transport.Transport$1.run(Transport.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.rmi.transport.Transport.serviceCall(Transport.java:196) 
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$79(TCPTransport.java:683) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:276) 
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:253) 
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:162) 
    at javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown Source) 
    at javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2432) 
    at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:308) 
    at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:270) 
    at org.apache.cassandra.tools.NodeProbe.connect(NodeProbe.java:183) 
    at org.apache.cassandra.tools.NodeProbe.<init>(NodeProbe.java:150) 
    at org.apache.cassandra.tools.NodeTool$NodeToolCmd.connect(NodeTool.java:297) 
    at org.apache.cassandra.tools.NodeTool$NodeToolCmd.run(NodeTool.java:237) 
    at org.apache.cassandra.tools.NodeTool.main(NodeTool.java:153) 

la mia configurazione è la seguente:

/etc/cassandra/jmxremote.password 
cassandra cassandra 

/opt/jdk1.8.0_60/jre/lib/management/jmxremote.access 
monitorRole readonly 
cassandra  readwrite 
controlRole readwrite \ 
      create javax.management.monitor.*,javax.management.timer.* \ 
      unregister 

/etc/cassandra/cassandra-env.sh 
LOCAL_JMX=no 

if [ "$LOCAL_JMX" = "yes" ]; then 
    JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.local.port=$JMX_PORT -XX:+DisableExplicitGC" 
else 
    JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT" 
    JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT" 
    JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=false" 
    JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true" 
    JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password" 

M Qualcun altro ha affrontato lo stesso problema?

Cassandra Versione: 2.2.1 JAVA Versione: 1.8.0_60

risposta

9

Mettere il comando alla fine e le opzioni all'inizio, in questo modo:

nodetool -u cassandra -pw cassandra status

+0

Sì, ho capito che questo dopo il post. Grazie! – Tomas