美文网首页
基于docker 安装elasticsearch + kiban

基于docker 安装elasticsearch + kiban

作者: Sunny捏 | 来源:发表于2020-06-23 12:48 被阅读0次

    本文基于Docker进行安装,如何安装docker本文就不介绍了,可以参考我之前的文章

    注意要点:

    es和kabana以及ik分词器建议都要同一个版本的,否则可能会出现兼容性等问题,解决比较麻烦

    第一步:通过docker下载es和kabana的镜像

    下载的时长大概15分钟左右,如果配置了阿里云镜像加速的话,大概几分钟就能搞定

    docker pull elasticsearch:6.7.2
    docker pull kibana:6.7.2
    

    如下图,docker仓库中有es和kabana的镜像则代表下载成功了


    第二步:运行容器

    在运行es和kabana容器时,需要注意的是,容器与容器之间网络是独立的,不是属于在局域网内,那么kabana就无法访问到es,所以我下面在运行es容器的时候,额外开启了kabana的端口,为了就是让kabana能够连接我们的es,但是这个时候还并没有在一个网段之间,所以我们在运行kabana容器的时候,需要设置container与es容器公用同一个网段就好了

    运行es

    docker run -it  --name elasticsearch -d -p 9200:9200 -p 9300:9300 -p 5601:5601 elasticsearch:6.7.2
    

    如下图就代表已经成功运行了es容器


    解决1:如果发现es启动到一半自动停止,有效解决办法,增加内存4G以上,和增加处理器为2即可解决

    解决2:分配给ES的内存太小了(无法复现错误信息,具体报错可以自行百度)
    1.进入etc目录,编辑sysctl.conf文件:

    vi /etc/sysctl.conf 
    

    2.添加配置:

    vm.max_map_count=262144
    

    3.执行:

    sysctl -p
    

    4.然后重启虚拟机

    5.启动es如果还是失败,修改limits.conf:

    vi /etc/security/limits.conf
    * soft nofile 65536
    * hard nofile 131072
    * soft nproc 2048
    * hard nproc 4096
    

    6.重启虚拟机

    如下图,则代表启动es成功


    第三步:启动kibana

    运行kabana

    docker run -it -d -e ELASTICSEARCH_URL=http://127.0.0.1:9200 --name kibana --network=container:elasticsearch kibana:6.7.2
    

    网页打开kibana

    网页是英文的,对于英文不好的同学非常不友好,还是在6.7以上版本kibana开始支持中文了,当然我们需要自己设置

    #进入容器
    docker exec -it e191c83da1b2 /bin/bash
    
    #修改配置
     vi /usr/share/kibana/config/kibana.yml
     
    #添加中文配置
    i18n.locale: zh-CN 注意冒号后边有个空格
    
    #退出容器
    exit
    
    #重启kibana即可
    

    可以看到有部分已经被汉化了哦


    第四步:安装ik分词器

    es里面有默认的分词器,但是并不友好,比如我搜索上海,他会默认拆分成两个词语进行查询,本来上海就是一个词语
    如下图:

    192.168.137.6:9200/_analyze
    
    {
        "analyzer":"standard",
        "text":"上海"
    }
    

    现在我们来安装ik分词器
    注意:ik分词器的版本与es的版本一定要一致
    分词器下载地址

    https://github.com/medcl/elasticsearch-analysis-ik/releases
    

    下载源码包,并解压

    wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.7.2/elasticsearch-analysis-ik-6.7.2.zip
    
    创建目录
    mkdir elasticsearch-analysis-ik-6.7.2
    
    解压到指定目录
    unzip elasticsearch-analysis-ik-6.7.2.zip -d elasticsearch-analysis-ik-6.7.2
    
    查看ik官方分词库所有词,我们也可以在里面自定义词
    cat elasticsearch-analysis-ik-6.7.2/config/extra_main.dic
    

    接下来我们将ik分词器上传到es容器中

    docker exec -it 370228c5af65  bash
    

    进入我们es的插件目录中,查看是否有ik分词器,有的话看版本是否对应,不对应删掉重新上传即可

    cd /usr/share/elasticsearch/plugins/
    

    如下图,我这里是没有的


    接着退出容器,将ik分词器复制到es容器里面

    意思: 复制 服务器的ik文件(要绝对地址,通过pwd显示) 到 指定容器下 某个目录下
    docker cp /usr/local/software/elasticsearch-analysis-ik-6.7.2 91eb1e7498fa:/usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-6.7.2
    

    copy完了后,进入容器到目录到我们copy的目录下,就可以看到相应的文件了,到此我们的ik分词器就已经安装完毕


    现在开始准备测试一下我们的ik分词器的效果
    1.首先退出容器,重启es容器
    2.请求接口,类型使用ik分词器即可

    192.168.137.7:9200/_analyze
    
    {
        "analyzer":"ik_smart",
        "text":"上海"
    }
    

    如下图,可以看到上海就不会进行拆分为两个词了。

    相关文章

      网友评论

          本文标题:基于docker 安装elasticsearch + kiban

          本文链接:https://www.haomeiwen.com/subject/xyncfktx.html