备注:此内容为《Elasticsearch黑鸟教程(入门系列)》之九,修订于2020年12月13日。

1、设置监听IP

默认情况下,Elasticsearch是不支持外网访问,如果你的Elasticsearch安装在其他机器上,你从外网去访问的时候,访问不通。那么需要修改Elasticsearch的配置文件。进入文件夹 /usr/localelasticsearch7/config,修改 elasticsearch.yml 文件,添加:

network.host: 0.0.0.0

IP地址设置成 0.0.0.0 就表示你的Elasticsearch进程可以监听在本机的所有IP地址上,通过任何一个IP地址都可以访问到Elasticsearch

2、修改虚拟内存区域

完成以上修改之后,重启Elasticsearch会报错:

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

翻译过来就是:elasticsearch进程拥有的VMA(虚拟内存区域)的数量太少,至少需要262144。

查看max_map_count的命令:sysctl -a | grep vm.max_map_count

此时,需要修改Linux系统配置文件:

sudo vim /etc/sysctl.conf

添加一行配置:

vm.max_map_count=655360

查看是否生效:

sudo sysctl -p

3、集群发现的设置参数

the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

当开启一个全新的集群时,会有一个集群的引导步骤,这步骤用来确定哪些节点参与第一次的主节点选举。在开发模式下,这个步骤由节点自动完成,这种模式本质上是不安全的,因为不是所有节点都适合做主节点,主节点关系到集群的稳定性。因此在生产模式下,集群第一次启动时,需要有一个适合作为主节点的节点列表,这个列表就是通过cluster.initial_master_nodes
来配置,在配置中需要写出具体的节点名称,对应node.name配置项,放开注释即可:

node.name: node-1

...

cluster.initial_master_nodes: ["node-1", "node-2"]

4、启动验证

进入 /usr/localelasticsearch7/bin 执行:

./elasticsearch

启动成功,并且支持任意IP,通过9200端口访问。

5、补充:

sysctl命令用于运行时配置内核参数,这些参数位于/proc/sys目录下。sysctl配置与显示在/proc/sys目录中的内核参数。可以用sysctl来设置或重新设置联网功能,如IP转发、IP碎片去除以及源路由检查等。用户只需要编辑/etc/sysctl.conf文件,即可手工或自动执行由sysctl控制的功能。常用的命令如下所示:

sysctl -a   显示所有的系统参数

sysctl -p   从指定的文件加载系统参数,如不指定即从/etc/sysctl.conf中加载

标签: none

添加新评论