CassandraへのSSL接続のトラブルシューティング
OpsCenterからCassandraへのSSL接続に関する一般的な問題のトラブルシューティングのヒント。
OpsCenter 6.0では、DataStax EnterpriseクラスターへのOpsCenter SSL接続はすべて自動的に検証されます。JVMへの移行後、OpsCenterではキーストア/トラストストア・モデルを使用してCassandraに接続し、OpsCenterの以前のバージョンよりも厳しくSSL証明書の使用を求めています。そのため、クラスター設定でssl_validate
オプションを使用して、SSL証明書の検証を無効にするオプションはなくなりました。
OpsCenterをクライアントとノード間の暗号化が有効なクラスターで動作するよう設定するには、以下の手順に従います。
- それぞれのCassandraノードの証明書を使用して、OpsCenterマシンにトラストストア・ファイルを作成します。
- OpsCenterに接続する各Cassandraノードから公開鍵証明書を取得します。
- これらの公開鍵証明書をトラストストア・ファイルにインポートします。例を次に示します。
keytool -import -v -trustcacerts -alias node0 -file node0.cer -keystore .truststore
- OpsCenterマシン上にクライアント証明書とキーストアを作成します。
keytool -genkey -alias opscenter -keystore keystore.jks keytool -export -alias opscenter -file opscenter.cer -keystore keystore.jks
- クライアントとノード間の暗号化を使用している場合にクライアント認証(cassandra.yamlのクライアントとノード間の暗号化の
require_client_auth
)を求めるようにDataStax Enterpriseクラスターを設定している場合は、CassandraがOpsCenterからの接続を信頼するように、ステップ2で生成した公開証明書をすべてのノードのトラストストアにインポートする必要があります。
SSLを使用したOpsCenterからCassandraへの接続のトラブルシューティング
クラスター構成ssl_validateのプロパティが無効なため、OpsCenterがシャットダウンする
このエラーは、使用しているクラスター構成のcluster_name.conf構成ファイルに廃止されたssl_validate
構成値が含まれている場合に発生します。ssl_validate
オプションを削除して、OpsCenterを再起動してください。
OpsCenterがクラスターに接続できず、使用可能なCassandra接続がないというエラーがログに記録される
このエラーの原因にはクラスター接続に関するさまざまな問題が考えられますが、SSLを使用している場合、キーストア/トラストストア設定を微調整する必要があることを示しています。ログには以下のようなエラーが記録されます。
2016-02-04 16:06:53,255 [] DEBUG: Node 127.0.0.1 seems to be down, trying next contact point (MainThread) 2016-02-04 16:06:53,255 [] DEBUG: Unable to connect to any seed nodes, tried ['127.0.0.1'] (MainThread) 2016-02-04 16:06:53,256 [] WARN: No cassandra connection available for hostlist ['127.0.0.1'] . Retrying. (MainThread)
これらのエラーは、OpsCenterがDataStax Enterpriseクラスターに接続できないことを示しています。SSL設定が正しいことを確認するには、以下の項目を確認してください。
- キーストア/トラストストアの証明書が有効である(ホスト名が一致し、証明書の有効期限が切れていない)。
- 各ノードのすべての公開証明書がOpsCenterのトラストストアにある。
require_client_auth
が有効である場合、OpsCenterの証明書が各ノードのトラストストアにある。
cluster_name.conf
cluster_name.confファイルの場所は、インストールのタイプによって異なります。
- パッケージ・インストール:/etc/opscenter/clusters/cluster_name.conf
- tarボール・インストール:install_location/conf/clusters/cluster_name.conf