CassandraへのSSL接続のトラブルシューティング

OpsCenterからCassandraへのSSL接続に関する一般的な問題のトラブルシューティングのヒント。

OpsCenter 6.0では、DataStax EnterpriseクラスターへのOpsCenter SSL接続はすべて自動的に検証されます。JVMへの移行後、OpsCenterではキーストア/トラストストア・モデルを使用してCassandraに接続し、OpsCenterの以前のバージョンよりも厳しくSSL証明書の使用を求めています。そのため、クラスター設定でssl_validateオプションを使用して、SSL証明書の検証を無効にするオプションはなくなりました。

OpsCenterをクライアントとノード間の暗号化が有効なクラスターで動作するよう設定するには、以下の手順に従います。
  1. それぞれのCassandraノードの証明書を使用して、OpsCenterマシンにトラストストア・ファイルを作成します。
    1. OpsCenterに接続する各Cassandraノードから公開鍵証明書を取得します。
    2. これらの公開鍵証明書をトラストストア・ファイルにインポートします。例を次に示します。
      keytool -import -v -trustcacerts -alias node0 -file node0.cer -keystore .truststore
  2. OpsCenterマシン上にクライアント証明書とキーストアを作成します。
    keytool -genkey -alias opscenter -keystore keystore.jks
    keytool -export -alias opscenter -file opscenter.cer -keystore keystore.jks
  3. クライアントとノード間の暗号化を使用している場合にクライアント認証(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