Elasticsearch運維実戦の1--クラスタ計画
4380 ワード
本番環境で使用できるelasticsearchクラスタを計画します.
クラスタノード分割
クラスタ全体のノードには、次の3つの主要なタイプがあります. Master nodes--クラスタの状態を維持し、indexデータを保存しない.ハードウェアの要求:一般的な機械でいい.esプロセスに16 gのメモリ を割り当てる. Data Nodes--indexのデータだけを保存し、Master nodesハードウェアの要求に選ばれない:構成要求が高ければ高いほど、大きなハードディスクを使用し、SSDハードディスク にアクセスできる条件がある. Client Nodes--主に負荷等化に用いられ、Master nodeに選ばれず、indexデータハードウェアの要求も保存されない:24コアCPU、64 Gメモリまたはそれ以上の 1つの合理的なクラスタは3つのmaster nodes,1から複数のdata nodes,少なくとも1つのclient nodeを含むべきである.
インストールと構成
汎用構成、centosを例にrpmインストールパッケージを使用
修正/etc/sysconfig/elasticsearch、修正ES_HEAP_SIZEとJAVA_OPTSの内容は、elasticsearchが推奨する最大メモリは32 Gで、
変更/etc/security/limits.conf、以下の内容を追加
/etc/elasticsearch/elasticsearch.ymlコンテンツ構成 masterノード dataノード
elasticsearchに複数のハードディスクを構成している場合は、DATA_を変更できます.DIRの値は、複数のディレクトリがカンマ(,)で区切られているクライアントノード
elasticsearchの起動
注意が必要なのはelasticsearchがcentosでservice elasticsearch restartを使うと効果が得られない場合があり、別々にやる必要があることです
nginx逆エージェント
クラスタに対するクエリーの内容を記録するには、nginxを逆エージェントとして使用することを推奨し、nginxはclient nodeにインストールされ、conf.d/default.confの最も簡単な構成は以下の通りです.
プラグインのインストール
以下のプラグインのインストールを推奨します. kopf互換es 1.x, 2.x
kopf head互換es 1.x bigdesk互換es 1.x
クラスタノード分割
クラスタ全体のノードには、次の3つの主要なタイプがあります.
インストールと構成
汎用構成、centosを例にrpmインストールパッケージを使用
sudo rpm -ivh elasticsearch-version.rpm
sudo chkconfig --add elasticsearch
修正/etc/sysconfig/elasticsearch、修正ES_HEAP_SIZEとJAVA_OPTSの内容は、elasticsearchが推奨する最大メモリは32 Gで、
ES_HEAP_SIZE=32g
JAVA_OPTS="-Xms32g"
変更/etc/security/limits.conf、以下の内容を追加
* hard memlock unlimited
* soft memlock unlimited
/etc/elasticsearch/elasticsearch.ymlコンテンツ構成
node.master: true
node.data: false
discovery.zen.ping.unicast.hosts: ["master1","master2","master3"]
network.host: ${HOSTNAME}
node.master: false
node.data: true
discovery.zen.ping.unicast.hosts: ["master1","master2","master3"]
network.host: ${HOSTNAME}
elasticsearchに複数のハードディスクを構成している場合は、DATA_を変更できます.DIRの値は、複数のディレクトリがカンマ(,)で区切られている
node.master: false
node.data: false
discovery.zen.ping.unicast.hosts: ["master1","master2","master3"]
network.host: ${HOSTNAME}
elasticsearchの起動
sudo service elasticsearch start
注意が必要なのはelasticsearchがcentosでservice elasticsearch restartを使うと効果が得られない場合があり、別々にやる必要があることです
sudo kill -9 `pgrep -f elasticsearch`
sudo service elasticsearch start
nginx逆エージェント
クラスタに対するクエリーの内容を記録するには、nginxを逆エージェントとして使用することを推奨し、nginxはclient nodeにインストールされ、conf.d/default.confの最も簡単な構成は以下の通りです.
upstream elasticsearch {
server 127.0.0.1:9200;
}
server {
gzip on;
access_log /var/log/nginx/access.log combined;
listen 80 default_server;
server_name _;
#charset koi8-r;
#access_log logs/host.access.log main;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://elasticsearch;
}
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
プラグインのインストール
以下のプラグインのインストールを推奨します.
kopf
./elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf/{branch|version}