docker中安装elasticsearch和kibana以及elasticsearch相关插件的安装(ik分词器;elasticsearch head插件监控管理)

一.ealastic search安装

1.下载ealastic search

docker pull elasticsearch:7.6.2

2.外部文件夹挂载配置及授予文件夹权限

mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml
chmod -R 777 /mydata/elasticsearch/

3.启动Elastic search

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e  "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v  /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.6.2 

-e ES_JAVA_OPTS="-Xms64m -Xmx512m" //设置初始堆内存和最大内存 也可以调整虚拟机内存
4.设置开机启动elasticsearch

docker update elasticsearch --restart=always

5.测试
查看elasticsearch版本信息

http://192.168.56.10:9200/

在这里插入图片描述
显示elasticsearch 节点信息

http://192.168.56.10:9200/_cat/nodes

在这里插入图片描述

二.kibana安装

1.下载kibana

docker pull kibana:7.6.2

2.启动kibana

docker run --name kibana -e ELASTICSEARCH_HOSTS=http://172.17.0.3:9200 -p 5601:5601 -d kibana:7.6.2

3.设置开机启动kibana

docker update kibana  --restart=always

4.测试,访问kibana

http://192.168.56.10:5601

在这里插入图片描述

三.安装ik分词器

1.在前面安装的elasticsearch时,我们已经将elasticsearch容器的“/usr/share/elasticsearch/plugins”目录,映射到宿主机的“ /mydata/elasticsearch/plugins”目录下,所以比较方便的做法就是下载“/elasticsearch-analysis-ik-7.6.2.zip”文件,然后解压到该文件夹下即可。安装完毕后,需要重启elasticsearch容器。

2.如果不嫌麻烦,还可以采用如下方式安装
1)查看elasticsearch版本号
在这里插入图片描述
2)进入es容器内部

docker exec -it elasticsearch /bin/bash

在这里插入图片描述

3)下载ik7.6.2

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

在这里插入图片描述

4)unzip 将压缩包解压到的文件 ik文件夹下

unzip elasticsearch-analysis-ik-7.6.2.zip -d ik

5)将解压好的ik文件夹移动到es的pulgins文件夹下

mv ik plugins/

6)将压缩包删除

 rm -rf elasticsearch-analysis-ik-7.6.2.zip 

在这里插入图片描述
7)在kibana中测试分词器
使用默认:

GET my_index/_analyze
{
   "text":"我是中国人"
}

执行结果:

{
  "tokens" : [
    {
      "token" : "我",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "<IDEOGRAPHIC>",
      "position" : 0
    },
    {
      "token" : "是",
      "start_offset" : 1,
      "end_offset" : 2,
      "type" : "<IDEOGRAPHIC>",
      "position" : 1
    },
    {
      "token" : "中",
      "start_offset" : 2,
      "end_offset" : 3,
      "type" : "<IDEOGRAPHIC>",
      "position" : 2
    },
    {
      "token" : "国",
      "start_offset" : 3,
      "end_offset" : 4,
      "type" : "<IDEOGRAPHIC>",
      "position" : 3
    },
    {
      "token" : "人",
      "start_offset" : 4,
      "end_offset" : 5,
      "type" : "<IDEOGRAPHIC>",
      "position" : 4
    }
  ]
}

使用ik_smart:

GET my_index/_analyze
{
   "analyzer": "ik_smart", 
   "text":"我是中国人"
}

执行结果:

{
  "tokens" : [
    {
      "token" : "我",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "CN_CHAR",
      "position" : 0
    },
    {
      "token" : "是",
      "start_offset" : 1,
      "end_offset" : 2,
      "type" : "CN_CHAR",
      "position" : 1
    },
    {
      "token" : "中国人",
      "start_offset" : 2,
      "end_offset" : 5,
      "type" : "CN_WORD",
      "position" : 2
    }
  ]
}

3.配置ik分词器自定义词库
1)首先在docker中安装nginx;参考博文:docker中安装nginx
在运行下面实例之前,需要安装nginx(安装方法见安装nginx),然后在nginx目录下的html目录下创建es文件夹并创建“fenci.txt”文件;http://192.168.56.10/es/fenci.txt nginx上资源的访问路径

2)修改/usr/share/elasticsearch/plugins/ik/config中的IKAnalyzer.cfg.xml

在这里插入图片描述
原来的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"></entry>
	 <!--用户可以在这里配置自己的扩展停止词字典-->
	<entry key="ext_stopwords"></entry>
	<!--用户可以在这里配置远程扩展字典 -->
	<!-- <entry key="remote_ext_dict">words_location</entry> -->
	<!--用户可以在这里配置远程扩展停止词字典-->
	<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

将其修改为:

<?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.56.10/es/fenci.txt</entry> 
	<!--用户可以在这里配置远程扩展停止词字典-->
	<!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

http://192.168.56.10/es/fenci.txt 这个是nginx上资源的访问路径

3)退出保存并重启elasticsearch否则不生效

四.elasticsearch head插件监控管理

1.下载elasticsearch head

docker pull mobz/elasticsearch-head:5

2.运行elasticsearch head

docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5

3.在浏览器中打开elasticsearch-head页面,填入ElasticSearch地址
在这里插入图片描述
4.在这里可能会出现跨域拒绝访问问题,连接不上elasticsearch
在elasticsearch.yml中添加:

http.cors.enabled: true
http.cors.allow-origin: "*"

在这里插入图片描述
在这里插入图片描述
5.重启 elasticsearch容器

docker restart  elasticsearch

到此就圆满解决啦!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值