ウェブサイト検索

Debian 12にApache Solrをインストールする方法


Debian 12にApache Solrをインストールする方法

このチュートリアルはこれらのOSバージョンのために存在します

  • Debian 12 (ブックワーム)
  • Debian 11 (バルセイヤ)

このページで

  1. 前提条件
  2. Java OpenJDKのインストール
  3. Apache Solrのダウンロードとインストール
  4. Apache Solrの設定

    1. Debianシステムの設定
    2. Apache Solrの設定
  5. BasicAuthプラグインを使用してApache Solrを保護する
  6. 最初のインデックスをApache Solrで作成する
  7. 結論

Apache Solrは、Apache Luceneに基づいて構築されたオープンソースの検索プラットフォームであり、強力なアプリケーション検索およびインデックス作成機能を作成するために設計されています。高度な全文検索、ファセット検索、リアルタイムインデキシング、分散検索を提供し、検索エンジンやデータ取得システムの構築に人気の選択肢となっています。Solrは高いスケーラビリティを持ち、大量のデータに最適化されており、企業環境でのウェブサイト検索、eコマース、ビッグデータ分析などのタスクに頻繁に使用されます。そのRESTライクなAPIにより、他のシステムとの統合が容易で、クエリ提案のハイライト、地理空間検索などの機能もサポートしています。Solrの柔軟性、パフォーマンス、コミュニティサポートにより、堅牢な検索機能を必要とする組織にとっての主要なソリューションとなっています。

このガイドでは、Debian 12サーバーにApache Solrをインストールする手順をステップバイステップで説明します。Java OpenJDK 17を使用してApache Solrをインストールし、BasicAuthプラグインを使用してセキュリティを強化し、コマンドラインを使用してSolrインデックスを作成する方法を学びます。

前提条件

進む前に、以下の項目を確認してください:

  • 少なくとも4GBのメモリを搭載したDebian 12サーバー。
  • sudo管理者権限を持つ非ルートユーザー。

Java OpenJDKのインストール

Apache Solrは、Apache Luceneに基づいたエンタープライズ検索プラットフォームで、Java JRE(Java Runtime Environment)の上で動作します。この時点で、Solrは少なくともJava JRE(Java Runtime Environment)バージョン11が必要であり、DebianリポジトリからインストールできるOpenJDK 17を使用します。

始める前に、以下のコマンドを実行してDebianパッケージインデックスを更新およびリフレッシュしてください。

sudo apt update

次に、DebianマシンにJava OpenJDKをインストールするために、以下のコマンドを実行してください。Debian 12では、default-jdkパッケージはJava OpenJDK 17を指しており、Apache Solrが使用できます。

sudo apt install default-jdk

インストールを続行するにはyを入力してください。

インストールが完了したら、以下のコマンドを実行してJavaのバージョンを確認してください。

java --version

以下の出力は、Java OpenJDK 17がインストールされていることを確認します。

Apache Solrのダウンロードとインストール

Java OpenJDKをインストールした後、次にインストーラスクリプトを使用してマシンにApache Solrをダウンロードしてインストールします。この時点での最新バージョンのApache Solrはバージョン9.4です。最新バージョンに関する情報を得るために、公式のApache Solrダウンロードページを訪れてください。

Apache Solrをダウンロードする前に、以下のコマンドを実行していくつかの依存関係をインストールしてください。

sudo apt install curl lsof bc

以下のcurlコマンドを実行して、Apache Solrのバイナリパッケージをダウンロードしてください。この執筆時点では、Apache Solrの最新バージョンはv9.4.0です。ダウンロードが完了すると、Apache Solrパッケージはsolr-9.4.0.tgzとして利用可能になります。

curl -qO https://downloads.apache.org/solr/solr/9.4.0/solr-9.4.0.tgz

その後、次のコマンドを実行して、ファイルsolr-9.4.0.tgzからApache Solrインストーラスクリプトを抽出します。インストーラスクリプトinstall_solr_service.shは、現在の作業ディレクトリから抽出されます。

tar xzf solr-9.4.0.tgz solr-9.4.0/bin/install_solr_service.sh --strip-components=2

次に、インストーラスクリプトinstall_solr_service.shを介して、Apache Solr solr-9.4.0.tgzをインストールするために、以下のコマンドを実行します。

sudo bash ./install_solr_service.sh solr-9.4.0.tgz

プロセス中に、次のことが見えるでしょう:

画像から、お使いのApache Solrインストールの詳細状況を確認できます。

  • デフォルトのApache Solrのインストールディレクトリは/opt/solrで、データディレクトリは/var/solrです。
  • 新しいシステムユーザーsolrが自動的に作成され、Apache Solrプロセスを実行するために使用されます。
  • solr.serviceという新しいサービススクリプトも作成されており、systemctlおよびserviceコマンドを介して管理できます。

次のコマンドを使用してsolrサービスを確認してください。

sudo service solr status

以下の出力が表示され、Solrサービスがバックグラウンドで実行されており、サービススクリプトを介して起動されたことが確認されます。

Solrサービスを再起動または停止するには、次のコマンドも使用できます。

sudo service solr restart
sudo service solr stop

Apache Solrの設定

Apache Solrをインストールしたので、次のステップでは以下のことを行います:

  • Debianシステムの設定: shmmax、nr_hugepages、および最大プロセス数とオープンファイル数に関するシステム制限を増やすことで、Debianマシンを調整します。
  • Solrの設定:Solrの最大ヒープメモリを増やし、特定のローカルIPアドレスをホストApache Solrとして設定します。

始めましょう。

Debianシステムの設定

Apache Solrを最適化するには、Debianマシンのshmmax、nr_hugepages、最大プロセス数、および最大オープンファイル数を増やす必要があります。

Debianマシンでカーネルパラメータshmmaxとnr_hugepagesを増やすために、次のコマンドを実行してください。

sudo echo 4294967295 > /proc/sys/kernel/shmmax
sudo echo 1536 > /proc/sys/vm/nr_hugepages

その後、以下のnanoエディタコマンドを使ってファイル/etc/security/limits.confを開いてください。

sudo nano /etc/security/limits.conf

次の設定を行の最下部に追加します。これにより、ユーザーSolrの最大プロセスおよび最大オープンファイルが65000に設定されます。

solr   soft   nofile   65000
solr   hard   nofile   65000
solr   soft   nproc    65000
solr   hard   nproc    65000

ファイルを保存して、作業が完了したらエディタを終了してください。

最後に、次のコマンドを実行して、ユーザーsolrのulimits(最大プロセス数と最大オープンファイル数)を確認してください。

sudo -H -u solr bash -c "ulimit -aH"

成功すれば、ユーザーsolrのulimit 最大プロセスと最大オープンファイルが65000に設定されているはずです。

Apache Solrの設定

Debianマシンに変更を加えた後、Apache Solrの設定を変更して、最大ヒープメモリを4 GBに設定し、Solrを特定のローカルIPアドレス192.168.10.15で実行します。

下記のnanoエディタコマンドを使用して、デフォルトのApache Solr設定/etc/default/solr.in.shを開いてください。

sudo nano /etc/default/solr.in.sh

デフォルトの SOLR_HEAP オプションを、あなたの最大許容メモリで調整してください。この例では、Apache Solrが実行され、最大メモリとして 4GB を使用することを許可します。

SOLR_HEAP="4g"

次に、SOLR_HOSTとSOLR_JETTY_HOSTのオプションのコメントを解除し、サーバーのIPアドレスを入力します。この例では、ローカルIPアドレス192.168.10.15内でApache Solrを実行します。

SOLR_HOST="192.168.10.15"
SOLR_JETTY_HOST="192.168.10.15"

作業が完了したら、ファイルを保存して閉じてください。

次に、以下のコマンドを実行してsolrサービスを再起動し、行った変更を適用してください。

sudo service solr restart

コマンドを実行した後、あなたのApache SolrはサーバーのIPアドレス192.168.10.15で動作し、最大ヒープメモリは4 GBになります。

ウェブブラウザを起動し、サーバーのIPアドレスの後にポート8983を入力して訪問します。例えば、http://192.168.10.15:8983/ のようにします。すべてが正しく行われていれば、以下のようなApache Solrダッシュボードページが表示されるはずです。

そこから、Apache Solrのインストールディレクトリである/opt/solrがJava OpenJDK 17で動作しているのを見ることができます。

BasicAuthプラグインを使用してApache Solrをセキュリティ保護する

このセクションでは、BasicAuthプラグインを使用して認証を追加し、新しいSolrユーザーを作成することによってApache Solrをセキュリティ保護します。それを達成するためには、特定の設定を作成し、その後Solrユーザーのために認証モジュールと認可モジュールを定義する必要があります。

/var/solr/data/security.jsonという新しいファイルを次のnanoエディタコマンドを使って作成します。この例では、Apache Solrのデフォルトデータディレクトリは/var/solr/data/です。

sudo nano /var/solr/data/security.json

次の設定をファイルに挿入してください。

{
  "authentication":{
    "blockUnknown": true,
    "class":"solr.BasicAuthPlugin",
    "credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="},
    "realm":"My Solr users",
    "forwardCredentials": false
  },
  "authorization":{
    "class":"solr.RuleBasedAuthorizationPlugin",
    "permissions":[{"name":"all", "role":"admin"}],
    "user-role":{"solr":"admin"}
  }
}

作業が完了したら、ファイルを保存して閉じてください。

これにより、次の方法でApache Solrを保護することができます:

  • ユーザー認証のためのBasicAuthプラグインを使用し、パスワードsolrRocksで新しいユーザーsolrを作成します。
  • RuleBasedAuthorizationPluginを使用して認可を行い、ユーザーsolrを管理者として設定して、Apache Solrインストール内の任意のインデックスにアクセスできるようにしてください。

次に、以下のコマンドを実行してsolrサービスを再起動し、行った変更を適用してください。

sudo service solr restart

さあ、ウェブブラウザに戻って、Apache Solrのタブをリロードしてください。すべてが成功すれば、次のようなSolrのログインページにリダイレクトされるはずです。

solrというユーザー名とSolrRocksというパスワードでログインしてください。

ログイン試行が成功した場合、画面にApache Solrダッシュボードが表示されるはずです。

最初のインデックスをApache Solrで作成する

この時点で、Apache Solrのインストールが完了しましたので、コマンドラインを介して最初のSolrインデックスを作成できます。しかし、その前に、Solrのデフォルトの認証が設定されていることを確認する必要があります。

/etc/default/solr.in.shというSolr設定ファイルを次のnanoエディタコマンドを使用して開きます。

sudo nano /etc/default/solr.in.sh

以下の行のコメントを解除して、基本認証によるデフォルトのSolr認証を設定し、作成したsolrユーザーとパスワードSolrRocksを入力してください。

SOLR_AUTH_TYPE="basic"
SOLR_AUTHENTICATION_OPTS="-Dbasicauth=solr:SolrRocks"

作業が完了したら、ファイルを保存してエディタを終了してください。

以下のsystemctlコマンドを実行して、solrサービスを再起動し、変更を適用してください。

sudo service solr restart

次に、以下のコマンドを実行して、最初のSolrインデックスtest_coreを作成します。

su - solr -c "/opt/solr/bin/solr create -c test_core -n TestCore"

インデックスが作成されると、次のような期待される出力「新しいコア 'test_core' を作成しました」が表示されます:

最後に、Apache Solrのダッシュボードに戻ります。そして、コアセレクターのドロップダウンメニューセクションでtest_coreを選択します。

完了すると、以下のようなtest_coreの詳細情報が表示されるはずです。

結論

結論として、あなたはDebian 12サーバーにApache Solrのインストールをステップバイステップで完了しました。Java OpenJDK 17を使用してApache Solrをインストールし、BasicAuthプラグインを使用してApache Solrのインストールを認証によって保護しました。さらに、コマンドラインを使用してSolrインデックスを作成する方法も学びました。これからは、Solrクラスターを作成することでSolrのインストールを活用できます。

関連記事: