2021年9月20日15:16:59
注意:所有版本和插件必须一致-7.14.1,或者你的软件版本都是统一的版本
下载rpm包
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.14.1-x86_64.rpm
yum install elasticsearch-7.14.1-x86_64.rpm
whereis elasticsearch
elasticsearch: /etc/elasticsearch /usr/share/elasticsearch
/etc/elasticsearch 配置文件位置
/usr/share/elasticsearch 软件安装位置
id elasticsearch
查看用户是否存在
装ik中文分词插件
https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.14.1/elasticsearch-analysis-ik-7.14.1.zip
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.14.1/elasticsearch-analysis-ik-7.14.1.zip
修改linux es ik分词的配置
jvm.options
去掉注释
-Xms4g
-Xmx4g
配置字典
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>IK Analyzer 扩展配置</comment> <!--用户可以在这里配置自己的扩展字典 --> <entry key="ext_dict"></entry> <!--用户可以在这里配置自己的扩展停止词字典--> <entry key="ext_stopwords"></entry> <!--用户可以在这里配置远程扩展字典 --> <entry key="remote_ext_dict">http://192.168.8.241:8000/yida.dic</entry> <!--用户可以在这里配置远程扩展停止词字典--> <!-- <entry key="remote_ext_stopwords">words_location</entry> --> </properties>
vi /etc/security/limits.conf
加入
* soft nofile 65536 * hard nofile 131072 * soft nproc 4096 * hard nproc 4096
vi /etc/sysctl.conf
vm.max_map_count=655360
保存后执行
sysctl -p
需要注意几点:
1,生成的p12秘钥,只需要生成一份,然后复制到其他节点即可
2,配置账号密码的时候,每个节点都需要设置
3,注意p12等文件需要 +rx 和es运行账号的权限
4,插件所有的节点都需要安装,建议使用 ./bin/elasticsearch-plugin install 配置文件都在/etc/elasticsearch/ 插件文件名是就是配置的文件夹
5,注意新版和旧版的之间的配置差别,先看下官方文档
es推荐默认是三个节点:
node-1 192.168.8.228:9277
node-2 192.168.8.241:9277
node-3 192.168.8.229:9277
第一步:生成证书 我们在ES的根路径下,执行 bin/elasticsearch-certutil ca 生成ca证书,在期间,会提示我们输入生成文件名(可直接回车跳过),提示我们输入证书密码(可直接回车跳过,也可以设置一个密码,密码尽量统一); 这样,我们就可以得到一个以.p12结尾的ca证书,其文件名默认为elastic-stack-ca.p12 第二步:对生成的证书进行验证 在ES的根路径下,执行 bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 #依次输入上一个步骤的密码。回车(文件使用默认名),密码(建议与上一步密码相同) bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password #并输入第一步输入的密码 bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password #并输入第一步输入的密码 此时,我们一共将得到3个文件,分别是elastic-certificates.p12、elasticsearch.keystore、elastic-stack-ca.p12; 我们将这三个文件拷贝到conf目录下,同时,将这三个文件也拷贝到另外两个节点的conf路径下;
机器启动后在,设置密码,单个机器设置密码之后,集群会分发密码
./bin/elasticsearch-setup-passwords interactive
查看节点健康问题
curl --user elastic:'密码' http://ip:9277/_cat/health?v curl --user elastic:'密码' http://ip:9277/_cat/nodes
注意:如果是yum安装 elasticsearch.keystore这个文件需要删除
按照上面的方法重新生成,因为默认的版本不能启动系统
记得把 elastic-certificates.p12 elasticsearch.keystore elastic-stack-ca.p12
还要记得把权限加上
chmod +xr elastic-certificates.p12
线上的集群预计一天左右可以搭建好,结果2天才搭完,当时发现了很多其他的小问题,和一点奇怪的问题
联通云 奇怪的问题
1,一个安全组下,安全组内多台机器互相访问也需要在安全组上添加规则,阿里云,腾讯云安全组之内的服务器是可以互相访问的
2,域名备案成功之后,解析到联通云服务器ip之后,需要提交备案工单之后,才能生效,生效时长多久需要等待
3,安全组没有填写备注的地方,很难维护
4,不知道是什么原因我们这边是电信,访问联通云的后台的操作的时候,反映是很慢的,操作完一项操作的时候需要等待一会,但是站点测试还是不错的
es集群搭建的问题:
1,一定要每台服务器各个操作都执行不能缺,因为启动日志错误日志不是能全部看到的,有些错误日志里看得到
2,注意文件的权限,特别是配置和数据文件,必须 是elasticsearch 和加权限 xr
3,注释 /etc/security/limits.conf /etc/sysctl.conf 修改是否生效,不然日志也看不到错误
4,注意ik的分词插件的第三方字典建议统一给个http url,不然每次所有节点更新字典,也麻烦
5,一定要细心,来回测试,吧问题排除干净,不然重启就挂了
6,如果 cluster.initial_master_nodes: ["node-1","node-2","node-3"] 启动时期只填一个,避免脑裂,如果脑裂之后记得删除data数据之后,在重启,不然无法生效
7,9200是提供外部restapi的tcp端口,9300是集群内部通信的tcp端口,这个一定注意