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就会假定您正在从开发模式
# 转移到生产模式,并将许多系统启动检查从警告升级到异常。有关详细信息,
# 请参阅开发模式与生产模式编辑。
#

(没有搞懂怎么用,参考)默认127.0.0.1
#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


#
# ---------------------------------- 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,没有找到安装的办法所以先注释掉了;

仅供参考!

猜你喜欢

转载自blog.csdn.net/u014259503/article/details/82113077