web-dev-qa-db-ja.com

Cassandra認証が必要な場合、DataStaxOpsCenterエージェントの起動に失敗する

問題

OpsCenterをdatastax-agentに接続できません。 datastax-agentが起動してcassandraに接続しようとしているようですが、正しい認証情報がわからないため失敗しますが、opscenterから認証情報を受信するためにJettyサーバーも起動しません。したがって、再試行して再試行しますが、接続することはありません。 cassandraがすべての接続を許可する(認証なし)場合)、私のセットアップは正常に機能します。

startup.logagent.logの両方が繰り返し表示されます。

エラー[メイン] 2015-03-03 21:19:43,106Cassandraに接続できません。com.datastax.driver.core.exceptions.AuthenticationExceptionを再試行します:ホスト/127.0.0.1:9042の認証エラー:ホスト/127.0.0.1 :9042には認証が必要ですが、クラスター構成にオーセンティケーターが見つかりません

セットアップ

EC2インスタンスの公式http://debian.datastax.com/community stable mainからUbuntu14.04.LTSにdatastax-agent(5.1)をインストールしました。私のaddress.ymlは次のようになります:

stomp_interface:PUBLIC_IP_OF_OPSCENTER_NODE
local_interface:PUBLIC_IP_OF_NODE
agent_rpc_interface:PRIVATE_IP_OF_NODE
agent_rpc_broadcast_address: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
Nicolas

ニコラスはチェックアウト このドキュメント 。 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サーバーに到達できますか?nodetoolステータス出力に表示されるようにlocal_interfaceIPアドレスがノードのIPと一致することを確認します。opscenterdサーバーができることを確認します。エージェントrpcブロードキャストアドレスipを使用して、ノード上のエージェントに到達します。

1
Darla Baker

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

cassandra_user: <username>
cassandra_pass: <password>

一部のパラメーターが変更されているため、 datastaxエージェント構成 および 5.1へのアップグレードガイド を参照してください。

1
Clement Lardeur

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

0
RickS