2.2 Configuring
es包含三个配置文件:
- elasticsearch.yml - es配置项
- jvm.options - jvm配置项
- log4j2.properties - 日志配置项目
用压缩包安装的配置文件目录在$ES_HOME/config下
2.3 Important es configuration
path.data & path.logs
用压缩包安装的es,data和logs目录在$ES_HOME目录下。通过以下方式,修改这两个目录:
path: logs: /var/log/elasticsearch data: /var/data/elasticsearch
path.data可以配置为多个目录:
path: data: - /mnt/elasticsearch_1 - /mnt/elasticsearch_2 - /mnt/elasticsearch_3
指定需要加入的集群:
cluster.name: logging-prod
指定节点名称:
node.name: prod-data-2
network.host
指定绑定的ip:
network.host: 192.168.1.10
discovery settings
es使用了一种自有的node-to-node发现和选主的机制,官方称为"Zen Discovery",其中有两个重要参数:
discovery.zen.ping.unicast.hosts
默认情况下,es节点会扫描本机9300~9305端口,形成集群。当集群扩展到一台server之外时,需要配置一个seed list,让节点互相发现。
discovery.zen.ping.unicast.hosts: - 192.168.1.10:9300 - 192.168.1.11 - seeds.mydomain.com
discovery.zen.minimum_master_nodes
为了防止脑裂,可以指定一个节点至少获得多少票才能成为master,一般设定为(master_eligible_nodes / 2) + 1,超过半数。
discovery.zen.minimum_master_nodes: 2
heap size、jvm heap dump path、gc logging
通过jvm.options配置Xms,Xmx参数
2.4 Important System Configuration
ulimit 设置ulimit -n 65536
disable swapping
virtual memory
es 使用mmapfs目录存储索引,操作系统默认的mmap counts可能较低。
sysctl -w vm.max_map_count=262144
或者在/etc/sysctl.conf中配置vm.max_map_count
number of threads 设置ulimit -u 4096
2.5 Bootstrap Checks
默认情况下,es的http和tcp端口会绑定为localhost,这样就无法加入其他集群,这种状态下会被识别为开发模式。
生成模式下,es默认会做启动检查。
2.6 启动ES
Running as a daemon
./bin/elasticsearch -d -p pid
关闭es
kill 'cat pid'