忘的差不多了,重新学习,留个笔记
一 下载
1 | cd /opt/elasticsearch |
二 解压
1 | tar -zxvf elasticsearch-7.6.2-linux-x86_64.tar.gz |
三 启动用户与权限问题
ElasticSearch禁止以root用户启动需要创建用户并授权
3.1 创建用户
创建用户名为:lilei
1 | adduser lilei |
为该用户lilei
创建密码:
1 | passwd lilei |
3.2 授权
个人用户的权限只可以在本home下有完整权限,其他目录要看别人授权。而经常需要root用户的权限,这时候sudo可以化身为root来操作。
新创建的用户并不能使用sudo命令,需要给他添加授权。
sudo命令的授权管理是在sudoers文件里的。
查看sudoers文件
1 | ls -l /etc/sudoers |
将此文件增加写权限
1 | chmod 640 /etc/sudoers |
添加一个新用户lilei,使得其可以使用sudo命令如下图
根据需要按照如下配置
1 | #允许用户youuser执行sudo命令(需要输入密码). |
保存sudoers文件,将该文件权限改回去:
1 | chmod 440 /etc/sudoers |
把 ElasticSearch
的安装目录执行权限赋予给 lilei
用户
1 | chown -R lilei /opt/elasticsearch/elasticsearch-7.6.2/ |
四 JDK要求
ElasticSearch从7开始自带JDK并且ES7版本要求JDK版本8+,未来要求11+。这里使用自带的JDK11避免影响其他项目
修改安装目录下bin文件夹下的elasticsearch-env
配置文件:
1 | 进入安装目录 |
将文件中的如下内容
1 | 39 if [ ! -z "$JAVA_HOME" ]; then |
改为
1 | if [ "$(uname -s)" = "Darwin" ]; then |
五 配置
修改config/elasticsearch.yml
配置文件
1 | 进入安装目录 |
5.1 配置外网可访问
1 | #外网任意ip可访问 |
5.2 配置节点和集群名
1 | #集群名 |
5.3 修改内核参数
Elasticsearch mmapfs默认使用目录来存储其索引。默认的操作系统对mmap计数的限制可能太低,这可能会导致内存不足异常。
在root用户下设置vm.max_map_count
参数值为 262144
1 | echo "vm.max_map_count=262144" > /etc/sysctl.conf |
查看参数是否生效
1 | sysctl -p |
六 启动
1 | 切换到lilei用户 |
七 设置密码
需要在配置文件中开启x-pack验证, 修改config
目录下面的elasticsearch.yml
文件,在里面添加如下内容,并重启
1 | # 配置X-Pack |
重启后输入
1 | 进入安装目录 |
设置了 elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user 这些用户的密码
其中:
- elastic 账号:拥有 superuser 角色,是内置的超级用户。
- kibana 账号:拥有 kibana_system 角色,用户 kibana 用来连接 elasticsearch 并与之通信。Kibana 服务器以该用户身份提交请求以访问集群监视 API 和 .kibana 索引。不能访问 index。
- logstash_system 账号:拥有 logstash_system 角色。用户 Logstash 在 Elasticsearch 中存储监控信息时使用。
此时访问对应9300端口会提示输入账号密码
八 SSLHandshake异常
此时启动ES,虽然可以启动但是抛出SSLHandshake异常警告
1 | 进入安装目录 |
使用第一步生成的证书,产生p12密钥
1 | 进入安装目录 |
可以看到成功生成
在config目录创建certs目录并拷贝p12文件至certs目录
修改config
目录下面的elasticsearch.yml
文件配置如下
1 | xpack.security.transport.ssl.verification_mode: certificate |
将刚才配置的密码添加到ES密码库
1 | #进入安装目录 |
将新生成的文件重新授权给启动es的用户
1 | chown -R lilei /opt/elasticsearch/elasticsearch-7.6.2/ |
重启ES
1 | #后台启动 |
九 安装IK分词器
下载对应版本的插件并解压到plugins/ik/
目录下
1 | unzip elasticsearch-analysis-ik-7.6.2.zip -d /opt/elasticsearch/elasticsearch-7.6.2/plugins/ik/ |
重启elasticsearch并发送请求尝试分词
IK 分词器提供了 2 种分词模式:
- ik_max_word :IK 最大化分词,会将文本做最细粒度的拆分。
- ik_smart :IK 智能分词,会做最粗粒度的拆分。
我们将 "百事可乐"
进行分词,看看他们之间的差异。
ik_max_word:
ik_smart:
注意如果设置了密码需要携带token访问