二、Elasticsearch安装及配置-Set up Elas

2019-07-09  本文已影响0人  ASD_92f7

一、概述

本篇参考链接:
https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html
es各个版本所支持的操作系统清单见下面链接:
https://www.elastic.co/cn/support/matrix
这里不做安装的介绍,涉及如下内容

二、Configuring Elasticsearch 配置ES

官方说默认配置已经优化的不错了,稍微改点儿就得了,而且大部分的配置可以通过
Cluster Update Settings API进行修改
ES有三个配置文件:

1、各种配置:

后续用到了再详细看吧

#表示JDK8启用
8:-Xmx2g
#表示JDK版本大于8启用
8-:-Xmx2g
#表示JDK版本大于介于8和9之间启用
8-9:-Xmx2g

另一种指定JVM参数的方式是添加环境变量 ES_JAVA_OPTS,例子:

export ES_JAVA_OPTS="$ES_JAVA_OPTS -Djava.io.tmpdir=/path/to/temp/dir"
./bin/elasticsearch

三、Important Elasticsearch configuration 重要配置

在上生产之前,下面几个配置是需要考虑的:

1、Path settings 路径配置

path.data 和 path.log是必须配置的,而且可以配置多个路径,以path.data为例

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

2、cluster.name 集群名称

默认为elasticsearch,用于集群的管理

3、network.host 节点的IP

用于其他节点发现或者连接

4、Discovery and cluster formation settings 集群发现配置

下面两个配置主要用于集群见发现及master的选举

discovery.seed_hosts:
   - 192.168.1.10:9300
   - 192.168.1.11 
   - seeds.mydomain.com 
cluster.initial_master_nodes: 
   - master-node-a
   - master-node-b
   - master-node-c

这个配置在搭建集群的时候详细讲解,这里不过多深入

5、Setting the heap size 设置堆内存大小

6、JVM heap dump path

可以在 jvm.options 中通过 -XX:HeapDumpPath=xxxxx来指定

7、GC logging

ES默认打开GC logging,每个日志文件64MB,最多2GB,超过2GB,覆盖原有日志

8、Temp directory

es启动的时候会在系统的临时目录下建立es专用的临时目录,但是有些linux发行版本会定时清理,这个不是我们想看到的,所以最好指定一个es的专用临时目录,可以通过 $es_tmpdir 环境变量来指定,并且设置只有启动es的用户可以访问。

9、JVM fatal error logs

JVM致命错误日志,可以通过修改 jvm.options中的-XX:ErrorFile=xxxx来指定

四、Important System Configuration 重要的系统设置

1、Configuring system settings 系统设置

2、Disable swapping 禁用swapping

这个东西会增加JVM进行GC的持续时间,机器反应慢,甚至宕机
禁用swap的几种方式

GET _nodes?filter_path=**.mlockall

3、File descriptors 设置

修改/etc/security/limits.conf,增加ulimit -n 65535或者将nofile 设置为65535
可以通过下面的命令查看设置

GET _nodes/stats/process?filter_path=**.max_file_descriptors

4、Virtual memory 虚拟内存设置

es默认使用mmapfs路径存储索引,系统中mmap的设置太低,需要加大

5、Number of threads 线程数量设置

修改/etc/security/limits.conf,将nproc设置为4096 (这个值是es推荐的)

6、DNS cache settings

7、JNA temporary directory not mounted with noexec

五、Bootstrap Checks 启动前的检查

一旦设置了transport.host(不是localhost或者127.0.0.1),es认为你启用了生产模式,生产模式就会启用Bootstrap Checks,如果不符合,则拒绝启动

1、heap size check

会检查 -Xms与-Xmx是否一致,不一致巴拉巴拉会产生一堆问题等等

2、File descriptors check

3、Memory lock check

在做Full GC的时候,JVM会检查所有的heap,如果这些heap的一部分被swap出去,则需要在GC的时候先swap回来,这样会增加系统间的文件传输的开销,所以会检查bootstrap.memory_lock

4、Maximum number of theads check

5、Max file size check

6、Maximum size virtual memory check

7、Maximum map count check

8、Client JVM check

9、Use serial collector check

杜绝使用 serial collector,使用CMS,并发垃圾回收机制

10、System call filter check

11、OnError and OnOutOfMemoryError checks

12、Early-access check

13、G1GC check

14、All permission check

15、Discovery configuration check

上一篇 下一篇

猜你喜欢

热点阅读