Elasticsearch クラスタ設定

前提条件

  • まず最初に 各ノードでインストールと設定手順 を行う必要があります。
  • Elasticsearch クラスターの最小サイズは 3ノードであり、quorum システムを利用してデータの整合性を保証するには、常に奇数で増やす必要があります。
  • 3つのノードすべての間で通信が可能であり、各ノード間でポート 9200 および 9300 へアクセスできることを確認してください。

これらのポート番号を介した接続を許可するように、各ノードのファイアウォールの設定を忘れないでください。

設定

全ノードの Elasticsearch サービスを停止します。

systemctl stop elasticsearch.service

設定ファイル /etc/elasticsearch/elasticsearch.yml の以下の行を編集します。

#discovery.seed_hosts: ["host1", "host2"]
#cluster.initial_master_nodes: ["host1", "host2"]

該当行を コメントアウト し、各ノードの IP アドレスまたは URL を追加します。

discovery.seed_hosts: ["host1", "host2", "host3"]
cluster.initial_master_nodes: ["host1", "host2", "host3"]

IP アドレスでの例:

discovery.seed_hosts: ["172.42.42.101", "172.42.42.102", "172.42.42.103"]
cluster.initial_master_nodes: ["172.42.42.101", "172.42.42.102", "172.42.42.103"]

cluster.initial_master_nodes の行は設定ファイル内で 1回のみ定義されていることを確認してください。場合によっては、同じ行が同じファイルの異なる 2つの場所に表示されます。

ノードは初回に単独で(スタンドアロンで)開始されたため、サービスを開始する前にデータフォルダーの内容(デフォルトでは /var/lib/elasticsearch/)を削除する必要があります。 次のコマンドを実行します。

rm -rf /var/lib/elasticsearch/*

次に、すべてのノードでサービスを開始します。 次のコマンドで開始し、実行されていることを確認します。

systemctl start elasticsearch.service && systemctl status elasticsearch.service

次のような出力を得られます。

サービスが開始されたら、3つのノードがクラスターに正しく参加していることを確認する必要があります。任意のノードで次のコマンドを実行すると、同じ応答が返されます。

curl -XGET http://127.0.0.1:9200/_cat/nodes

ノードがポート 9200 および 9300 を介して通信する必要があることに加えて、Pandora FMS サーバおよび Pandora FMS Web コンソールからポート 9200 へアクセスできる必要があることを常に考慮してファイアウォールの設定を再度確認してください。ここまでの設定により、Pandora FMS ログストレージエンジンとして使用される Elasticsearch クラスターの準備が完了です。

データモジュールとテンプレート

単一ノードまたはデータクラスターのいずれかを本番環境に導入する前に、用途に応じて、対応する設定をこのノードまたはクラスターに適用することをお勧めします。 Pandora FMS によって生成されたインデックスの場合、それを行う最も簡単な方法は、フィールドと保存されたデータの構成を定義するためのテンプレートを定義することです。

テンプレートは、インデックスの作成時にのみ適用される設定です。 テンプレートを変更しても、既存のインデックスには影響しません。

  • 基本テンプレート を作成するには、ノードのデータモデルとテンプレート の手順に従います。
  • マルチノードテンプレート を定義するには、次の情報を考慮する必要があります。
    • テンプレート(JSON 形式)を設定する場合、ノードと同じ数の検索を設定する必要がありますが、レプリカを正しく設定するには、環境内のノードの数から 1を引く必要があります。

たとえば、3つのノードで構成された Elasticsearch を使用する Pandora FMS 環境では、number_of_search フィールドと number_of_replicas フィールドを次のように変更します。

{
 "index_patterns": ["pandorafms*"],
 "settings": {
   "number_of_shards": 3,
   "auto_expand_replicas" : "0-1",
   "number_of_replicas" : "2"
 },


これは非常に基本的な定義です。Elasticsearch 環境のサイズを正しく定義するには、この記事で説明している要素を考慮に入れることをお勧めします。

コマンドラインから、以下を実行して環境のテンプレートを一覧表示できます。

curl -X GET "localhost:9200/_cat/templates/*?v=true&s=name&pretty"

テンプレートの詳細を表示することもできます。たとえば、pandorafms 用に作成したテンプレートは次のようにして表示できます。

curl -X GET "localhost:9200/_template/pandorafms*?pretty"

定義した設定を JSON 形式で返します。

これらの操作は、ネイティブの Elasticsearch コマンドを使用して、Pandora FMS の Elasticsearch インターフェースから実行できます。

  • PUT _template/<template_name> {json_data}: 作成するテンプレートのデータを入力できます。
  • GET _template/><template_name>: 作成したテンプレートを表示できます。

Pandora FMS ドキュメント一覧に戻る