Opscenter 4.1 – comunicazione agente ssl vs authentication interna

La mia domanda riguarda Opscenter 4.0.2 e Cassandra 2.0.4 con SSL e Auth: l'agente non può connettersi . La risposta fornita aiuta, ma crea un altro problema.

Riassumendo, tutto viene eseguito finché non abilisco ssl tra opscenter e agenti di datastax. Sto utilizzando DSE 4.0, la mia configuration è simile a quella dell'altro biglietto e so che la fiducia viene raccolta. Tuttavia, l'agente in genere genera la seguente exception nel registro:

INFO [thrift-init] 2014-03-12 12:52:08,283 Registering JMX me.prettyprint.cassandra.service_Agent Cluster:ServiceType=hector,MonitorType=hector INFO [StompConnection receiver] 2014-03-12 12:52:08,352 Starting OS metric collectors (Linux) INFO [StompConnection receiver] 2014-03-12 12:52:08,444 Starting Cassandra JMX metric collectors ERROR [thrift-init] 2014-03-12 12:52:09,022 Exception in thread "thrift-init" ERROR [thrift-init] 2014-03-12 12:52:09,023 java.lang.OutOfMemoryError: Java heap space ERROR [thrift-init] 2014-03-12 12:52:09,023 at org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:140) ERROR [thrift-init] 2014-03-12 12:52:09,023 at org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101) ERROR [thrift-init] 2014-03-12 12:52:09,023 at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84) ERROR [thrift-init] 2014-03-12 12:52:09,023 at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:378) ERROR [thrift-init] 2014-03-12 12:52:09,023 at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297) ERROR [thrift-init] 2014-03-12 12:52:09,023 at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:204) ERROR [thrift-init] 2014-03-12 12:52:09,024 at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69) ERROR [thrift-init] 2014-03-12 12:52:09,024 at org.apache.cassandra.thrift.Cassandra$Client.recv_describe_cluster_name(Cassandra.java:1101) ERROR [thrift-init] 2014-03-12 12:52:09,024 at org.apache.cassandra.thrift.Cassandra$Client.describe_cluster_name(Cassandra.java:1089) ERROR [thrift-init] 2014-03-12 12:52:09,024 at me.prettyprint.cassandra.service.AbstractCluster$2.execute(AbstractCluster.java:149) ERROR [thrift-init] 2014-03-12 12:52:09,024 at me.prettyprint.cassandra.service.AbstractCluster$2.execute(AbstractCluster.java:145) ERROR [thrift-init] 2014-03-12 12:52:09,024 at me.prettyprint.cassandra.service.Operation.executeAndSetResult(Operation.java:104) ERROR [thrift-init] 2014-03-12 12:52:09,024 at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:253) ERROR [thrift-init] 2014-03-12 12:52:09,024 at me.prettyprint.cassandra.service.AbstractCluster.describeClusterName(AbstractCluster.java:155) ERROR [thrift-init] 2014-03-12 12:52:09,024 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ERROR [thrift-init] 2014-03-12 12:52:09,024 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ERROR [thrift-init] 2014-03-12 12:52:09,024 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ERROR [thrift-init] 2014-03-12 12:52:09,024 at java.lang.reflect.Method.invoke(Method.java:606) ERROR [thrift-init] 2014-03-12 12:52:09,024 at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93) ERROR [thrift-init] 2014-03-12 12:52:09,024 at clojure.lang.Reflector.invokeNoArgInstanceMember(Reflector.java:298) ERROR [thrift-init] 2014-03-12 12:52:09,025 at clj_hector.core$cluster_name.invoke(core.clj:40) ERROR [thrift-init] 2014-03-12 12:52:09,025 at opsagent.cassandra$setup_cassandra$f__376__auto____929$fn__949.invoke(cassandra.clj:360) ERROR [thrift-init] 2014-03-12 12:52:09,025 at opsagent.cassandra$setup_cassandra$f__376__auto____929.invoke(cassandra.clj:358) ERROR [thrift-init] 2014-03-12 12:52:09,025 at clojure.lang.AFn.run(AFn.java:24) ERROR [thrift-init] 2014-03-12 12:52:09,025 at java.lang.Thread.run(Thread.java:744) 

Come dice l'altro biglietto, devo dare molto più memory al VM (ho dovuto impostare -Xmx1024M, dato che 256MB non era sufficiente) per get l'exception vera:

 me.prettyprint.hector.api.exceptions.HectorTransportException: org.apache.thrift.transport.TTransportException at me.prettyprint.cassandra.service.ExceptionsTranslatorImpl.translate(ExceptionsTranslatorImpl.java:39) at me.prettyprint.cassandra.service.AbstractCluster$2.execute(AbstractCluster.java:151) at me.prettyprint.cassandra.service.AbstractCluster$2.execute(AbstractCluster.java:145) at me.prettyprint.cassandra.service.Operation.executeAndSetResult(Operation.java:104) at me.prettyprint.cassandra.connection.HConnectionManager.operateWithFailover(HConnectionManager.java:253) at me.prettyprint.cassandra.service.AbstractCluster.describeClusterName(AbstractCluster.java:155) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at clojure.lang.Reflector.invokeMatchingMethod(Reflector.java:93) at clojure.lang.Reflector.invokeNoArgInstanceMember(Reflector.java:298) at clj_hector.core$cluster_name.invoke(core.clj:40) at opsagent.cassandra$setup_cassandra$f__376__auto____929$fn__949.invoke(cassandra.clj:360) at opsagent.cassandra$setup_cassandra$f__376__auto____929.invoke(cassandra.clj:358) at clojure.lang.AFn.run(AFn.java:24) at java.lang.Thread.run(Thread.java:744) Caused by: org.apache.thrift.transport.TTransportException at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132) at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84) at org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:141) at org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101) at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84) at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:378) at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297) at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:204) at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69) at org.apache.cassandra.thrift.Cassandra$Client.recv_describe_cluster_name(Cassandra.java:1101) at org.apache.cassandra.thrift.Cassandra$Client.describe_cluster_name(Cassandra.java:1089) at me.prettyprint.cassandra.service.AbstractCluster$2.execute(AbstractCluster.java:149) ... 15 more 

Tuttavia, a volte, tutto va bene, quindi sembra una condizione di gara. Ho seguito le istruzioni proposte nell'unica risposta all'altro biglietto e ho configurato manualmente le impostazioni ssl dell'agente in address.yaml:

 thrift_ssl_truststore: /etc/dse/conf/.truststore thrift_ssl_truststore_password: XYZ 

Ora, la parte ssl funziona, ma Hector dà un errore quando cerca di eseguire una richiesta:

 ERROR [thrift-processr-1] 2014-03-12 03:34:42,420 Error when proccessing thrift callme.prettyprint.hector.api.exceptions.HInvalidRequestException: InvalidRequestException(why:You have not logged in) 

Ho abilitato l'authentication interna. Tuttavia, sembra che ora che la connessione SSL sia configurata manualmente sull'agente, le credenziali inviate da opscenter vengono ignorate.

C'è una soluzione adeguata per get la comunicazione di ssl con gli agenti mentre è abilitata l'authentication / authorization interna in Cassandra?

  • Strict-Transport-Security su CloudFront con origine S3?
  • Come posso distriggersre TLS 1.0 senza rompere il RDP?
  • RabbitMQ con un certificato LetsEncrypt
  • IIS 6 Windows 2003 aiuta l'installazione di SSL
  • Posso utilizzare lo stesso certificato SSL per smtp, imap, pop3 e http?
  • logging di errore SSLv3-handshaking su nginx
  • SSL / HTTPS aiuto per quanto riguarda Mongrel?
  • Access keystore su Sun ONE Webserver 6.1 per 2048 bit di lunghezza chiave SSL
  • One Solution collect form web for “Opscenter 4.1 – comunicazione agente ssl vs authentication interna”

    Lo stesso errore che ha causato il primo problema potrebbe anche causare che i dettagli di authentication non vengono impostati correttamente. Puoi specificarli anche nell'indirizzo.yaml.

     thrift_user: <username> thrift_pass: <password> 
    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.