ES(Elasticsearch) 7.6.1安装教程

ES 7.6.1安装教程

注意:除了最后启动ES的时候在es账户下执行,其他都是在root 下执行的。

⼀、前期准备

java 11 的安装,请大家自行安装。

elasticsearch启动不能以root⽤户运⾏,所以创建es⽤户(root⽤户状态下操作)

useradd es

passwd es

然后输入两次:

zong2015   

 

如果需要删除用户

userdel -r es

 

将elasticsearch⽤户添加到sudoers

vim /etc/sudoers

在⽂件最后添加:

#by xiaoyichao

es ALL=(ALL) NOPASSWD: ALL

 

然后输出:

:wq!

强制保存

 

因Linux对⾮root账号的可并发操作⽂件,线程都有限制,所以对系统配置进⾏修改

  1. 修改⽂件限制,添加如下内容:

vim /etc/security/limits.conf

 

#by xiaoyichao

* soft nofile 65536

* hard nofile 65536

* soft nproc 65536

* hard nproc 65536

es hard memlock unlimited

es soft memlock unlimited  

 

  1. 调整虚拟内存&最⼤并发连接:

vim /etc/sysctl.conf   ,增加如下内容



配置⽂件更改

#by xiaoyichao

vm.max_map_count=262144

fs.file-max=655360

vm.swappiness=1

 

 

终端中使用命令临时更改:

sysctl -w vm.swappiness=1

sysctl -w vm.max_map_count=262144

 

关闭交换内存,谨慎操作,为了性能,使用ES最好关闭交换内存。

swapoff -a

 

 

⼆、开始安装

下载和解压安装包到指定位置

cd /home

sudo chmod 777 es

cd /home/es

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.1-linux-x86_64.tar.gz

root 用户下执行

 

tar -zxvf /home/es/elasticsearch-7.6.1-linux-x86_64.tar.gz -C /usr/local/

 

 

修改es配置⽂件(主节点):

cd /usr/local/elasticsearch-7.6.1/config

vim elasticsearch.yml

请根据自己机器的IP修改

#集群名称,通过组播的式通信,通过名称判断节点属于哪个集群

cluster.name: hhz_inner_elk_cluster

#节点名称,要唯

node.name: hhz_inner_elk1

#数据存放位置

path.data: /data2/elasticsearch/data

#志存放位置

path.logs: /data2/elasticsearch/logs

#es绑定的ip地址,开放卡地址

network.host: 这里写上你ES服务器的IP

#是否开启master ⻆⾊选举

node.master: true

# 是否开启数据节点⻆⾊

node.data: true

#是否锁住内存,避免交换(swapped)带来的性能损失,默认值是: false

bootstrap.memory_lock : true

#以下两项是外部访问http需要开启的项

#跨域资源共享

http.cors.enabled : true

#允许哪个起源53 http.cors.allow-origin : "*"

#确定节点将多久决定开始选举或加现有的群集之前等待。

discovery.zen.ping_timeout : 60s

#向主节点发送加请求

discovery.zen.join_timeout : 60s

#在主选举期间将忽略来不符合master资格的节点

discovery.zen.master_election.ignore_non_master_pings : true

# 选举最同意数

discovery.zen.minimum_master_nodes : 1

#只要有这么多数据或主节点已加集群,就可以恢复。

gateway.recover_after_nodes : 1

#预期在群集中的(数据或主节点)节点数。

gateway.expected_nodes : 1

#如果未达到预期的节点数,则恢复过程将等待配置的时间,然后再尝试恢复。

gateway.recover_after_time : 5m

# 开放端

http.port: 9200

# 集群间传输端

transport.tcp.port: 9300

# 集群发现 host

discovery.seed_hosts: ["这里写上你ES服务器的IP"]

# 集群初始化 master 节点

cluster.initial_master_nodes: ["hhz_inner_elk1"]

# 开启分分配意识

# ⽹⽂档地址: https://www.elastic.co/guide/en/elasticsearch/reference/current/allocation-awareness.html

node.attr.rack_id: rack_one

cluster.routing.allocation.awareness.attributes: rack_id

 

xpack.security.enabled: true

xpack.security.transport.ssl.enabled: true

xpack.security.transport.ssl.verification_mode: certificate

xpack.security.transport.ssl.keystore.path: elastic-certificates.p12

xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

创建数据存储位置和⽇志存储位置

cd /

mkdir data2

cd data2

mkdir elasticsearch

cd elasticsearch

mkdir logs

mkdir data

修改⽂件所属者给es⽤户

(软件)

chown -R es /usr/local/elasticsearch-7.6.1/

(数据,⽇志)

chown -R es /data2

 

配置TLS和身份验证

 

cd /usr/local/elasticsearch-7.6.1/bin

 

下面两个指令的交互,都直接输入回车即可。

./elasticsearch-certutil ca

./elasticsearch-certutil cert --ca elastic-stack-ca.p12

 

 

移动文件到config文件夹下

cd /usr/local/elasticsearch-7.6.1/

mv elastic-certificates.p12 elastic-stack-ca.p12  config

chmod 777 elastic-certificates.p12

chmod 777 elastic-stack-ca.p12

 

若为集群,将证书分发至所有节点下config文件中

# 分发至所有节点

scp elastic-certificates.p12 elastic-stack-ca.p12   [email protected]:/XX/XX

 

 

 

三、启动es并配置密码

1.启动ES

cd /usr/local/elasticsearch-7.6.1

su es

./bin/elasticsearch -d

 

./bin/elasticsearch 加上-d可以后台运⾏

⽤浏览器访问es所在机器的9200端⼝

显示如下内容即为成功。

 

可能出现的报错

max file descriptors [65535] for elasticsearch process is too low

 

参考方案;http://www.javashuo.com/article/p-kzttnwof-nk.html

 

一定要到es用户下执行和验证

执行

ulimit -Hn 65536

验证

ulimit -Hn 

返回65536则代表生效,如果在root 下执行,es下不生效。

 

 

2.设置密码

cd /usr/local/elasticsearch-7.6.1/bin

./elasticsearch-setup-passwords interactive

首先输入y.

然后输入想要设置的密码。

密码大家自己设置就可以了。但是一定要记住。

四、kibana 安装

1.安装

 

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.6.1-linux-x86_64.tar.gz

 

tar -zxvf kibana-7.6.1-linux-x86_64.tar.gz

 

cd /home/es/kibana-7.6.1-linux-x86_64/config

 

vim kibana.yml

添加如下配置,具体配置自行修改一下

server.port: 5601

server.host: "这里写上你ES服务器的IP"

elasticsearch.hosts: ["http://这里写上你ES服务器的IP:9200"]

i18n.locale: "zh-CN"

elasticsearch.username: "elastic"

elasticsearch.password: "密码是你第三章第二节设置的"

 

2.启动kibana

cd  /home/es/kibana-7.6.1-linux-x86_64/bin

 

./kibana --allow-root

或者

nohup ./kibana --allow-root  >/dev/null 2>&1 &

 

进入浏览器,打开http://这里写上你ES服务器的IP:5601

会让你输入账户名和密码,账户名是elastic,密码是之前设置的。

然后,选择左下角小齿轮->安全性->角色:

 

 

 

选择创建账户,用户名:xiaoyichao,角色superuser

创建完成后如图:

 

五、配置同义词插件

以最简单快捷的方式的完成相关插件(IK分词,拼音,同义词)的安装

 

本质就是把编译好的插件文件放入/usr/local/elasticsearch-7.6.1/plugins路径下,如果你之前的plugins里已经有其他安装的插件了,不要rm -rf plugins 。将IK分词器和同义词插件文件夹放入/usr/local/elasticsearch-7.6.1/plugins路径下即可。

下面的操作是plugins为空时的操作方式。

cd  /usr/local/elasticsearch-7.6.1

rm -rf plugins

rz 自己的plugins.tar.gz 的文件。然后

tar -xvzf plugins.tar.gz

 

就直接可以使用三个相关插件了。

 

cd  /usr/local/elasticsearch-7.6.1/config

mkdir synonyms

 

vim community_synonyms.txt  配置自己同义词表。

 

chmod 777 community_synonyms.txt  赋予权限

 

IK分词器需要重启ES才能生效。

 

如果成功了,第五章中其他的安装都可以跳过了。

 

安装IK分词器

参考的文档:https://github.com/medcl/elasticsearch-analysis-ik

 

cd /root/Downloads/

wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.1/elasticsearch-analysis-ik-7.6.1.zip

                          

 

cd /usr/local/elasticsearch-7.6.1/plugins/ && mkdir ik

 

cp /root/Downloads/elasticsearch-analysis-ik-7.6.1.zip  /usr/local/elasticsearch-7.6.1/plugins/ik

 

cd /usr/local/elasticsearch-7.6.1/plugins/ik

unzip elasticsearch-analysis-ik-7.6.1.zip

 

IK分词器需要重启ES才能生效。

安装maven

cd  /root/Downloads

wget http://mirror.cogentco.com/pub/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

 

cd /opt

tar -xvzf ~/Downloads/apache-maven-3.6.3-bin.tar.gz

 

M2_HOME="/opt/apache-maven-3.6.3"

 

vim /etc/profile

添加

export PATH="/opt/apache-maven-3.6.3/bin:$PATH"

source /etc/profile

sudo update-alternatives --install "/usr/bin/mvn" "mvn" "/opt/apache-maven-3.6.3/bin/mvn" 0

sudo update-alternatives --set mvn /opt/apache-maven-3.6.3/bin/mvn

 

cd  /root/Downloads

 

sudo wget https://raw.github.com/dimaj/maven-bash-completion/master/bash_completion.bash --output-document /etc/bash_completion.d/mvn

 

 

mvn –version

 

返回如下:

Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)

Maven home: /opt/apache-maven-3.6.3

Java version: 1.8.0_242, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre

Default locale: en_US, platform encoding: UTF-8

OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"

 

 

安装同义词插件

本文参考的文档:https://github.com/bells/elasticsearch-analysis-dynamic-synonym

https://blog.csdn.net/fenglailea/article/details/56845892

 

 

cd /root/Downloads/

git clone  https://github.com/bells/elasticsearch-analysis-dynamic-synonym.git

 

cd /root/Downloads/elasticsearch-analysis-dynamic-synonym/src/main/java/com/bellszhu/elasticsearch/plugin

 

vim DynamicSynonymPlugin.java

第40行 @Override 删除即可

 

cd /root/Downloads/elasticsearch-analysis-dynamic-synonym

 

把本文件里面所有版本号<version>7.X.X</version>修改为7.6.1 重新执行编译后的文件就是7.6.1版本的

vim pom.xml

 

cd /root/Downloads/elasticsearch-analysis-dynamic-synonym

 

mvn package

 

如下信息,表示编译成功

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time:  2.876 s

[INFO] Finished at: 2020-07-06T17:38:51+08:00

[INFO] ------------------------------------------------------------------------

 

 

cd  /usr/local/elasticsearch-7.6.1/plugins

mkdir dynamic-synonym

 

cp /root/Downloads/elasticsearch-analysis-dynamic-synonym/target/releases/elasticsearch-analysis-dynamic-synonym-7.6.1.zip  /usr/local/elasticsearch-7.6.1/plugins/dynamic-synonym

 

cd /usr/local/elasticsearch-7.6.1/plugins/dynamic-synonym

unzip elasticsearch-analysis-dynamic-synonym-7.6.1.zip

 

 

cd  /usr/local/elasticsearch-7.6.1/config

mkdir synonyms

 

配置自己同义词表。

vim  synonym.txt

赋予权限

chmod 777 synonym.txt

 

grant {permission java.io.FilePermission " /usr/local/elasticsearch-7.6.1/config/synonyms/synonym.txt", "read";};

配置IK分词器的自定义词表

把你的同义词放在自定义词表中,你的同义词才能真正的起作用,避免你的同义词被切开。

 

cd /usr/local/elasticsearch-7.6.1/plugins/ik/config

mkdir custom

cd custom

vim mydict.dic

chmod 777 mydict.dic

 

输入你的同义词,格式如下:

 

夜间模式

暗黑模式

同城

当地

投诉

维权

盗用

盗图

入驻

申请

入住

认证

更换

更改

表格

 

cd /usr/local/elasticsearch-7.6.1/plugins/ik/config

vim IKAnalyzer.cfg.xml

chmod 777 IKAnalyzer.cfg.xml

 

 

<?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">custom/mydict.dic</entry>

        <!--用户可以在这里配置自己的扩展停止词字典-->

        <!--<entry key="ext_stopwords">custom/ext_stopword.dic</entry>-->

        <!--用户可以在这里配置远程扩展字典 -->

        <!-- <entry key="remote_ext_dict">words_location</entry> -->

        <!--用户可以在这里配置远程扩展停止词字典-->

        <!-- <entry key="remote_ext_stopwords">words_location</entry> -->

</properties>

河北科技大学--肖轶超    [email protected]