====== Elasticsearch クラスタ設定 ======
{{indexmenu_n>37}}
[[ja:documentation:start|Pandora FMS ドキュメント一覧に戻る]]
===== 前提条件 =====
* まず最初に [[:ja:documentation:pandorafms:monitoring:09_log_monitoring#設定|各ノードでインストールと設定手順]] を行う必要があります。
* 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"]
該当行を //[[:ja:documentation:pandorafms:introduction:03_glossary#パラメータのコメントアウトとアンコメント|コメントアウト]]// し、各ノードの 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
次のような出力を得られます。
{{ :wiki:pfms-systemctl_status_elasticsearch.service.png }}
サービスが開始されたら、3つのノードがクラスターに正しく参加していることを確認する必要があります。任意のノードで次のコマンドを実行すると、同じ応答が返されます。
curl -XGET http://127.0.0.1:9200/_cat/nodes
{{ :wiki:pfms-elasticsearch-curl-x-get-_cat-nodes.png }}
ノードがポート ''9200'' および ''9300'' を介して通信する必要があることに加えて、Pandora FMS サーバおよび Pandora FMS Web コンソールからポート ''9200'' へアクセスできる必要があることを常に考慮してファイアウォールの設定を再度確認してください。ここまでの設定により、Pandora FMS ログストレージエンジンとして使用される Elasticsearch クラスターの準備が完了です。
===== データモジュールとテンプレート =====
単一ノードまたはデータクラスターのいずれかを本番環境に導入する前に、用途に応じて、対応する設定をこのノードまたはクラスターに適用することをお勧めします。 **Pandora FMS** によって生成されたインデックスの場合、それを行う最も簡単な方法は、フィールドと保存されたデータの構成を定義するためのテンプレートを定義することです。
テンプレートは、インデックスの作成時にのみ適用される設定です。 テンプレートを変更しても、既存のインデックスには影響しません。
* **基本テンプレート** を作成するには、[[:ja:documentation:pandorafms:monitoring:09_log_monitoring#データもデールとテンプレート|ノードのデータモデルとテンプレート]] の手順に従います。
* **マルチノードテンプレート** を定義するには、次の情報を考慮する必要があります。
* テンプレート(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 環境のサイズを正しく定義するには、この記事で説明している要素を考慮に入れることをお勧めします。
* [[https://www.elastic.co/blog/how-many-shards-should-i-have-in-my-elasticsearch-cluster|https://www.elastic.co/blog/how-many-shards-should-i-have-in-my-elasticsearch-cluster]]
コマンドラインから、以下を実行して環境のテンプレートを一覧表示できます。
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/ {json_data}**: 作成するテンプレートのデータを入力できます。
* **GET _template/>**: 作成したテンプレートを表示できます。
{{ :wiki:getinterface.png }}
[[ja:documentation:start|Pandora FMS ドキュメント一覧に戻る]]