
問題
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」を使用するように強制するとうまくいきました。)