# ElasticSearch安装

# 用户创建

groupadd elasticsearch
useradd es
passwd es  # 然后设置密码,也可以不设置密码

usermod -G elasticsearch es

chown -R es elasticsearch-7.6.2

# 修改应用配置

cd /u01/es/elasticsearch-7.6.2
mkdir data

cd config
rm -rf elasticsearch.yml
vim elasticsearch.yml
# 集群名称, 处于同一个集群所有节点,该名称必须相同
cluster.name: es-cluster

# 节点名称. 三台机器名字必须都不一样
node.name: node1

path.data: /u01/es/elasticsearch-7.6.2/data
path.logs: /u01/es/elasticsearch-7.6.2/log

# 网络绑定,这里我绑定 0.0.0.0,支持外网访问
network.host: 0.0.0.0
# 设置对外服务的http端口,默认为9200
http.port: 9200


# 集群发现。 集群配置:
discovery.seed_hosts: ["127.0.0.1"]
# 手动指定可以成为 master 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算。 集群配置:["node1","node2","node3"]
#cluster.initial_master_nodes: ["node1"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false

# 支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"

# 关闭 geoip的自动更新
ingest.geoip.downloader.enabled: false
vim jvm.options
-Xms2g
-Xmx2g

# 修改系统配置

exit #从普通用户退到root用户

vim /etc/security/limits.conf
---#追加如下内容,*号也需要保留
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

vim /etc/security/limits.d/20-nproc.conf

--#将如下内容改为4096,如果已经是就不用改了
* soft nproc 4096

vim /ect/sysctl.conf
---追加以下内容
vm.max_map_count=262144

sysctl -p
#重连后生效

# 设置访问密码

su es
vim elasticsearch.yml
#追加内容
xpack.security.enabled: true
discovery.type: single-node
xpack.security.transport.ssl.enabled: true
../bin/elasticsearch -d   #需要先启动后才能设置密码

../bin/elasticsearch-setup-passwords interactive
#交互式设置密码,一般设置elastic

# 安装ik插件

mv elasticsearch-analysis-ik-7.6.2.zip elasticsearch-7.6.2/plugins/ik/

unzip elasticsearch-analysis-ik-7.6.2.zip

./bin/elasticsearch -d

# 安装自定义ik插件

  • 首先,需要获取自定义ik插件的资源
  • 配置jvm的安全策略
# 在config/jvm.options中添加如下内容
-Djava.securityManager
-Djava.security.policy=file:config/java.policy
  • 然后,在config目录下创建java.policy文件,内容如下:
#在config目录下添加 java.policy并添加如下内容
grant {
  permission java.net.SocketPermission "172.20.20.15:5432", "connect,resolve";  
};

# 实践中遇到的坑

  • 个别情况下,索引为red的情况, 需要删除,重启了也不行;
  • 否则会查询失败,报503错误;

# windows环境下安装es步骤

  • 下载zip安装包(不能直接用linux的tar.gz文件)
  • 解压后,直接去 bin里面启动
  • 将config目录下的elasticsearch.yml修改为linux环境的配置(如上)即可,其中path.datapath.logs留空
  • 关闭xpack插件,免密登录
  • ik分词器插件安装方式与linux一致
  • 通过_analyze接口查看分词效果
POST /_analyze
{
  "analyzer": "ik_smart",
  "text": "周杰伦唱歌好听"
}