イベントのインデックス作成をスケーラブルかつ分散型で行うには、Elasticsearchをクラスタモードでインストールする必要があります。Sentinel用にインストールするElasticsearchクラスタは、Sentinelデータのインデックス作成にのみ使用しなければなりません。
Elasticsearchをインストールする前に、次の前提条件を満たします。
/etc/sysctl.confファイルに次のプロパティを追加して、仮想メモリを設定します。
vm.max_map_count=262144
/etc/security/limits.confファイルに次のプロパティを追加して、ファイル記述子を設定します。
elasticsearch hard nofile 65536
elasticsearch soft nofile 65536
elasticsearch soft as unlimited
重要:上記の前提条件を完了した後、sysctl -pコマンドを実行して、ファイルへの変更を再ロードしてください。
Elasticsearchと必要なプラグインをElasticsearchクラスタの各ノードにインストールする必要があります。
Elasticsearchをインストールし、設定するには次のようにします。
ElasticsearchでサポートされているJDKバージョンをインストールします。
Elasticsearch RPMの認定バージョンをダウンロードします。Elasticsearchの認定バージョンの詳細とダウンロードURLについては、『Technical Information for Sentinel』ページを参照してください。
Elasticsearchをインストールします。
rpm -i elasticsearch-<version>.rpm
RPMのインストール後の手順として画面で説明されているタスクを完了します。
次のコマンドを実行して、ElasticsearchユーザがJavaにアクセスできることを確認します。
sudo -u elasticsearch java -version
次の情報を更新または追加して、/etc/elasticsearch/elasticsearch.ymlファイルを設定します。
プロパティと値 |
備考 |
---|---|
cluster.name: <Elasticsearch _cluster_name> |
指定するクラスタ名は、すべてのノードで同じである必要があります。 |
node.name: <node_name> |
ノード名は、各ノードで固有である必要があります。 |
network.host: _<networkInterface>:ipv4_ |
|
discovery.zen.ping.unicast.hosts: ["<FQDN of elasticsearch node1>", "<FQDN of elasticsearch node2>", "以下同様"] |
|
thread_pool.bulk.queue_size: 300 |
|
thread_pool.search.queue_size: 10000 |
検索キューのサイズがその制限に達すると、Elasticsearchではキュー内で保留中の検索要求が破棄されます。 次の計算に基づき、検索キューのサイズを増やすことができます。threadpool.search.queue_size = 1ダッシュボードのユーザごとのウィジェットクエリの平均数x1日のインデックスごとのシャード数x日数(検索期間) |
index.codec: best_compression |
|
path.data: ["/<es1>", "/<es2>"] |
データを複数の独立したディスクまたは場所に分散させ、ディスクI/Oのレイテンシを短縮します。 Elasticsearchデータを格納するための複数のパスを設定します。たとえば、/es1、/es2などです。 最高のパフォーマンスと管理性を得るため、それぞれのパスを個別の物理ディスク(JBOD)にマウントします。 |
/etc/elasticsearch/jvm.optionsファイルにあるElasticsearchヒープのデフォルトサイズを更新します。
ヒープサイズは、サーバメモリの50%である必要があります。たとえば、24GBのElasticsearchノードの場合、12GBをヒープサイズとして割り当てると、最適なパフォーマンスが得られます。
Elasticsearchを開始します。
/etc/init.d/elasticsearch start
Elasticsearchクラスタの各ノードで上記の手順をすべて繰り返します。