Tunneling cassandra via ssh me dá um erro de conexão fechada

3

Eu tenho um servidor com duas interfaces de rede. Cassandra está ouvindo em uma rede de banco de dados interna dedicada na eth1 (não acessível de fora). Então eu faço meu túnel assim:

ssh -f -N -L9161:192.XXX.XXX.200:9160 [email protected] -P 9922

Onde XXX é a rede de banco de dados interna e YYY é a rede em que o ssh está escutando. Quando tento cqlsh localhost 9161 , obtenho a seguinte exceção:

Connection error: ('Unable to connect to any servers', {'localhost': ConnectionShutdown('Connection <AsyncoreConnection(139691023521360) localhost:9161 (closed)> is already closed',)})

Mas quando eu telnet localhost 9161 recebo com sucesso um shell telnet. E, claro, a cassandra está funcionando.

Alguma idéia de como posso fazer meu túnel funcionar?

    
por KIC 02.02.2015 / 11:32

2 respostas

0

Eu tive o mesmo problema, e ele acabou parecendo uma incompatibilidade entre o cqlsh 5.0.1 (fornecido com o Cassandra 2.1.4, instalado a partir do repositório oficial do APT) e os antigos nós do Cassandra 2.0.14 (fornecidos com o DataStax) .

O downgrade gradual para o cqlsh 4.1 junto com o datastax resolveu o problema.

    
por 13.05.2015 / 13:44
5

Você precisa fazer proxy na porta 9160 (porta do Cassandra Client) e na porta 9042 (porta nativa do CQL). Execute dois terminais ou faça o cliente ssh passar a fundo com estes sinalizadores:

ssh -f -N -q -L 9042:192.XXX.XXX.200:9042 [email protected] -P 9922
ssh -f -N -q -L 9160:192.XXX.XXX.200:9160 [email protected] -P 9922

Agora você deve conseguir se conectar com cqlsh na porta padrão no localhost. Localhost também é o host padrão.

cqlsh -u [username] -p [password]
    
por 03.03.2015 / 02:31