-
1. ../config/elasticsearch.yml
-
正题 # ---------------------------------- 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.0network.host: 192.168.0.1
-
# 可以定制该节点与其他节点交互的端口: (没有搞懂怎么用,参考)#transport.tcp.port: 9300
-
节点间交互时,可以设置是否压缩,转为为不压缩: transport.tcp.compress: true
-
可以为Http传输监听定制端口: 默认9200http.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