====== OpenSearch のインストールと設定 ====== {{indexmenu_n>38}} OpenSearch を使用した Pandora FMS 設定は、「[[:ja:documentation:pandorafms:monitoring:09_log_monitoring#データモデルとテンプレート|ログの収集と監視]]」を参照してください。 ===== サーバ要件 ===== Pandora FMS サーバと OpenSearch を独立したサーバに分散することをお勧めします。 * Rocky Linux 8 / RHEL 8 / Ubuntu 22.04 (推奨オペレーティングシステム) * 最小 4 GB RAM (テスト、開発)、OpenSearch インスタンスごとに 8 GB の RAM を推奨 (最小基本要件、各環境および処理または保存されるデータ量に応じて、特定の要件を見積もる必要があります)。 * OpenSearch を動作させるノードでは SWAP を無効にします。 * 最小 4 つの CPU コア (最小基本要件。各環境および処理または保存されるデータ量に応じて、特定の要件を見積もる必要があります)。 * 50 GB システムストレージ。 * 100 GB OpenSearch ストレージ (最小基本要件。各環境および処理または保存されるデータ量に応じて、特定の要件を見積もる必要があります)。 * Pandora FMS サーバおよび Web コンソールから OpenSearch API (デフォルトポート ''9200/TCP'') およびクラスタノード間の接続 (デフォルトポート ''9300/TCP'')。 これらの機能を備えた単一ノード環境では、1 日あたり最大 1 GB のデータを保存でき、30 日間保存できます。 より優れたデータ復元力、より優れたデータ処理とストレージ、およびフォールトトレランスが必要な場合は、OpenSearch クラスターの構成が必要になります (データの整合性を保証するには、少なくとも 3 つのノードが必要です)。 クラスタ環境に切り替えることでノード間の負荷分散も可能となり、環境の処理能力は2倍(3ノードの場合)となります。 異なるノードを同時に使用する場合、**負荷分散システムが必要になります** ([[https://pandorafms.com/guides/public/books/balanceo-de-carga-con-keepalived|Keepalived]] など)。 ===== OpenSearch のインストールと設定 ===== インストールに関する OpenSearch の公式ドキュメント: [[https://opensearch.org/docs/latest/install-and-configure/install-opensearch/index/|https://opensearch.org/docs/latest/install-and-configure/install-opensearch/index /]] ==== インストール ==== **マシン上で OpenSearch を実行する前に**、パフォーマンスを向上させ、OpenSearch で使用できるメモリマップの数を増やすために、ホスト上のメモリページングとスワップを無効にする必要があります。 詳細については、"Important Settings" を参照してください。 [[https://opensearch.org/docs/latest/install-and-configure/install-opensearch/index/#important-settings|https://opensearch.org/docs/latest/install-and-configure/install-opensearch/index/#important-settings]] # Disable memory paging and swapping. sudo swapoff -a # Edit the sysctl config file that defines the host's max map count. sudo vi /etc/sysctl.conf # Set max map count to the recommended value of 262144. vm.max_map_count=262144 # Reload the kernel parameters. sudo sysctl -p Rocky Linux 8 の場合は、RPM パッケージでのインストールをお勧めします。 パッケージ一覧: [[https://opensearch.org/downloads.html|https://opensearch.org/downloads.html]] 公式インストールドキュメント: [[https://opensearch.org/docs/latest/install-and-configure/install-opensearch/rpm/|https://opensearch.org/docs/latest/install-and-configure/install-opensearch/rpm/]] OpenSearch をインストールしたら、Pandora FMS から OpenSearch へのアクセスを確認する必要があります。 このテストを実行する前に、[[:ja:documentation:pandorafms:technical_annexes:38_opensearch_installation#ノード設定|ノードまたはクラスタを設定]]する必要があります。 このインストールチェックでは、次のコマンドを実行します。 curl -X GET https://:9200 -u 'admin:admin' --insecure 次のような応答が返ります。 { "name" : "hostname", "cluster_name" : "opensearch", "cluster_uuid" : "6XNc9m2gTUSIoKDqJit0PA", "version" : { "distribution" : "opensearch", "number" : , "build_type" : , "build_hash" : , "build_date" : , "build_snapshot" : false, "lucene_version" : , "minimum_wire_compatibility_version" : "7.10.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "The OpenSearch Project: https://opensearch.org/" } デフォルトでは、OpenSearch のインストールでは SSL、ユーザ名、パスワードが有効になっており、これが推奨事項です。 [[:ja:documentation:pandorafms:technical_annexes:38_opensearch_installation#opensearch_ユーザ管理|デフォルトのユーザ名とパスワードを変更]]することをお勧めします。 ===== ノード設定 ===== まず設定ファイル ''/etc/opensearch/opensearch.yml'' を編集します。**その後、OpenSearch サービスを再起動します**。 このファイルには、OpenSearch サービスのすべてのパラメータ設定が含まれています。 詳細については、公式ドキュメントを参照してください。 [[https://opensearch.org/docs/latest/install-and-configure/configuration/|https://opensearch.org/docs/latest/install-and-configure/configuration/]] サービスを開始して Pandora FMS で使用するために必要な最低限の設定。 * ポート番号 # ---------------------------------- Network # Set the bind address to a specific IP (IPv4 or IPv6): network.host: 0.0.0.0 # Set a custom port for HTTP: http.port: 9200 # For more information, consult the network module documentation. * データおよびログの保存場所 # ----------------------------------- Paths # Path to directory where to store the data (separate multiple locations by comma): path.data: /var/lib/opensearch # Path to log files: path.logs: /var/log/opensearch 次の行のコメントを外して定義することも必要になります。 cluster.name: pandorafms node.name: ${HOSTNAME} network.host: 0.0.0.0 * ''cluster.name'': これは、グループまたはクラスタの名前になります。 * ''node.name'': ''${HOSTNAME}'' システム変数を使用してノードに名前を付けると、ホストの名前が自動的に取得されます。 * ''network.host'' の値 ''0.0.0.0'' により、OpenSearch はすべてのネットワークインターフェイス (NIC) で待ち受けできます。 特定の NIC を使用するには、対応する特定の値を入力します。 単一ノードを使用する場合は、設定ファイルに次の行を追加して、単一ノードが起動できるようにします。 discovery.type: single-node クラスターを使用する場合は、''discovery.seed_hosts'' パラメータを設定する必要があります。 discover.seed_hosts : ["ip:port", "ip", "ip"] OpenSearch の最新バージョンでは、Java® 仮想マシンのメモリ管理は自動的に行われ、実稼働環境ではこの方法で管理することをお勧めします。そのため、JVM 値を変更する必要はありません。 OpenSearch を開始するには、次のように実行します。 systemctl start opensearch.service 再起動には ''restart''、停止には ''stop''、状態を確認するには ''status'' を使用します。 サービスが開始しない場合は、''/var/log/opensearch/'' にあるログ (この場合はファイル ''pandorafms.log'' またはノードに指定された名前) を確認してください。 OpenSearch のインストールと動作の確認は、次のコマンドで行なえます。 curl -X GET https:// -u 'admin:admin' --insecure ===== OpenSearch クラスタのセットアップ ===== OpenSearch クラスタを設定するには、公式ドキュメントに従ってください。 [[https://opensearch.org/blog/optimize-opensearch-index-shard-size/|https://opensearch.org/blog/optimize-opensearch-index-shard-size/]] ===== OpenSearch ユーザ管理 ===== デフォルトのパスワードを ''admin'' から変更するには、一連の手順に従う必要があります。 まず、OpenSearch によってインストールされた Java® JDK を使用していずれかのツールを使用できるように変数をエクスポートします。 export OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk 次に、ハッシュ化されたパスワードを生成して OpenSearch 設定ファイルに配置するために、次のスクリプトを使用します (''< password >'' を使用するパスワードに置き換えます)。 /usr/share/opensearch/plugins/opensearch-security/tools/hash.sh -p 例: {{ :wiki:opensearch-hash_sh.png }} 次に、テキストエディタ **vim** または **nano** でファイル ''/etc/opensearch/opensearch-security/internal_users.yml'' を開き、必要なユーザのパスワードを変更します。 Pandora FMS で使用するために ''admin'' ユーザのみを残すことをお勧めします。他のユーザを維持する必要はありません。 ファイル例: {{ :wiki:opensearch-internal_users_yml.png }} 変更を有効にするには、以下を実行する必要があります。 cd /usr/share/opensearch/plugins/opensearch-security/tools OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -cd /etc/opensearch/opensearch-security/ -cacert /etc/opensearch/root-ca.pem -cert /etc/opensearch/kirk.pem -key /etc/opensearch/kirk-key.pem -icl -nhnv-t internalusers -icl -nhnv -cacert /etc/opensearch/root-ca.pem -cert /etc/opensearch/kirk.pem -key /etc/opensearch/ kirk-key.pem 最後のメッセージ ''Done with success'' が表示されます。 新しいパスワードを確認するには (''pandora'' を使用した前の例に従って) 次のようにします: {{ :wiki:opensearch-curl_ku.png }} OpenSearch でのユーザ管理の詳細については、以下を参照してください。 * [[https://opensearch.org/docs/latest/security/configuration/yaml/|https://opensearch.org/docs/latest/security/configuration/yaml/]] * [[https://opensearch.org/docs/latest/security/access-control/users-roles/#create-users|https://opensearch.org/docs/latest/security/access-control/users-roles/#create-users]] ===== OpenSearch を使用する Pandora FMS 設定 ===== OpenSearch を使用するように Pandora FMS を設定するには、"[[:ja:documentation:pandorafms:monitoring:09_log_monitoring#データモデルとテンプレート|ログ収集と監視]]" を参照してください。 ==== データモデルとテンプレート ==== 本番環境に設定する前に、それが単一ノードであってもデータクラスタであっても、その用途に基づいてこのノードまたはクラスタに対応する設定を適用することをお勧めします。 **Pandora FMS** によって生成されたインデックスの場合、最も効果的な方法は、フィールドと保存されたデータの設定を定義するテンプレートを定義することです。 テンプレートは、インデックスの作成時にのみ適用される設定です。 テンプレートを変更しても、既存のインデックスには影響しません。 **基本テンプレート**を作成するには、次のフィールドを定義するだけで済みます。 curl -X PUT -ku 'admin:admin' https://:9200/_index_template/pandorafms -H 'Content-Type: application/json' -d' { "index_patterns": [ "pandorafms*" ], "template": { "aliases": { "pandorafms_logs": {} }, "settings": { "number_of_shards": 1, "auto_expand_replicas" : "0-1", "number_of_replicas": "0" }, "mappings" : { "properties" : { "agent_id" : { "type" : "long" }, "group_id" : { "type" : "long" }, "group_name" : { "type" : "text" }, "logcontent" : { "type" : "text" }, "source_id" : { "type" : "text" }, "suid" : { "type" : "text" }, "type" : { "type" : "text" }, "utimestamp" : { "type" : "long" }, "@timestamp": { "type": "date" } } } } } ' [[:ja:documentation:pandorafms:monitoring:09_log_monitoring|Pandora FMS (メニュー)]] インターフェイスを通じて、上記のテンプレートをアップロードできます。 * **PUT _template/**: この例では、 ''PUT _template/pandorafms'' です。 Pandora FMS インターフェイス自体を通じてテンプレートを確認することもできます。 * **GET _template/**: この例では、 ''GET _template/pandorafms'' です。 ==== 複数ノードテンプレート ==== **複数ノードテンプレート**を定義するには、次の情報を考慮してください。 * テンプレート (JSON 形式) を設定する場合、**存在するノードと同じ数のシャードを設定する必要があります**。ただし、レプリカを正しく設定するには、**環境内のノードの数から 1 を減算します**。 たとえば、3 つのノードが設定された Pandora FMS 環境で、''number_of_shards'' フィールドと ''number_of_replicas'' フィールドを変更すると、次のようになります。 { "index_patterns": ["pandorafms*"], "settings": { "number_of_shards": 3, "auto_expand_replicas" : "0-1", "number_of_replicas" : "2" }, コマンドラインから次のコマンドを実行して、環境テンプレートを一覧表示できます。 curl -X GET "localhost:9200/_cat/templates/*?v=true&s=name&pretty" 次のコマンドを実行すると、たとえば ''pandorafms'' 用に作成されたテンプレートの詳細を確認することもできます。 curl -X GET "localhost:9200/_template/pandorafms*?pretty" これにより、定義した設定が JSON 形式で返されます。 これらの操作は、Pandora FMS インターフェイスを通じて実行できます。 * **PUT _template/ {json_data}**: 作成するテンプレートのデータを入力します。 * **GET _template/>**: 作成したテンプレートを確認できます。 OpenSearch を使うように Pandora FMS を設定するには、"[[:ja:documentation:pandorafms:monitoring:09_log_monitoring|ログ収集と監視]]" を参照してください。 [[ja:documentation:start|Pandora FMS ドキュメント一覧に戻る]]