Elasticsearch重要配置

栏目: 后端 · 发布时间: 7年前

内容简介:Elasticsearch重要配置

虽然Elasticsearch需要很少的配置,但是有一些设置需要手动配置,并且必须在进入生产之前进行配置。

  • path.data   and  path.logs
  • cluster.name
  • node.name
  • bootstrap.memory_lock
  • network.host
  • discovery.zen.ping.unicast.hosts
  • discovery.zen.minimum_master_nodes

path.data and  path.logs

如果您正在使用 .zip .tar.gz文件归档 data logs  目录在  $ES_HOME   如果这些重要文件夹保留在默认位置,则Elasticsearch升级到新版本时,很有可能被删除。

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

path:
  logs: /var/log/elasticsearch
  data: /var/data/elasticsearch

RPM和Debian的安装包已经使用了自定义的data和logs路径。

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的前7个字符作为节点id,请注意,节点ID是持久化的,并且在节点重新启动时不会更改,因此默认节点名称也不会更改。

推荐为节点配置更有意义的名称。

node.name: prod-data-2

也可以使用服务器的 HOSTNAME 作为节点的名称。

node.name: ${HOSTNAME}

bootstrap.memory_lock

由于当jvm开始swapping时es的效率会降低,所以要保证它不swap,这对节点健康极其重要。 实现这一目标的一种方法是将 bootstrap.memory_lock 设置为 true

要使此设置有效,首先需要配置其他系统设置。 有关如何正确设置内存锁定的更多详细信息, 请参阅 启用 bootstrap.memory_lock

network.host

默认情况下,Elasticsearch 仅仅绑定回环地址,比如 127.0.0.1[::1]  。这足以在服务器上运行单个开发节点。

事实上,一台机器上可以启动多个节点 这可对于测试Elasticsearch集群的能力很有用,但不推荐用于生产。

为了与其他服务器上的节点进行通信并形成集群,你的节点将需要绑定到非环回地址。虽然这里有很多 网络相关的配置 ,但通常只需要配置一下 network.host

network.host: 192.168.1.10

network.host 设置一些特殊值也是可以的,比如  _local_, _site_, _global_ ,ip4,ip6。更多详情请参考  “Special values for  network.host ”.

一旦自定义设置了 network.host ,Elasticsearch  会假定你正在从开发模式转移到生产模式,并将许多系统启动检查从警告升级到异常。 有关详细信息,请参阅 Development mode vs production mode ”。

discovery.zen.ping.unicast.hosts

开箱即用,没有任何网络配置情况下,Elasticsearch将绑定到可用的回环地址,并会扫描端口9300至9305以尝试连接到同一服务器上运行的其他节点。 这提供了一个自动集群体验,而无需执行任何配置。

如果想和其他服务器的节点形成一个集群,你必须提供集群中其它节点的列表。可以通过以下方式指定:

discovery.zen.ping.unicast.hosts:
   - 192.168.1.10:9300
   - 192.168.1.11 
   - seeds.mydomain.com 

如果没有指定端口,将默认为 transport.profiles. default .port 并回退  transport.tcp.port  。

如果输入的是主机名,被解析成多个地址,将会尝试连接所有地址。

discovery.zen.minimum_master_nodes

为了防止数据丢失,  discovery.zen.minimum_master_nodes 配置 至关重要,  以便每个候选主节点知道 为了形成集群而必须可见 最少数量的候选主节点

没有这种设置,遇到网络故障的群集有可能将群集分成两个独立的群集(脑裂), 这将导致数据丢失。 更详细的解释在 Avoiding split brain with  minimum_master_nodes  ”  中提供

为了避免脑裂,候选主节点的数量应该设置为:

(master_eligible_nodes / 2) + 1

换句话说,如果现在有3个节点,最小候选主节点数应该是 (3/2)+1=2 :

discovery.zen.minimum_master_nodes: 2

官方文档: https://www.elastic.co/guide/en/elasticsearch/reference/current/important-settings.html#path-settings

参考文档

https://github.com/13428282016/elasticsearch-CN/wiki/es-setup--elasticsearch

ElasticSearch入门 第二篇:集群配置


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

剑指Offer:名企面试官精讲典型编程题(第2版)

剑指Offer:名企面试官精讲典型编程题(第2版)

何海涛 / 电子工业出版社 / 2017-5 / 65.00

《剑指Offer:名企面试官精讲典型编程题(第2版)》剖析了80个典型的编程面试题,系统整理基础知识、代码质量、解题思路、优化效率和综合能力这5个面试要点。《剑指Offer:名企面试官精讲典型编程题(第2版)》共分7章,主要包括面试的流程,讨论面试每一环节需要注意的问题;面试需要的基础知识,从编程语言、数据结构及算法三方面总结程序员面试知识点;高质量的代码,讨论影响代码质量的3个要素(规范性、完整......一起来看看 《剑指Offer:名企面试官精讲典型编程题(第2版)》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具

SHA 加密
SHA 加密

SHA 加密工具