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:

  • Sto ottenendo SSL_ERROR_BAD_CERT_DOMAIN per il mio sottodominio www
  • "Nessun path da ospitare" con ssl, ma non con telnet
  • Il certificato smette di funzionare dopo il riavvio del computer
  • Come impedire che https: // sia accessibile da domini senza un certificato?
  • Panchina Apache: La stretta di mano SSL non è direttamente correlata al livello di concorrenza
  • NameVirtualHost 12.345.67.89:443 non dispone di VirtualHosts dopo aver abilitato e disabilitato il module suexec
  • 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?

    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.