安装Elasticsearch
//下载tar.gz软件包 elasticsearch-6.1.0.tar.gz //安装 tar xf elasticsearch-6.1.0.tar.gz -C /opt cd /opt ln -s elasticsearch-6.1.0 elasticsearch 运行Elasticsearch 默认情况下,Elasticsearch在前台运行,将其日志打印到标准输出(stdout),停止通过Ctrl-C ./bin/elasticsearch 作为守护进程运行 要将Elasticsearch作为守护程序运行,请-d在命令行上指定,并使用以下-p选项将进程ID记录到文件中 ./bin/elasticsearch -d -p pid 要关闭Elasticsearch,请杀死pid文件中记录的进程ID kill `cat pid`
目录说明
bin 二进制脚本,包括elasticsearch启动节点和elasticsearch-plugin安装插件 config 配置文件,包括elasticsearch.yml, jvm.options data 在节点上分配的每个索引/分片的数据文件的位置。可以容纳多个地点 logs 日志文件位置 plugins 插件文件的位置。每个插件将被包含在一个子目录中
重要的Elasticsearch配置(elasticsearch.yml)
path.data和path.logs
默认配置: path: logs: /var/log/elasticsearch data: /var/data/elasticsearch
在生产环境中几乎肯定的需要更改数据和日志文件夹的位置。如果保留在默认位置,则在Elasticsearch升级到新版本时,这些文件夹被删除的风险很高
path.data可以设置为多条路径,在这种情况下,所有的路径将会被用于存储数据(虽然属于单个碎片文件将全部存储相同的数据路径上)
path: data: - /mnt/elasticsearch_1 - /mnt/elasticsearch_2 - /mnt/elasticsearch_3
cluster.name
一个集群中,所有节点的cluster.name是相同的。默认名称是elasticsearch,但是我们应该改为集群用途适当的名称
cluster.name:logging-prod
确保不要在不同的环境中重复使用相同的集群名称,否则可能会导致节点加入错误的集群
node.name
默认情况下,Elasticsearch将随机生成的uuid的第一个字符作为节点ID。请注意节点ID是持久的,并且节点重启时不会更改,因此默认节点名称也不会更改
我们应该配置一个更有意义的名字
node.name: prod-data-2
也可以设置为服务器的主机名
node.name: ${HOSTNAME}
bootstrap.memory_lock
要尽量到进程的地址空间锁定到RAM中,防止任何Elasticsearch内存被交换出去
bootstrap.memory_lock:true
network.host
默认情况下,Elasticsearch只绑定到回送地址 - 例如127.0.0.1 和[::1]。这足以在服务器上运行单个开发节点
为了与其他服务器上的节点进行通信并形成群集,您的节点将需要绑定到非环回地址。虽然有许多 网络设置,通常您只需要配置 network.host
network.host:192.168.88.1
discovery.zen.ping.unicast.hosts
开箱即用,没有任何网络配置,Elasticsearch将绑定到可用的环回地址,并将扫描端口9300到9305,尝试连接到运行在同一服务器上的其他节点。这提供了自动集群体验,而无需进行任何配置。
当需要与其他服务器上的节点组成群集时,您必须提供群集中其他节点的种子列表,这些节点可能是活的并且可联系的。这可以指定如下
discovery.zen.ping.unicast.hosts: - 192.168.1.10:9300 - 192.168.1.11 #如果未指定 ,端口将默认为transport.profiles.default.port - seeds.mydomain.com #解析为多个IP地址的主机名将尝试所有解析的地址
discovery.zen.minimum_master_nodes
为防止数据丢失,配置该discovery.zen.minimum_master_nodes设置至关重要, 以便每个符合主节点的节点都知道为了形成群集而必须可见的主节点的最小数量
如果没有这个设置,那么遭受网络故障的集群就有可能将集群分成两个独立的集群 - 分裂的大脑 - 这将导致数据丢失
为了避免脑裂,应将此设置设置为符合主数据节点的法定人数
(master_eligible_nodes / 2)+ 1
换句话说,如果有三个主要节点,则最小主节点应设置为(3 / 2) + 1或2
discovery.zen.minimum_master_nodes:2
JVM堆转储路径
RPM和Debian软件包分发默认配置JVM倾倒在内存不足异常给堆/var/lib/elasticsearch
如果该路径不适合用于存储堆转储,则应修改条目-XX:HeapDumpPath=/var/lib/elasticsearch中 jvm.options到备用路径
如果你指定一个文件名而不是一个目录,JVM将重复使用同一个文件; 这是防止堆转储堆积在堆转储路径中的一种机制。或者,您可以通过操作系统配置计划任务,以删除比配置的时间早的堆转储
请注意,归档分发默认情况下不配置堆转储路径。相反,JVM将默认转储到Elasticsearch进程的工作目录。如果你想配置一个堆转储路径,您应该修改条目#-XX:HeapDumpPath=/heap/dump/path中 jvm.options删除注释标记#,并指定一个实际的路径