Ubuntu 24.04 に OpenSearch をインストールする方法
このチュートリアルはこれらの OS バージョン用に存在します
- Ubuntu 24.04 (Noble Numbat)
- Ubuntu 22.04 (ジャミー ジェリーフィッシュ)
このページでは
- 前提条件
- OpenSearch リポジトリの追加
- OpenSearch と OpenSearch ダッシュボードのインストール
- OpenSearch の構成
TLS/SSL 証明書による OpenSearch の保護
- ルート証明書の生成
- 管理者証明書の生成
- ホストまたはサーバー証明書の生成
- 証明書のセットアップ
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 ダッシュボードと統合しました。