ansiable playbook链接:
https://download.csdn.net/download/weixin_43798031/87719490
需要注意的点:公司es集群现以三个角色部署分别为 Gateway、Master、Data 简单的理解可以理解为在每台机器上部署了三个es,以端口和配置文件来区分这三个es不同的功能。
我们知道本来安装分词器是件特别简单的事网上的教程也是一大片一大片的,在我们的环境和架构下需要特别注意的是在安装分词器的时候,需要给这三个不同的角色(Gateway、Master、Data)分别安装ik分词器。
在es 5.5版本之后就不需要修改es的配置文件进行配置分词器了。还有一定要用es对应版本的分词器,否则启动的时候会有报错。
elasticsearch version: 7.6.1
elasticsearch ik:7.6.1
elasticsearch-analysis-ik :Releases · medcl/elasticsearch-analysis-ik · GitHub
启动用户:elasticsearch su elasticsearch
路径:/opt 三个es进程
一、使用ansiable playbook 安装部署es集群
1. 登录ansiable服务器进入/home/sunwenbo/es 目录下,看到如下截图的这些目录及文件
2. 修改vars.yml文件中的配置,该文件为ansiable-playbook的变量文件如下图,修改标记点1 和标记点2
配置说明:
---
#es的源路径,进行安装时,会将该目录发往要安装es的服务器
src_path: "/home/sunwenbo/es/elasticsearch"
#es目标路径
dest_path: "/opt"
#master的目标文件当将elasticsearch发送到目标服务器/opt目录下,会进行对该目录改名
master_dest_path: "/opt/elasticsearch-master"
gateway_dest_path: "/opt/elasticsearch-gateway"
data_dest_path: "/opt/elasticsearch-data"
#集群名称,安装时候需要看工单上申请es集群的名称,如果没有需要和工单发起人确认
cluster_name: "superfe-goods-server-dependent"
#master列表,如果有多个节点的情况下,这里需要填写多个
master_list: '["10.138.7.41:20100","10.138.7.42:20100","10.138.7.40:20100"]'
3. 修改ip.txt文件,将IP分别填入这个文件
4. 执行安装命令,正常情况下,这时候一个es集群已经配置好了。如果启动失败的话查看/opt/elasticsearch-master/logs/${集群名称}.log日志
ansible-playbook -i ip.txt es.yml -b
二、安装IK分词器
1. 执行如下playbook
cd /home/sunwenbo/es
ansible-playbook -i ip.txt ik.yml -b
2. 检查是否安装成功
可以看到我们安装的三个服务器,每个服务器上的三个es角色都已经安装上ik分词器了。
3. 创建一个类型为ik_max_word的索引,shards_acknowledged为true则为正常
三、es常用命令
查看安装的插件
curl http://localhost:40000/_cat/plugins
查看es集群状态
curl -XGET http://localhost:40000/_cluster/health?pretty
查看节点信息
curl -XGET http://localhost:40000/_cat/nodes?v
查看节点进程信息
curl -XGET http://localhost:40000/_cat/nodes/process?pretty
查看索引信息
curl -XGET http://localhost:40000/_cat/indices?v
查看状态信息
curl -XGET http://localhost:40000/_cluster/health?pretty
删除索引
curl -XDELETE 'localhost:20000/.elastichq/'
创建索引
curl -XPUT 'localhost:20000/test/'
retry重试
curl -X POST localhost:20000/_cluster/reroute?retry_failed=true
查看报错原因
curl -XGET localhost:20000/_cluster/allocation/explain?pretty
找到状态为 red 的索引
curl -X GET "http://localhost:40000/_cat/indices?v="
找到 UNASSIGNED 节点
curl -X GET "http://localhost:40000/_cat/shards"
找到机器id
curl -X GET "http://localhost:40000/_nodes/process?"
ik分词器和pinyin分词器测试命令,针对7.6.1版本
curl 'http://127.0.0.1:20000/_analyze?pretty=true' -H 'Content-Type: application/json' -d '{ "analyzer":"ik_max_word", "text":"我爱你,中国"}'
curl 'http://127.0.0.1:20000/_analyze?pretty=true' -H 'Content-Type: application/json' -d '{ "analyzer":"pinyin", "text":"我爱你,中国"}'
curl 'http://127.0.0.1:20000/_analyze?pretty=true' -H 'Content-Type: application/json' -d '{ "analyzer":"ik_max_word", "text":"好好学习,天天向上"}'
curl 'http://127.0.0.1:20000/_analyze?pretty=true' -H 'Content-Type: application/json' -d '{ "analyzer":"pinyin", "text":"好好学习,天天向上"}'