ウェブサイト検索

Ubuntu 24.04 に OpenSearch をインストールする方法


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

  • Ubuntu 24.04 (Noble Numbat)
  • Ubuntu 22.04 (ジャミー ジェリーフィッシュ)

このページでは

  1. 前提条件
  2. OpenSearch リポジトリの追加
  3. OpenSearch と OpenSearch ダッシュボードのインストール
  4. OpenSearch の構成
  5. TLS/SSL 証明書による OpenSearch の保護

    1. ルート証明書の生成
    2. 管理者証明書の生成
    3. ホストまたはサーバー証明書の生成
    4. 証明書のセットアップ
  6. OpenSearch への証明書の追加
  7. パスワード認証による OpenSearch の保護
  8. OpenSearch ダッシュボードの構成
  9. 結論

OpenSearch は、Amazon によるコミュニティ主導のプロジェクトであり、Elasticsearch と Kibana のフォークです。これは、豊富な機能と革新的な機能を備えた完全にオープンソースの検索エンジンと分析スイートです。 OpenSearch プロジェクトの主なコンポーネントは、OpenSearch (Elasticsearch のフォーク) と OpenSearch ダッシュボード (Kibana のフォーク) です。どちらのコンポーネントも、エンタープライズ セキュリティ、アラート、機械学習、SQL、インデックス状態管理などの機能を提供します。

このガイドでは、OpenSearch と OpenSearch Dashboard を Ubuntu 24.04 サーバーにインストールする方法を説明します。また、TLS 証明書を使用して OpenSearch を保護し、ユーザー名とパスワードによる認証を有効にします。

前提条件

始める前に、以下のものがあることを確認してください。

  • 少なくとも 8GB の RAM を搭載した Ubuntu 24.04 サーバー
  • 管理者サーバーを持つ非 root ユーザー

OpenSearch リポジトリの追加

まず、OpenSearch および OpenSearch Dashboard リポジトリをシステムに追加する必要があります。この例では、OpenSearch の最新の安定バージョンを使用します。

まず、以下のコマンドを実行して、基本パッケージを Ubuntu システムにインストールします。

sudo apt install lsb-release ca-certificates curl gnupg2 -y

次のコマンドを使用して、OpenSearch リポジトリの GPG キーをダウンロードします。

curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring

以下のコマンドを使用して、OpenSearch および OpenSearch ダッシュボードのリポジトリをシステムに追加します。この例では、OpenSearch 2.x 安定バージョンを使用します。

echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list
echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-dashboards-2.x.list

最後に、以下の「apt」コマンドを実行してパッケージ インデックスを更新し、新しい OpenSearch パッケージ情報を取得します。

sudo apt update

OpenSearch と OpenSearch ダッシュボードのインストール

OpenSearch リポジトリを追加した後、APT パッケージ マネージャーを介して OpenSearch と OpenSearch ダッシュボードをインストールします。次に、「systemctl」ユーティリティを介して両方のサービスを開始します。

OpenSearch をインストールする前に、以下のコマンドを実行して、OpenSearch インストール用のランダムなパスワードを生成します。出力をコピーし、大文字、数字、記号を含めてください。

sudo openssl rand -hex 16

次に、以下のコマンドを実行して、「opensearch」 パッケージと 「opensearch-dashboard」 パッケージをインストールします。必ず「OPENSEARCH_INITIAL_ADMIN_PASSWORD」を変更し、「Y」と入力してインストールを確認してください。

sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD=B07e_af7e9f8fe12e@85ab797ddc1f174Dapt-get install opensearch opensearch-dashboard

インストールが完了したら、以下の「systemctl」コマンドを実行して systemd マネージャーを再ロードし、新しいサービス ファイルを適用します。

sudo systemctl daemon-reload

これで、以下のコマンドを使用して OpenSearch を開始、有効化、検証できるようになります。

sudo systemctl enable --now opensearch
sudo systemctl status opensearch

以下で OpenSearch が実行されていることがわかります。

最後に、次のコマンドを使用して、OpenSearch ダッシュボード サービスを開始、有効化、確認できるようになります。

sudo systemctl enable --now opensearch-dashboards
sudo systemctl status opensearch-dashboards

次の出力では、「opensearch-dashboards」サービスが実行されていることがわかります。

OpenSearch の構成

OpenSearch がインストールされている場合は、「/etc/opensearch/opensearch.yml」 ファイルを通じてインストールを構成します。必要に応じて、OpenSearch のデフォルトの最大 JVM (Java 仮想メモリ) サイズも増やします。

nano」エディタでデフォルトの OpenSearch 設定「/etc/opensearch/opensearch.yml」を開きます。

sudo nano /etc/opensearch/opensearch.yml

次の OpenSearch 構成を変更します。

  • * 「network.host」オプションをローカル IP アドレスに変更します。
  • * 単一モードで OpenSearch を実行するには、「discovery.type」を「単一ノード」として追加します。
  • * 「plugins.security.disabled」を「false」に設定します。
# Bind OpenSearch to the correct network interface. Use 0.0.0.0
# to include all available interfaces or specify an IP address
# assigned to a specific interface.
network.host: 192.168.10.60
# Unless you have already configured a cluster, you should set
# discovery.type to single-node, or the bootstrap checks will
# fail when you try to start the service.
discovery.type: single-node
# If you previously disabled the security plugin in opensearch.yml,
# be sure to re-enable it. Otherwise you can skip this setting.
plugins.security.disabled: false

ファイルを保存し、終了したらエディタを終了します。

次に、「nano」エディタで JVM (Java 仮想マシン) 構成「/etc/opensearch/jvm.options」を開きます。

sudo nano /etc/opensearch/jvm.options

必要に応じて、OpenSearch のデフォルトの最大メモリを増やします。デフォルト値は「1GB」です。

-Xms2g
-Xmx2g

ファイルを保存して終了します。

最後に、次の「systemctl」コマンドを実行して「opensearch」を再起動し、変更を適用します。これにより、OpenSearch はローカル IP アドレス上でシングル モードで実行されるようになります。

sudo systemctl restart opensearch

TLS/SSL 証明書による OpenSearch の保護

OpenSearch の構成が完了したので、SSL/TLS 証明書を使用して OpenSearch セキュリティをセットアップする必要があります。このセクションでは、デモ証明書を無効にしてから、ルート証明書、管理者証明書、およびホスト/サーバー証明書を生成します。

SSL 証明書を生成する前に、以下のコマンドを使用して OpenSearch からデモ証明書を削除します。

rm -f /opt/opensearch/{esnode-key.pem,esnode.pem,kirk-key.pem,kirk.pem,root-ca.pem}

OpenSearch 設定「/etc/opensearch/opensearch.yml」を「nano」エディタで編集します。

sudo nano /etc/opensearch/opensearch.yml

OpenSearch のセキュリティ設定「デモ」を次のようにコメントします。

ファイルを保存してエディタを終了します。

次に、新しいディレクトリ '/etc/opensearch/certs' を作成し、そこに移動します。このディレクトリは、OpenSearch の新しい証明書を保存するために使用されます。

mkdir -p /etc/opensearch/certs; cd /etc/opensearch/certs

ルート証明書の生成

まず、以下のコマンドを実行して、サーバー証明書やクライアント証明書などの他の証明書に署名するために使用されるルート証明書を生成します。

openssl genrsa -out root-ca-key.pem 2048

次に、次のコマンドを実行して、秘密キーからルート証明書を生成します。必ず「-subj」オプションをサーバーの詳細に変更してください。

openssl req -new -x509 -sha256 -key root-ca-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ROOT" -out root-ca.pem -days 730

管理者証明書の生成

次のコマンドを使用して、管理者証明書の新しい秘密キーを作成します。

openssl genrsa -out admin-key-temp.pem 2048

以下のコマンドを使用して、管理キーを PKCS8 形式に変換します。

openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem

次に、以下のコマンドを使用して、管理者証明書の新しい署名要求証明書 (CSR) を作成します。

openssl req -new -key admin-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=A" -out admin.csr

次に、次のコマンドを実行して、ルート証明書を使用して新しい管理要求証明書 (CSR) に署名します。

openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730

ホストまたはサーバー証明書の生成

OpenSearch ホスト/サーバーの秘密キーを生成し、証明書を PKCS8 形式に変換します。

openssl genrsa -out ubuntu24-key-temp.pem 2048
openssl pkcs8 -inform PEM -outform PEM -in ubuntu24-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out ubuntu24-key.PEM

次に、次のコマンドを実行して、ホストの証明書要求 (CSR) を生成します。 CN または共通名は、ホスト名ではなく、ホスト サーバーの FQDN と一致する必要があります。この例では、サーバーの FQDN は「ubuntu24.howtoforge.local」です。

openssl req -new -key ubuntu24-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ubuntu24.howtoforge.local" -out ubuntu24.csr

次に、以下のコマンドを実行して、ホスト/サーバーの DNS を含む新しい拡張ファイルを作成します。

echo 'subjectAltName=DNS:ubuntu24.howtoforge.local' > ubuntu24.ext

最後に、次のコマンドを実行して、ルート証明書を使用してホスト/サーバー証明書に署名し、前に作成した拡張ファイルを含めます。

openssl x509 -req -in ubuntu24.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out ubuntu24.pem -days 730 -extfile ubuntu24.ext

証明書のセットアップ

以下を使用して、一時証明書、管理者とホストの CSR (証明書リクエスト)、拡張子ファイルを削除します。

rm *temp.pem *csr *ext
ls

次に、以下のコマンドを使用して、「root-ca.pem」証明書を「root-ca.crt」ファイルに変換します。

openssl x509 -outform der -in root-ca.pem -out root-ca.crt

その後、「root-ca.crt」証明書を「/usr/local/share/ca-certificates」ディレクトリにコピーし、ルート証明書をサーバーにロードします。 。

sudo cp root-ca.crt /usr/local/share/ca-certificates
sudo update-ca-certificates

最後に、次のコマンドを実行して、証明書ファイルとディレクトリの適切な権限と所有権を設定します。

sudo chown -R opensearch:opensearch /etc/opensearch/certs
sudo chmod 0700 /etc/opensearch/certs
sudo chmod 0600 /etc/opensearch/certs/*.pem
sudo chmod 0600 /etc/opensearch/certs/*.crt

OpenSearch への証明書の追加

OpenSearch の TLS 証明書を生成した後、「opensearch.yml」 ファイルに新しい設定を追加する必要があります。この場合、bash スクリプトを通じて新しい設定を「opensearch.yml」に追加します。

OpenSearch サーバーに証明書を追加する前に、以下のコマンドを実行して「opensearch.yml」ファイルをバックアップし、サーバーのfqdnを設定します。

sudo cp /etc/opensearch/opensearch.yml /etc/opensearch/opensearch.yml.orig
sudo hostnamectl set-hostname ubuntu24.howtoforge.local

ここで、「nano」エディタを使用して新しいファイル「add-cert.sh」ファイルを作成します。

nano add-cert.sh

次の構成をファイルに挿入します。これにより、OpenSearch 構成ファイル 'opensearch.yml' に新しい構成を追加します。

#! /bin/bash
# Before running this script, make sure to replace the CN in the
# node's distinguished name with a real DNS A record.
echo "plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/ubuntu24.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/ubuntu24-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.enabled: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/ubuntu24.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/ubuntu24-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.allow_default_init_securityindex: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.authcz.admin_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
echo " - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.nodes_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
echo " - 'CN=ubuntu24.hwdomain.lan,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.audit.type: internal_opensearch" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.enable_snapshot_restore_privilege: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.check_snapshot_restore_write_privileges: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.restapi.roles_enabled: [\"all_access\", \"security_rest_api_access\"]" | sudo tee -a /etc/opensearch/opensearch.yml

ファイルを保存し、終了したらエディタを終了します。

次に、「add-cert.sh」ファイルを実行可能にし、次のコマンドで実行します。新しい設定は「opensearch.yml」ファイルに追加されます。

chmod +x add-cert.sh
./add-cert.sh

パスワード認証による OpenSearch の保護

この時点で、SSL/TLS 証明書を使用して OpenSearch を構成しました。次のステップでは、OpenSearch のパスワード認証をセットアップします。 OpenSearch へのログインと OpenSearch ダッシュボードへの統合に使用される 2 人のユーザーを設定します。

/usr/share/opensearch/plugins/opensearch-security/tools」ディレクトリに移動し、「hash.sh」スクリプトを実行して OpenSearch の新しいパスワードを生成します。 。 「hash.sh」を 2 回実行して、OpenSearch と OpenSearch ダッシュボード用の 2 つのパスワードを生成します。また、生成されたパスワードを必ずメモにコピーしてください。

cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh

次に、次の「nano」エディタでファイル「/etc/opensearch/opensearch-security/internal_users.yml」を開きます。

sudo nano /etc/opensearch/opensearch-security/internal_users.yml

ユーザー「admin」と「kibanaserver」のハッシュ パスワードを以前のパスワードに変更します。 「admin」ユーザーは OpenSearch ダッシュボードへのログインに使用され、「kibanaserver」ユーザーは OpenSearch と OpenSearch ダッシュボード間の接続に使用されます。

admin:
hash: "$2y$12$zPtsgbrpfmInPRuDEKvDKetuzhUzsQWyCpE9foT1uun5RTMW51p9K"
reserved: true
backend_roles:
- "admin"
description: "Admin user"
kibanaserver:
hash: "$2y$12$zPtsgbrpfmInPRuDEKvDKetuzhUzsQWyCpE9foT1uun5RTMW51p9K"
reserved: true
description: "Demo OpenSearch Dashboards user"

ファイルを保存し、終了したらエディタを終了します。

次に、以下のコマンドを実行して「opensearch」サービスを再起動し、変更を適用します。

sudo systemctl restart opensearch

OpenSearch が再起動したら、以下のコマンドを実行して SSL 証明書を OpenSearch に適用します。

cd /usr/share/opensearch/plugins/opensearch-security/tools
OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h 192.168.10.60 -p 9200 -cd /etc/opensearch/opensearch-security/ -cacert /etc/opensearch/certs/root-ca.pem -cert /etc/opensearch/certs/admin.pem -key /etc/opensearch/certs/admin-key.pem -icl -nhnv

うまくいけば、次のような出力が表示されます。

最後に、以下の「curl」コマンドを実行して、OpenSearch サーバーへの認証を確認します。

curl https://192.168.10.60:9200 -u admin:password -k
curl https://node-rock1:9200 -u kibanaserver:kibanapass -k

成功すると、HTTPS プロトコル経由でユーザー名とパスワードを使用して OpenSearch にアクセスできるようになります。

OpenSearch ダッシュボードの構成

パスワード認証を構成したら、ファイル「opensearch-dashboard,yml」を編集して OpenSearch ダッシュボードをセットアップします。

nano」エディタで OpenSearch ダッシュボード「/etc/opensearch-dashboards/opensearch-dashboard.yml」の設定を開きます。

sudo nano /etc/opensearch-dashboards/opensearch-dashboard.yml

次のように、ローカル IP アドレスを「server.host」オプションに入力します。

server.host: "192.168.10.60"

OpenSearch ホスト、ユーザー名、パスワードを必ず自分の情報に変更してください。

opensearch.hosts: ["https://192.168.10.60:9200"]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanapass

ファイルを保存してエディタを終了します。

次に、以下の「systemctl」コマンドを実行して OpenSearch ダッシュボードを再起動し、変更を適用します。これで、OpenSearch ダッシュボードが OpenSearch に接続されるはずです。

sudo systemctl restart opensearch-dashboards

次に、Web ブラウザを開いて http://192.168.10.60:5601 にアクセスします。インストールが成功すると、OpenSearch ダッシュボードのログイン ページが表示されます。

管理者ユーザーとパスワードを入力し、[ログイン] をクリックします。

ログインしたら、[データの追加] を選択して新しいデータを追加するか、[自分で探索] オプションをクリックします。

OpenSearch と OpenSearch ダッシュボード間の接続を確認するには、ダッシュボードから OpenSearch のステータスを確認する必要があります。

[管理] セクションで、[開発ツール] をクリックします。

コンソール セクション内で「GET /」と入力し、再生ボタンをクリックします。 OpenSearch および OpenSearch ダッシュボードへの接続に成功すると、次のページが表示されます。

結論

おめでとう! OpenSearch と OpenSearch Dashboard を Ubuntu 24.04 サーバーにインストールしました。 OpenSearch はシングル モードで実行され、インストールは HTTPS で保護されます。最後に、OpenSearch の認証を構成し、OpenSearch を OpenSearch ダッシュボードと統合しました。

関連記事: