欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

elasticsearch 5.x 安装与优化 (Windows & linux)

程序员文章站 2022-05-31 11:05:41
...

es 5.x安装与优化

1、jdk版本要求

a、 要求JDK至少1.8+

b、操作系统最好用linux,建议CentOS

2、安装步骤

es从2.x开始禁止直接使用root用户启动,必须独立创建账号。

a、创建组与账户

groupadd elastic
useradd elastic -g elastic -p elastic_pass

b、给相应的目录权限

chown -R elastic:elastic /ssd
chown -R elastic:elastic /home/elasticsearch-5.6.5

上面的 /ssd 是es数据存储的目录
第二行是 es的存储位置。

c、修改操作系统的配置文件,否则无法正常启动

修改/etc/security/limits.conf配置文件,在末尾追加以下配置

* soft memlock unlimited 
* hard memlock unlimited 
* hard nofile 65536
* soft nofile 65536

执行以下操作,修改/etc/sysctl.conf配置文件

cat /etc/sysctl.conf | grep -v "vm.max_map_count" > /tmp/system_sysctl.conf
echo "vm.max_map_count=262144" >> /tmp/system_sysctl.conf
mv /tmp/system_sysctl.conf /etc/sysctl.conf

d、es配置 (Windows 用户直接从这里开始)

修改elasticsearch-5.6.5/config/jvm.options配置文件
配置 jvm 最大堆 , 和最小堆

以下是默认配置

-Xms2g
-Xmx2g

需要修改为(一般为服务器物理内存的一半)

-Xms16g
-Xmx16g

修改elasticsearch-5.6.5/config/elasticsearch.yml配置文件

(1) 找到#claster.name,去掉前面的#号(#号是注释),然后修改cluster.name,这个名称可以随便,例如:elasticsimilar之类的,cluster.name: elastic

(2) 找到#path.data,默认情况下索引是存放在elasticsearch/5.6.5/data下面的,但我们需要修改为ssd下面,因此修改为path.data: /ssd/elastic/

(3) 找到#node.name,这里是配置节点名称,默认情况下,是随机生成的,为了方便查看和管理,修改为node.name: ${HOSTNAME}

(4) 找到 #bootstrap.memory_lock: true 这里去掉注释#号即可

(5) 找到 #network.host:,去掉注释并且修改为network.host: 0.0.0.0

(6) 找到 # discovery.zen.ping.unicast.hosts: ["host1", "host2"],去掉注释,里面的ip则修改为部分机器即可,从安全和稳定的角度,建议每台机器配第1个节点即可。(这里是用于配置Mater节点选举的,也就是Master会从这些节点中选举,其它节点与这些节点通讯,走的是单播)

(7) 在其中几台机器的(或都增加也行)配置文件尾部增加

http.cors.enabled: true
http.cors.allow-origin: "*"

这个主要是便于监控插件走http协议获取相关数据

e、基本优化

(1) 如果是内网可以直接关掉防火墙,如果安全较高,则需要将9200-9300这个范围加入防火墙例外。

(2) 所有机器关闭swapswapoff -a

f、启动

(1) 使用root执行sysctl -p(以前一直使用1.x,最近更新至这个版本,目前发前每次启动前必须执行这个命令,还没有找到可以不用每次执行的方法)

(2) 使用elastic用户切换到elasticsearch-5.6.5/bin下,然后执行./elasticsearch -d,这里的-d是以后台方式运行

g、性能和集群监控

由于官方的Xpack需要收费,因此一直使用elasticsearch-headelasticsearch-bigdesk监控集群,下载与使用地址分别是:
https://github.com/mobz/elasticsearch-headhttps://github.com/hlstudio/bigdesk

elasticsearch-head elasticsearch 5.x 以后 不支持插件, 必须单独起一个服务

bigdesk我们目录没有使用es插件的方式,而是直接以python的方式运行独立站点,操作方法如下:

cd bigdesk/_site/
python -m SimpleHTTPServer

然后访问8000端口即可。