Elasticsearch5.2 基本设置

在刚接触一个东西时候我们想到的就是怎么简单使用,然后再看看它有哪些可以设置的东西。这里知道了Elasticsearch的基本增删改查后就来看看它的一些设置的使用。
Elasticsearch是一个使用Java构建的分布式的RESTful搜索和分析引擎,所以需要java运行环境,官方提示只支持Oracle的Java和OpenJDK并且所有Elasticsearch节点和客户端都应使用相同的JVM版本。至于Elasticsearch5.2至少需要Java8才能运行。

Elasticsearch配置文件是%ES_HOME%/config/elasticsearch.yml
也可以在命令行中指定在配置文件中指定的任何设置,使用-E如下语法:
我们在启动的时候可以通过参数指定集群和节点名称:
elasticsearch -Ecluster.name=my_cluster -Enode.name=node_1
这里写图片描述
注:包含空格的值必须用引号括起来。例如Epath.logs=”C:\My Logs\logs”
配置文件使用YAML标言
例如更改数据路径和日志目录
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
也可以按如下方式配置,不过这种写法很少用到:

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

使用配置文件中的${…}符号引用的环境变量将替换为环境变量的值,例如:

node.name:${HOSTNAME}
network.host:${ES_NETWORK_HOST}

Elasticsearch有些配置还是比较重要的,如下:

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

elasticsearch在相同的环境中是根据cluster.name自动加入集群的,默认名称都是elasticsearch。确保不要在不同的环境中重复使用相同的集群名称,否则可能会导致加入错误集群的节点,所以cluster.name还是应该手动配置的。而node.name值得配置一个更有意义的名称,Elasticsearch将使用随机生成的uuid的前7个字符作为节点id。请注意,节点ID是持久化的,并且在节点重新启动时不会更改,因此默认节点名称也不会更改,当然也可以设置为服务器的主机名:node.name: ${HOSTNAME}
path.data设置可以被设置为多条路径,在这种情况下,所有的路径将被用于存储数据(虽然属于单个碎片文件将全部存储相同的数据路径上):

path:
  data:
    - /mnt/elasticsearch_1
    - /mnt/elasticsearch_2
    - /mnt/elasticsearch_3

bootstrap.memory_lock 默认为true,即没有任何JVM被交换到磁盘。内存与磁盘之间的交换越多肯定是越影响效率的。
network.host 默认情况下,Elasticsearch仅绑定到环回地址 - 例如127.0.0.1 和[::1]。这足以在服务器上运行单个开发节点。
事实上,可以在$ES_HOME单个节点上的同一位置启动多个节点。这可以用于测试Elasticsearch形成集群的能力,但它不推荐用于生产的配置。为了与其他服务器上的节点进行通信并形成集群,需要将节点绑定到非环回地址比如:network.host:192.168.1.10。一旦自定义设置network.host,Elasticsearch会假定正在从开发模式转移到生产模式,并将许多系统启动检查从警告升级到异常。
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并回退transport.tcp.port
- seeds.mydomain.com #解析为多个IP地址的主机名将尝试所有解析的地址。
为了防止数据丢失,discovery.zen.minimum_master_nodes配置设置至关重要,以便每个主节点都知道形成集群最少需要的主节点数量。
没有这种设置,遇到网络故障的群集有可能将群集分成两个独立的群集,这将导致分裂使数据丢失。
为了避免脑裂,此设置应设置为主节点的法定数量:
(master_eligible_nodes / 2) + 1
换句话说,如果有三个主节点,则最小主节点应设置为(3 / 2) + 1或2:
discovery.zen.minimum_master_nodes: 2
其实这些配置在elasticsearch.yml中都有简单的说明
这里写图片描述
当然这些基础配置是不足以在实际生产中使用的,即使你不做任何配置也可以使用。
为了更好的使用我们还需要新增一些设置,之前也提到过,目前本机测试我就只新增配置了几项

#避免出现跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"
#在chorem中 当elasticsearch安装x-pack后还可以访问
http.cors.allow-headers: Authorization
#启用审核以跟踪与您的Elasticsearch群集进行的尝试和成功的交互
xpack.security.audit.enabled: true

这里写图片描述
能设置的肯定还很多,这里就先记录这些吧。以后慢慢深入。
注:现在我也是在官网看文档学习,所以这里的很多内容在 elastic官网基本上都是可以找到的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值