Docker部署elasticsearch及安装IK分词器插件

1、拉取启动es镜像

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2

以上方法为正常安装,但是es是重量级框架,内存耗用多。据实际硬件情况,可参考如下安装方式限制es的内存为64M-512M之间,若需要配置设置网络可自行创建网络并用--net命令指定网络,命令如下:
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms64m -Xmx512m" elasticsearch:7.6.2

若需要安装IK分词器之类插件建议容器启动时进行插件文件夹挂载,命令如下:

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -v /home/es/esplugins:/usr/share/elasticsearch/plugins -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms64m -Xmx512m" elasticsearch:7.6.2

实际应用中涉及到较多容器内部文件配置、修改操作,可对关键配置文件进行挂载,如下:

docker run -d --name es -p 9200:9200 -p 9300:9300 -v /usr/docker/elasticsearch/data:/usr/share/elasticsearch/data -v /usr/docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/docker/elasticsearch/logs:/user/share/elasticsearch/logs -v /usr/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins -v /usr/docker/elasticsearch/backup:/usr/share/elasticsearch/backup -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" --restart=always elasticsearch:7.17.7
 

2、安装kibana

kibana提供友好的可视化界面展现及分析功能,注意kibana版本必须和es保持一致,注意根据实际需求启动时指定网络。若不指定docker容器默认网络是docker0。 dokcer network inspect es容器名称 可查看es的网络IP。

docker run -d --name kibana -p 5601:5601 kibana:7.6.2 

 需要注意的是kibana配置文件kibana.yml通常需要被修改,如修改指向es的ip,配置文件中默认是localhost本机,亦或是修改国际化的配置,EN改为CN等。故kibana启动的时候通常对kibana.yml文件进行挂载。可参考如下命令启动kibana:

docker run -d --name kibana -p 5601:5601 -v /home/es/kibana:usr/share/kibana/config kibana:7.6.2 

基础的kibana.yml配置如下:

server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://xxx.xxx.xxx.xxx:9200" ]  #指定es服务所在的ip及端口
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN" #指定国际化方式为中文

 若kibana容器启动后,想执行挂载操作可参考如下操作步骤:

1、查看kibana容器的容器id全称,docker ps命令展示的只是容器id前半段。

命令:docker inspect xxx容器名称 如下图可见容器完整id

2、关闭docker服务

命令:systemctl stop docker 

3、进入对应docker容器内部

命令:cd /var/lib/docker/containers/容器id/

此处的容器id即为步骤1查询到的id

4、修改config.v2.json文件,该文件保存了docker容器的配置信息。我们需要修改的是MountPoints挂载信息。为避免改错容器信息,可先备份一份,此文件是一串压缩过的json格式,我们可以将其辅助到json格式化工具中进行编辑,搜索MountPoints即可:

"MountPoints": {
        "/usr/share/kibana/config": {     
            "Source": "/home/es/kibana",
            "Destination": "/usr/share/kibana/config",
            "RW": true,
            "Name": "",
            "Driver": "",
            "Type": "bind",
            "Propagation": "rprivate",
            "Spec": {
                "Type": "bind",
                "Source": "/home/es/kibana",
                "Target": "/usr/share/kibana/config"
            },
            "SkipMountpointCreation": false
        }
    },

 5、以上json便是手动配置了宿主机/home/es/kibana与容器/usr/share/kibana/config目录挂载。修改完成后将json进行压缩,覆盖config.v2.json内容即可。

6、重启dokcer服务、重启容器。

3、安装IK分词器

下载和es相同版本的IK分词器。将分词器插件解压到宿主机于容器内/usr/share/elasticsearch/plugins目录进行挂载的目录即可,添加插件后需要重启es。

配置分词器ik词汇:修改ik分词器config文件夹下的IKAnalyzer.cfg.xml文件,如下图配置同级目录下的xiesijie.dic文件作为自定义中的拓展词汇

<properties>
        <comment>IK Analyzer 扩展配置</comment>
        <!--用户可以在这里配置自己的扩展字典 -->
        <entry key="ext_dict">xiesijie.dic</entry>
         <!--用户可以在这里配置自己的扩展停止词字典-->
        <entry key="ext_stopwords"></entry>
        <!--用户可以在这里配置远程扩展字典 -->
        <!-- <entry key="remote_ext_dict">words_location</entry> -->
        <!--用户可以在这里配置远程扩展停止词字典-->
        <!-- <entry key="remote_ext_stopwords">words_location</entry> -->
</properties>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值