エージェントのtmpディレクトリーの設定とセキュリティ保護

DataStaxエージェントは、JDK tmpdirに対する実行パーミッションを必要とします。noexecフラグを使用してtmpディレクトリーをマウントする前に、別の実行可能ディレクトリーにマップします。tmpディレクトリーにnoexecフラグが設定されている場合、エージェントは起動できません。

多くのエンタープライズ・セキュリティ・ポリシーでは、実行なし(noexec)フラグを使用して/tmpディレクトリーをマウントすることが求められます。OpsCenterは、Jythonを使用してJVMを実行します。Jythonは、実行可能ファイルのコピー先となる一時ディレクトリーにアクセスする必要があります。JDKが起動するには実行可能ディレクトリーが必要であり、デフォルトでJDKは/tmpにマップされます。/tmpディレクトリーにnoexecフラグが設定されている場合、エージェントは起動できません。

debまたはrpmパッケージによってインストールされたDataStaxエージェントは、デフォルトで、DSEと同じユーザーであるcassandraとして実行されます。エージェントを別のユーザーで実行している場合(tarボール・インストール)、「別のユーザーとしてエージェントを実行するためのパーミッションの設定」を参照してください。

デフォルトの一時ディレクトリーを別の(実行可能)ディレクトリーにマップし直して、エージェントのフル・アクセスを許可するようにそのパーミッションを変更します。OpsCenterとDataStaxエージェントの/tmpディレクトリーを安全にマウントするには、以下の手順に従います。

datastax-agent-env.sh

DataStaxエージェント環境のシェル・スクリプトdatastax-agent-env.shのデフォルトの場所は、インストールのタイプによって異なります。

  • パッケージ・インストール:/etc/datastax-agent/datastax-agent-env.sh
  • tarボール・インストール:install_location/agent/conf/datastax-agent-env.sh

手順

  1. 一時ディレクトリーを作成し、フル・アクセス権をcassandraユーザーに付与します。
  2. パスを指定して、datastax-agent-env.shファイルで新しい一時ディレクトリーをマップします。
    -Djava.io.tmpdirプロパティを新しい/tmpディレクトリのパスに設定します。
    JVM_OPTS="$JVM_OPTS -Xmx512M -Djava.io.tmpdir=/path/to/tmp/dir"

    また、以下の例では、-Xmxプロパティを使用してエージェントの最大ヒープ・サイズを倍の512Mに変更しています。

  3. ファイルを保存し、エージェントを再起動します。