Я настраиваю cassandra с межузловым SSL и межузловым SSL и базовым паролем аутентификации. Нет проблем с использованием cqlsh или python для подключения к cassandra с любым сертификатом, поскольку certificate_validation отключен.
Конфигурация моего кластера opscenter:
[jmx] username = password = port = 7199 [kerberos_client_principals] [kerberos] [agents] thrift_ssl_truststore = /usr/share/opscenter/conf/cassandra_client_trust.jks thrift_ssl_truststore_password = changeme [kerberos_hostnames] [kerberos_services] [cassandra] username = cassandra ssl_ca_certs = /usr/share/opscenter/conf/cassandra_external.pem ssl_validate = False seed_hosts = acacia api_port = 9160 password = changeme
Я пытаюсь установить агент на хосты cassandra с помощью tarball. Я установил address.yaml на:
stomp_interface: "10.235.10.7" use_ssl: 1
Попытка запустить агент (мне пришлось добавить в java НАМНОГО больше памяти, чем 40 МБ по умолчанию):
INFO [thrift-init] 2014-01-27 16:32:08,300 Connecting to Cassandra cluster: 10.235.10.104 (port 9160) INFO [thrift-init] 2014-01-27 16:32:08,316 Downed Host Retry service started with queue size -1 and retry delay 10s INFO [thrift-init] 2014-01-27 16:32:08,322 Registering JMX me.prettyprint.cassandra.service_Agent Cluster:ServiceType=hector,MonitorType=hector ERROR [thrift-init] 2014-01-27 16:32:08,556 MARK HOST AS DOWN TRIGGERED for host 10.235.10.104(10.235.10.104):9160 ERROR [thrift-init] 2014-01-27 16:32:08,557 Pool state on shutdown: :{10.235.10.104(10.235.10.104):9160}; IsActive?: true; Active: 1; Blocked: 1; Idle: 0; NumBeforeExhausted: 0 INFO [thrift-init] 2014-01-27 16:32:08,557 Shutdown triggered on :{10.235.10.104(10.235.10.104):9160} INFO [thrift-init] 2014-01-27 16:32:08,557 Shutdown complete on :{10.235.10.104(10.235.10.104):9160} INFO [thrift-init] 2014-01-27 16:32:08,557 Host detected as down was added to retry queue: 10.235.10.104(10.235.10.104):9160 WARN [thrift-init] 2014-01-27 16:32:08,558 Could not fullfill request on this host CassandraClient WARN [thrift-init] 2014-01-27 16:32:08,559 Exception: me.prettyprint.hector.api.exceptions.HectorTransportException: org.apache.thrift.transport.TTransportException at me.prettyprint.cassandra.service.ExceptionsTranslatorImpl.translate(ExceptionsTranslatorImpl.java:33) 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:258) 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__352__auto____899$fn__919.invoke(cassandra.clj:360) at opsagent.cassandra$setup_cassandra$f__352__auto____899.invoke(cassandra.clj:358) at clojure.lang.AFn.run(AFn.java:24) at java.lang.Thread.run(Thread.java:724) Caused by: org.apache.thrift.transport.TTransportException
Я не знаю, связано ли это с SSL или с пользователем / паролем ... но это не работает. Когда агент подключается к локальному серверу Cassandra, я ожидаю, что он должен знать логин / пароль пользователя cassandra (или любого суперпользователя или, возможно, обычного пользователя)? не так ли?
Скорее всего, это связано с известным состоянием гонки, когда агент пытается подключиться к локальному узлу через экономию до того, как opscenterd сможет отправить информацию SSL. Обходной путь - вручную настроить параметры SSL агента в address.yaml:
thrift_ssl_truststore: /etc/dse/conf/.truststore
thrift_ssl_truststore_password: XYZ
и перезапустите агент.