問題

問題

問題

OpsCenter を datastax-agent に接続できません。datastax-agent が起動して cassandra に接続しようとしますが、正しい資格情報がわからないため失敗しますが、opscenter から資格情報を受け取るための Jetty サーバーも起動しません。そのため、再試行しても接続されません。cassandra がすべての接続 (認証なし) を許可すると、セットアップは正常に動作します。

startup.logどちらもagent.log繰り返し表示されます:

エラー [main] 2015-03-03 21:19:43,106 Cassandra に接続できません。com.datastax.driver.core.exceptions.AuthenticationException を再試行しています: ホスト /127.0.0.1:9042 で認証エラーが発生しました: ホスト /127.0.0.1:9042 には認証が必要ですが、クラスター構成に認証子が見つかりません

設定

インストールしましたデータスタックスエージェントhttp://debian.datastax.com/community stable main(5.1)をEC2インスタンス上の公式Ubuntu 14.04.LTSで実行します。アドレス.yml次のようになります:

stomp_interface: PUBLIC_IP_OF_OPSCENTER_NODE
ローカルインターフェース: PUBLIC_IP_OF_NODE
エージェント rpc インターフェース: PRIVATE_IP_OF_NODE
エージェント rpc ブロードキャストアドレス: PUBLIC_IP_OF_NODE

追加も試みましたcassandra_install_location: /opt/cassandraが、役に立たないようです。Cassandra (2.1) は tarball 経由でインストールされ、ユーザー として実行されますがubuntu、datastax-agent も として実行されますubuntu

質問

Cassandra が認証を必要とする場合に、Datastax-agent と Opscenter が通信できるようにするには、何が欠けているのでしょうか?

編集:

打ち上げ後startup.log

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

答え1

ニコラスチェックアウトこのドキュメントcassandraが内部認証を使用するように設定されている場合、cassandraのユーザー名とパスワードはopscenterdサーバー上のopscenterのクラスター構成ファイルに設定されます。ファイルの名前は.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.

適切に設定されていてもエージェントが接続できない場合は、address.yaml に設定されているさまざまな IP アドレスがインストールに対して正しいかどうかも確認してください。

具体的には、cassandra ノードはパブリック インターフェイス経由で opscenterd サーバーに到達できますか? local_interface の IP アドレスが、nodetool ステータス出力に表示されるノードの IP と一致していることを確認します。opscenterd サーバーがエージェント RPC ブロードキャスト アドレス IP を使用してノード上のエージェントに到達できることを確認します。

答え2

構成ファイルで資格情報を手動で構成してみることもできますaddress.yaml

cassandra_user: <username>
cassandra_pass: <password>

を参照してくださいデータスタックスエージェントの設定そしてその5.1 へのアップグレード ガイドいくつかのパラメータが変更されたためです。

答え3

Clement からの回答は、私の場合はうまくいきました。Solaris 11 で 5.1 を使用しています。(Solaris ではパッケージのインストールが提供されていないため、手動で tar をインストールし、Cassandra、エージェント、および opscenter を手動で起動する必要があります。また、opscenter スクリプトは、サポートされていない「epoll」をリアクターとして使用できると判断したため、調整が必要でした。「select」を使用するように強制するとうまくいきました。)

関連情報