
Problema
Não consigo fazer com que o OpsCenter se conecte ao agente datastax. Parece que o datastax-agent inicia e tenta se conectar ao cassandra, falha porque não conhece as credenciais corretas, mas também não inicia o servidor Jetty para receber as credenciais do opscenter. Então ele tenta e tenta novamente, mas nunca se conecta. Quando cassandra permite todas as conexões (sem autenticação), minha configuração funciona bem.
startup.log
bem como agent.log
ambos mostram repetidos:
ERRO [principal] 03-03-2015 21:19:43.106 Não é possível conectar-se ao Cassandra, tentando novamente com.datastax.driver.core.exceptions.AuthenticationException: Erro de autenticação no host /127.0.0.1:9042: Host /127.0.0.1 :9042 requer autenticação, mas nenhum autenticador encontrado na configuração do cluster
Configurar
Eu instaleiagente datastax(5.1) no Ubuntu 14.04.LTS do oficial http://debian.datastax.com/community stable main
em uma instância EC2. Meuendereço.ymlse parece com isso:
stomp_interface: PUBLIC_IP_OF_OPSCENTER_NODE
local_interface: PUBLIC_IP_OF_NODE
agente_rpc_interface: PRIVATE_IP_OF_NODE
agente_rpc_broadcast_address: PUBLIC_IP_OF_NODE
Também tentei adicionar cassandra_install_location: /opt/cassandra
, mas não parece ajudar. Cassandra (2.1) é instalado via tarball e roda como user ubuntu
, datastax-agent também roda como ubuntu
.
Pergunta
O que estou faltando para que o agente datastax e o opscenter se comuniquem quando o cassandra requer autenticação?
Editar% s:
O startup.log
pós-lançamento:
log4j:WARN No appenders could be found for logger (com.datastax.driver.core.SystemProperties).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
INFO [main] 2015-03-10 11:35:50,361 Loading conf files: /var/lib/datastax-agent/conf/address.yaml
INFO [main] 2015-03-10 11:35:50,412 Java vendor/version: Java HotSpot(TM) 64-Bit Server VM/1.7.0_76
INFO [main] 2015-03-10 11:35:50,412 DataStax Agent version: 5.1.0
INFO [main] 2015-03-10 11:35:50,490 Default config values: { ... }
INFO [main] 2015-03-10 11:35:50,685 Waiting for the config from OpsCenter
INFO [main] 2015-03-10 11:35:50,686 Using XX.XX.XXX.XXX as the cassandra broadcast address
INFO [main] 2015-03-10 11:35:50,686 New JMX connection (127.0.0.1:7199)
INFO [main] 2015-03-10 11:35:50,889 cassandra RPC address is nil
ERROR [main] 2015-03-10 11:35:51,048 Can't connect to Cassandra, retrying
com.datastax.driver.core.exceptions.AuthenticationException: Authentication error on host /127.0.0.1:9042: Host /127.0.0.1:9042 requires authentication, but no authenticator found in Cluster configuration
Responder1
Nicolas confiraesta documentação. Com o cassandra configurado para usar autenticação interna, o nome de usuário e a senha do cassandra são definidos no arquivo de configuração do cluster para opscenter no servidor opscenterd. O arquivo é chamado .conf
[cassandra] username
The thrift username to Cassandra if thrift authentication is enabled.
[cassandra] password
The thrift password to Cassandra if thrift authentication is enabled.
Se isso estiver configurado corretamente e seus agentes ainda não conseguirem se conectar, você também poderá verificar se os vários endereços IP definidos em seu address.yaml estão corretos para sua instalação.
Especificamente, o nó cassandra pode alcançar o servidor opscenterd por meio da interface pública? Verifique se o endereço IP local_interface corresponde ao ip do nó, conforme visto na saída de status do nodetool. Verifique se o servidor opscenterd pode alcançar o agente no nó usando o endereço IP de transmissão do agente rpc.
Responder2
Você pode tentar configurar manualmente as credenciais em seu address.yaml
arquivo de configuração.
cassandra_user: <username>
cassandra_pass: <password>
Veja oconfiguração do agente datastaxe aguia de atualização para 5.1, porque alguns parâmetros foram alterados.
Responder3
A resposta de Clement funcionou para mim. Usando 5.1 no Solaris 11. (Como no Solaris, não há instalação de pacote fornecida, portanto, uma instalação manual do tar e inicialização manual do Cassandra, do agente e do opscenter. Observe também que o script do opscenter precisava de ajustes, porque decidiu poderia usar 'epoll' como reator, o que não é suportado. Forçar o uso de 'select' funcionou.)