HAProxy を使用した OpenSearch クラスタのバランシング
概要
このドキュメントでは、HAProxy を使用したバランスの取れた OpenSearch クラスタの設定について説明します。
OpenSearch クラスタのインストールと設定
OpenSearch クラスタのインストールと設定については、次の公式ドキュメントに従います。
“Pandora FMS 用の OpenSearch クラスタの設定”
完了すると、機能的なクラスタを備えたマルチノードアーキテクチャが完成します。 アーキテクチャの例として、3ノードクラスタについて説明します。
os-node1os-node2os-node3
HAProxy のインストールと設定
別のマシンに HAProxy バランサをインストールして設定します。
今回のケースでは、Rocky Linux 9 OS を搭載した Pandora FMS ノードと同じマシンでこれを行いますが、別のマシンでも構いません。
設定ファイルを編集するために、HAProxy および Vim パッケージをインストールします (Pandora FMS ノードの場合は、Vim はデフォルトですでにインストールされているはずです)。
dnf install -y haproxy vim
インストールが完了したら、デフォルトの HAProxy 設定ファイルのコピーを作成します。
cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.default
ここで、次の設定でファイル /etc/haproxy/haproxy.cfg を編集します。
global #log /dev/log local0 log /dev/log local1 notice maxconn 4096 user haproxy group haproxy daemon tune.ssl.default-dh-param 2048 defaults log global mode http #option httplog option dontlognull timeout connect 5s timeout client 30s timeout server 30s retries 3 # ==================================== # Frontend -- HTTP # ==================================== frontend opensearch_frontend #bind *:9200 bind *:9200 ssl crt /etc/haproxy/certs/haproxy.pem default_backend opensearch_backend # ==================================== # Backend -- Nodos HTTPS con auth # ==================================== backend opensearch_backend balance roundrobin # Conectar a backends HTTPS server node1 <ip-node1>:9200 ssl verify none check server node2 <ip-node2>:9200 ssl verify none check server node3 <ip-node3>:9200 ssl verify none check # ==================================== # Stats page optional # ==================================== listen stats bind *:8404 mode http stats enable stats uri /haproxy?stats stats refresh 10s stats auth admin:Pandor4!
<ip-nodex> をクラスター内の各 OpenSearch ノードの IP アドレスに置き換え、クラスターが大きい場合は同じ形式に従ってノードを追加します。
保存して終了します。
これは参考の設定ファイルなので、タイムアウト、再試行、SSL 証明書の検証など、環境のニーズに応じていくつかのオプションを設定できます。
統計ページ
設定に統計 URL を追加します。これは HAProxy の状態監視に役立ちます。これはオプションであり、Stats page optional で始まるブロックを削除することで無効にできます。
公開IPアドレスを制限したり、ポートを変更したり、アクセス認証情報を変更したりすることでアクセスを制限することもできます。
この例では、統計情報ウェブサイトは以下の通りです。
http://<nodo.pandorafms>:8404/haproxy?stats
認証情報 admin:Pandor4! を使用します。
HTTPS HAProxy の証明書
ご覧のとおり、以下の証明書を参照が、
bind *:9200 ssl crt /etc/haproxy/certs/haproxy.pem
設定ファイルに記載されています。本番環境では、信頼できる CA によって署名された公式証明書を使用するのが最適です。ラボテストでは、以下のコマンドで作成した自己生成証明書を使用します。
sudo mkdir -p /etc/haproxy/certs # Generate private key and self-signed certificate sudo openssl req -x509 -nodes -days 365 \ -newkey rsa:2048 \ -keyout /etc/haproxy/certs/haproxy.key \ -out /etc/haproxy/certs/haproxy.crt \ -subj "/CN=haproxy.local"
次に、鍵と証明書を連結して .pem ファイルを作成します。有効な証明書を使用する場合は、証明書ファイルを使用する点を除き、手順は同様です。
# Combine certificate and key into a single file (required by HAProxy) sudo cat /etc/haproxy/certs/haproxy.key /etc/haproxy/certs/haproxy.crt > /etc/haproxy/certs/haproxy.pem
HAProxy サービスを再起動します。
systemctl restart haproxy
HAProxy をインストールしたノードのターミナルから実行して、HTTPS を使用して OpenSearch ノードにアクセスできることを確認します。
curl -XGET -ku admin:'P4nd0r4!FMS' "https://127.0.0.1:9200/_cat/nodes?v"
API ルートに対して数回の呼び出しを行うと、呼び出しがノード間で分散されていることを確認できます。
curl -XGET -ku admin:'P4nd0r4!FMS' "https://127.0.0.1:9200/
Pandora FMS コンソールでの設定
HAProxy は他のインスタンスにインストールすることも可能ですが、クラスタにマシンを追加する手間を省くため、Pandora FMS ノード自体に直接インストールしました。そのため、設定には localhost を使用します。ただし、別のマシンに HAProxy が設定されている場合は、そのマシンの IP アドレスを使用する必要があります。
Pandora FMS コンソールの設定セクション 管理(Management) → セットアップ(Settings) → システム設定(System Settings) → ログ収集(Log collector) に移動し、必要なフィールドに入力して、証明書を設定している場合は HTTPS を使用するを有効にします。
OpenSearch が Pandora FMS に設定され接続されたことを示す緑色のチェックマークが表示されます。




