天天看点

Elasticsearch-6.4.0配置解析

来源:elastic search官网翻译而来!

1. ../config/elasticsearch.yml

# ======================== Elasticsearch Configuration =========================

#

# NOTE: Elasticsearch comes with reasonable defaults for most settings.

#       Before you set out to tweak and tune the configuration, make sure you

#       understand what are you trying to accomplish and the consequences.

#

# The primary way of configuring a node is via this file. This template lists

# the most important settings you may want to configure for a production cluster.

#

# Please consult the documentation for further information on configuration options:

# https://www.elastic.co/guide/en/elasticsearch/reference/index.html

正题

# ---------------------------------- Cluster -----------------------------------

#

# 节点只能cluster.name在与群集中的所有其他节点共享群集时才能加入群集。

# 默认名称是elasticsearch,但您应将其更改为适当的名称,该名称描述了群集的用途。

# 确保不要在不同的环境中重用相同的群集名称,否则最终会导致节点加入错误的群集。

#

cluster.name: logging-prod

#设置一个节点的并发数量,有两种情况,一种是在初始复苏过程中: 

cluster.routing.allocation.node_initial_primaries_recoveries: 4 

#另一种是在添加、删除节点及调整时: 

cluster.routing.allocation.node_concurrent_recoveries: 2

#

# ------------------------------------ Node ------------------------------------

#

# 默认情况下,Elasticsearch将使用随机生成的UUID的前七个字符作为节点ID。

# 请注意,节点ID是持久的,并且在节点重新启动时不会更改,因此默认节点名称也不会更改。

# 值得配置一个更有意义的名称,它还具有在重新启动节点后保持持久性的优点:

# 该node.name如下,也可以设置为服务器的主机名:node.name: $ {HOSTNAME}

#

node.name: prod-data-2

#是否允许作为主节点,默认值为true: 

node.master: true

#是否存储数据,即存储索引片段,默认值为true: 

node.data: true

#注意: 

#master和data同时配置会产生一些奇异的效果: 

#当master为false,而data为true时,会对该节点产生严重负荷;

#当master为true,而data为false时,该节点作为一个协调者;

#当master为false,data也为false时,该节点就变成了一个负载均衡器。 

#你可以通过连接http://localhost:9200/_cluster/health或者http://localhost:9200/_cluster/nodes,或者使用插件http://github.com/lukas-vlcek/bigdesk或http://mobz.github.com/elasticsearch-head来查看集群状态。

#节点自定义属性,可用于后期集群进行碎片分配时的过滤: 

node.attr.rack: r1

#

# ----------------------------------- Paths ------------------------------------

#

#

# 如果您使用.zip或.tar.gz存档,则data和logs 目录是子文件夹$ES_HOME。

# 如果这些重要文件夹保留在其默认位置,则在将Elasticsearch升级到新版本时,存在删除它们的高风险。

# 在生产使用中,您几乎肯定会想要更改数据和日志文件夹的位置:

# 路径:

#  logs:/ var / log / elasticsearch

#  data:/ var / data / elasticsearch

# 该RPM和Debian发行版已经使用自定义路径,data和logs。

# 该path.data设置可以被设置为多条路径,在这种情况下,

# 所有的路径将被用于存储数据(虽然属于单个碎片文件将全部存储相同的数据路径上):

# 路径:

#   数据:

#    -  / mnt / elasticsearch_1

#    -  / mnt / elasticsearch_2

#    -  / mnt / elasticsearch_3

#

#索引数据

path.data: /path/to/data

#日志文件

path.logs: /path/to/logs

#可以选择多个位置,这样在创建时就有更多的自由路径,如: 

#path.data: /path/to/data1,/path/to/data2

#配置文件所在的位置,即elasticsearch.yml和logging.yml所在的位置: (没有搞懂怎么用,参考)

#path.conf: /path/to/conf

#临时文件位置:(没有搞懂怎么用,参考)

#path.work: /path/to/work

#插件安装位置: (没有搞懂怎么用,参考)

#path.plugins: /path/to/plugins

#插件托管位置,若列表中的某一个插件未安装,则节点无法启动: (没有搞懂怎么用,参考)

#plugin.mandatory: mapper-attachments,lang-groovy

#

# ----------------------------------- Memory -----------------------------------

#

# 启动时锁定内存

bootstrap.memory_lock: true

# 确保堆大小设置为系统中可用内存的一半左右,并允许进程的所有者使用此限制

# 当系统交换内存时,Elasticsearch的性能很差

#

# ---------------------------------- Network -----------------------------------

# 默认情况下,Elasticsearch仅绑定到环回地址 - 例如127.0.0.1 和[::1]。

# 这足以在服务器上运行单个开发节点。

#

# 实际上,可以从$ES_HOME 单个节点上的相同位置启动多个节点。

# 这对于测试Elasticsearch形成集群的能力非常有用,但它不是推荐用于生产的配置。

#

# 为了在其他服务器上形成包含节点的集群,您的节点将需要绑定到非环回地址。

# 虽然有许多 network settings,但通常您需要配置的是 network.host:

#

# 该network.host设置也了解一些特殊的值, 比如 _local_,_site_,_global_和

# modifiers like:ip4和:ip6,其中的细节中可以找到的特殊值network.host编辑。

#

# 只要您提供自定义设置network.host,Elasticsearch就会假定您正在从开发模式

# 转移到生产模式,并将许多系统启动检查从警告升级到异常。有关详细信息,

# 请参阅开发模式与生产模式编辑。

#

# network.host:有一下几种结果,出现error参考下一章或许对你有帮助

#_[networkInterface]_ :   网络接口的地址 _en0_.

#_local_ :   本机 127.0.0.1

#_site_  :  本地地址 192.168.0.1

#_global_  :  所有ip都可访问 0.0.0.0

# 默认127.0.0.1,建议指定为内网ip,不要偷懒设置0.0.0.0

network.host: 192.168.0.1

# 可以定制该节点与其他节点交互的端口: (没有搞懂怎么用,参考)

#transport.tcp.port: 9300

节点间交互时,可以设置是否压缩,转为为不压缩: 

transport.tcp.compress: true

可以为Http传输监听定制端口: 默认9200

http.port: 9200

设置内容的最大长度: 

http.max_content_length: 100mb

禁止HTTP: 

http.enabled: false

#

# --------------------------------- Discovery ----------------------------------

# 设置ping其他节点时的超时时间,网络比较慢时可将该值设大: (没有搞懂怎么用,参考)

#discovery.zen.ping.timeout: 3s 

# 禁止当前节点发现多个集群节点,默认值为true: (没有搞懂怎么用,参考)

#discovery.zen.ping.multicast.enabled: false

#

# Pass an initial list of hosts to perform discovery when new node is started:

# The default list of hosts is ["127.0.0.1", "[::1]"]

# Elasticsearch使用名为“Zen Discovery”的自定义发现实现进行节点到节点的群集和主选举。

# 在投入生产之前,应该配置两个重要的发现设置。

# 开箱即用,没有任何网络配置,Elasticsearch将绑定到可用的环回地址,

# 并将扫描端口9300到9305以尝试连接到在同一服务器上运行的其他节点。

# 这提供了自动群集体验,无需进行任何配置。

# 当需要在其他服务器上形成具有节点的群集时,您必须提供群集中可能是实时且可联系的其他节点的种子列表。

# 这可以指定如下:

# discovery.zen.ping.unicast.hosts:

#   -  192.168.1.10:9300

#   -  192.168.1.11 #如果未指定 ,端口将默认为transport.profiles.default.port和回退 transport.tcp.port。

#   -  seeds.mydomain.com #解析为多个IP地址的主机名将尝试所有已解析的地址。

(没有搞懂怎么用,参考)默认: ["127.0.0.1", "[::1]"]

#discovery.zen.ping.unicast.hosts: ["host1", "host2:port", "host3[portX-portY]"]

#

# Prevent the "split brain" by configuring the majority of nodes

# (total number of master-eligible nodes / 2 + 1):

# 为防止数据丢失,必须配置 discovery.zen.minimum_master_nodes设置,

# 以便每个符合主节点的节点都知道必须可见的最大主节点数,才能形成集群。

# 如果没有此设置,遭受网络故障的群集可能会将群集拆分为两个独立的群集 - 分裂的大脑 - 这将导致数据丢失。

# 在通过minimum_master_nodes编辑避免裂脑的过程中提供了更详细的解释 。

# 为避免分裂大脑,应将此设置设置为符合条件的主节点的法定数量:

(master_eligible_nodes / 2)+ 1

# 换句话说,如果有三个符合主节点的节点,则应将最小主节点设置为(3 / 2) + 1或2:

discovery.zen.minimum_master_nodes: 2

# 注意:集群中主节点数,且在可选举主节点的范围内,写多了会报Not enough master nodes discovered during pinging

#

# ---------------------------------- Gateway -----------------------------------

#

# 网关允许在所有集群重启后持有集群状态,集群状态的变更都会被保存下来,当第一次启用集群时,可以从网关中读取到状态,默认网关类型(也是推荐的)是local:(没有搞懂怎么用,参考)

#gateway.type: local

# 允许在N个节点启动后恢复过程: 

gateway.recover_after_nodes: 1

# 设置初始化恢复过程的超时时间: 

gateway.recover_after_time: 5m

# 设置该集群中可存在的节点上限: 

gateway.expected_nodes: 2

# ----------------------------------Indices--------------------------------------

设置复苏时的吞吐量,默认情况下是无限的: (没有搞懂怎么用,参考)

#indices.recovery.max_size_per_sec: 0

设置从对等节点恢复片段时打开的流的数量上限: (没有搞懂怎么用,参考)

#indices.recovery.concurrent_streams: 5

#

# ---------------------------------- Various -----------------------------------

#

# 在一个系统上禁用启动多个节点: 

node.max_local_storage_nodes: 1

# 在删除索引时,是否需要明确指定名称,该值为false时,将可以通过正则或_all进行所以 删除: 

action.destructive_requires_name: true

插件:plugin.mandatory: mapper-attachments,lang-groovy,没有找到安装的办法所以先注释掉了;

仅供参考!

继续阅读