1.説明:
java:1.8以上の
スタートアップユーザー:root以外のユーザー
2.環境への備え
1.システムカーネルパラメーターを変更します(/etc/sysctl.conf)
cat <<EOF>> > /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
vm.overcommit_memory = 1
fs.file-max = 655350 #必须配置
vm.max_map_count = 655350 #必须配置
EOF
2.リソース制限構成ファイル(/etc/security/limits.conf)を変更します
echo "* soft noproc 20480" >> /etc/security/limits.conf
echo "* hard noproc 20480" >> /etc/security/limits.conf
echo "root soft nofile 655360" >> /etc/security/limits.conf
echo "root hard nofile 655360" >> /etc/security/limits.conf
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
echo "* - memlock unlimited" >> /etc/security/limits.conf
3.jdk1.8をインストールします
詳細については、java1.8のインストールを参照してください
3、クラスターをデプロイします
1. elasticsearchインストールパッケージ(バージョン6.5.1)をダウンロードします
cd /root
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1.tar.gz
2.インストールディレクトリを作成して解凍します
mkdir -p /u01/isi/application
cd /root
tar -xf elasticsearch-6.5.1.tar.gz -C /u01/isi/application
3.esを実行するためのユーザーを作成します
groupadd isi
useradd -g isi isi
4. esデータディレクトリとログディレクトリを作成し、権限を付与します
cd /u01/isi/application
mkdir elasticsearch-6.5.1/{
data,logs}
chown -R isi:isi elasticsearch-6.5.1
5.構成を変更します
1)メイン設定ファイル
cd /u01/isi/application/elasticsearch-6.5.1/config
cat elasticsearch.yml
...
cluster.name: my-cluster
node.name: 172.17.1.24
node.master: true
node.data: true
network.host: 0.0.0.0
http.port: 9200
transport.tcp.port: 9300
discovery.zen.ping.unicast.hosts: ["172.17.1.23:9300","172.17.1.24:9300"]
discovery.zen.minimum_master_nodes: 2
http.cors.enabled: true
http.cors.allow-origin: "*"
...
構成手順:
- cluster.name:クラスターの名前を参照します。クラスターの名前は一意である必要があります。ノードはクラスター名に従ってクラスターに追加されます。
- node.name:ノードの名前。簡単に識別できるようにカスタム名にすることができます。マスターはノードでもあることに注意してください。
- node.master:true / falseをクラスター内のマスターノードとして使用できます。
- node.data:true / falseはクラスター内のデータノードとして使用できます。
- node.ingest:falseの非データ前処理ノード。
- bootstrap.memory_lock:falseはメモリのロックを禁止します。jvmがスワップを開始するとesの効率が低下するため、スワップされないようにする必要が
ES_MIN_MEM
あり、ES_MAX_MEM
2つの環境変数を同じ値に設定できます。esに十分なメモリが割り当てられています。同時に、elasticsearchプロセスでメモリをロックできるようにする必要があり、Linuxではulimit -lunlimitedコマンドを使用できます。 - bootstrap.system_call_filter:false#システムコールフィルターを無効にします。
- path.log:ノードのログ保存パス。
- path.data:ノードのデータストレージパス。
- network.host:network.bind_hostとpublish_hostのデフォルト値を設定します。ここで、127.0.0.1に設定すると、ホストIPとは異なります。0.0.0.0に設定すると、すべてのホストがこのマシンに接続できます。curl -XGET "http://network.host/9200"を使用して、結果を確認できます。
- transport.tcp.port:クラスター間のポート。
- http.port:ノードのサービスポート。
- Discovery.zen.ping.unicast.hosts:これはIPのセットであり、クラスターへの参加に使用されることを意味します。通常、クラスター内の通信用のポートであるip:portが使用されます。
- http.cors.enabled:trueは、ヘッドを開く構成です。
- http.cors.allow-origin: "*"はヘッドを開く構成です。
- xpack.ml.enabled:false X-Pack機械学習機能を無効にするには、falseに設定します。
- Gateway.recover_after_nodes:1。クラスター内のNノードが開始されたときにデータ回復を設定します。デフォルトは1です。
- Discovery.zen.minimum_master_nodes:1。このパラメーターを設定して、クラスター内のノードがマスターとして認定されている他のNノードを認識できるようにします。デフォルトは1です。大きなクラスターの場合は、より大きな値(2〜4)を設定できます。
- Discovery.zen.ping.unicast.hosts:["host1"、 "host2:port"]クラスター内のマスターノードの初期リストを設定します。これらのノードを使用して、クラスターに参加する新しいノードを自動的に検出できます。
- Discovery.zen.ping.multicast.enabled:falseマルチキャスト検出ノードを開くかどうかを設定します。デフォルトはtrueです。
- Discovery.zen.ping.timeout:3sクラスター内で他のノードが自動的に検出されるときのping接続タイムアウト時間を設定します。デフォルトは3秒です。ネットワーク環境が悪い場合は、自動検出中のエラーを防ぐために、より高い値を使用できます。
2)jvm構成
cd /u01/isi/application/elasticsearch-6.5.1/config
cat jvm.options
...
-Xms16g
-Xmx16g
...
7.サービスを開始します
su isi
cd /u01/isi/application/elasticsearch-6.5.1/
./elasticsearch -d
8.検証
ps -ef |grep elasticsearch
netstat -tanlp|grep 9200
curl http://127.0.0.1:9200