Elasticsearch7.4.2生产模式设置
Elasticsearch7.4.2安装好后默认是开发模式,基本上不用设置就可以满足开发测试需求,但是从开发模式转换为生产模式时,必须更改一些必要设置才能正常启动,包括max file descriptors,max virtual memory,discovery.seed_hosts、discovery.seed_providers、cluster.initial_master_nodes必须配置其中的一个。
1、network.hosts
默认安装的情况下,elasticsearch默认绑定本地地址(loopback addresses)——比如127.0.0.1和[::1]。这种情况下能够满足所有的所有的服务都按照一台服务器上进行运行,部署单节点模式的时候。
如果需要配置成多节点的集群,elasticsearch所在节点不能绑定到本地地址,需要跟本机分配的IP地址进行绑定。
network.host: 192.168.100.155
network.host能够识别一些特殊值:local,site,global,以及修饰符:ip4,:ip6。
注意:一旦设置了network.host的值为自己的值时,elasticsearch启动时会从开发模式转变为生产模式,启动检查时会将原来的一些警告更改为异常而无法启动。
取消network.host的默认值后,保持其他默认配置不变的的情况下重新启动Elasticsearch的话,会提示如下错误:
network.host能够识别一些特殊值:local,site,global,以及修饰符:ip4,:ip6。
注意:一旦设置了network.host的值为自己的值时,elasticsearch启动时会从开发模式转变为生产模式,启动检查时会将原来的一些警告更改为异常而无法启动。
取消network.host的默认值后,保持其他默认配置不变的的情况下重新启动Elasticsearch的话,会提示如下错误:
问题1“max file descriptors[4096]”的解决方法2、File Descriptors部分.
问题2“max file descriptors[4096]”的解决方法3、Virtual memory部分.
问题3解决:
在配置文件elasticsearch.yml($ES_HOME/config路径下)中修改discovery.seed_hosts值为elasticsearch安装的服务器的IP值。
2、File Descriptors
在linux和MacOS中,需要设置File Descriptors的值,在windows系统中,JVM在使用某个API的时候受到可用资源的限制。
Elasticsearch使用许多文件描述符或是文件句柄。超出限额文件描述符时运行,会导致数据遗失等灾难性的问题。运行Elasticsearch时,必须增加可用使用的文件描述符到65535或是更高值。
方法1:在启动elasticsearch之前,以管理员身份设置ulimit –你65535,该方法重启后恢复原值。
su root
ulimit –n 65535
su elksearch
方法2:在 /etc/security/limits.conf文件中为elasticsearch的用户elksearch(自己创建)设置nofile值为65535,该方法永久生效。
elasticsearch - nofile 65535
##在文件 /etc/security/limits.conf中加入此行
3、 Virtual memory
Elasticsearch默认使用mmapfs目录来存储索引。操作系统的nmap默认值非常小,非常容易导致内存异常。
在Linux下,可以以root身份运行以下命令来增加nmap的限制。
sysctl -w vm.max_map_count=262144
如果要永久性的更改nmap的值,需要设置/etc/sysctl.conf中的vm.max_map_count的值。
su root
vi /etc/sysctl.conf
####在该文件最后一行输入以下内容
vm.max_map_count=262144
重启后,可以通过命令sysctl vm.max_map_count来查看。