美文网首页
Docker下ELK设置

Docker下ELK设置

作者: 商鲲 | 来源:发表于2021-04-27 19:03 被阅读0次

    1获取、启动elk

    1.1获取elk镜像

    $ docker pull sebp/elk

    1.2启动elk镜像

    • 启动elk:
      $ docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -e ES_MIN_MEM=128m -e ES_MAX_MEM=1024m >-it --name elk sebp/elk
      如果启动失败,报下面错误:
      "This file contains the maximum number of memory map areas a process may have
      .............
      The default value is 65536. "
      说明进程可以拥有的VMA(虚拟内存区域)的最大数量(65536)太小,
      在配置文件中显示设置该值为262144,并重新加载sysctl.conf
      可以通过 # sysctl -a|grep vm.max_map_count查看VMA是否已经是新设置的值,
    • 设置max_map_count
      $ echo vm.max_map_count=262144 >> /etc/sysctl.conf
    • 重新加载/etc/sysctl.conf使用max_map_count生效
      $ sysctl -p
    • 查看当前的vm.max_map_coun
      sysctl -a|grep vm.max_map_count
    • 删除上次启动失败的elk
      $ docker rm elk
    • 这次用后台启动方式启动elk
      $ docker run -d -p 5601:5601 -p 9200:9200 -p 5044:5044 -e ES_MIN_MEM=128m -e ES_MAX_MEM=1024m >-it --name elk sebp/elk

    2Kibana配置

    2.1汉化Kibana

    • 进入docker的elk容器
      $ docker exec -it elk bash
    • 修改配置文件,kibana.yml,加上一行。注意yml格式冒号中间K:V中间要有制表符
      $ echo "i18n.locale: zh-CN" >> /opt/kibana/config/kibana.yml
    • 退出docker容器
      $ exit
    • 宿主机重启elk,使配置生效,如果一切正常
      $ docker restart elk
    • 刷新kibana客户端页面,则显示汉化后的界面

    3ES配置(ES如果集群则所有集群结点都要单独配置)

    3.1添加smartcn中文分词

    • smartcn介绍
      中科院研发,官方推荐的汉语分词器,目前不支持自定义词库
    • 安装:直接到ES的bin目录执行sh elasticsearch-plugin install analysis-smartcn即可
    $ docker exec -it elk bash
    $ cd /opt/elasticsearch/bin
    $ sh elasticsearch-plugin install analysis-smartcn
    $ exit
    
    • 如果下载正常,重启elk,elk的smartcn分词器就可以使用了
      $ docker restart elk

    3.2添加IK中文分词(注意IK分词器和ES的版本一定要一致)

    • IK使用简单说明
    1. ik_max_word
      会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国、中华人民、中华、华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。
    2. ik_smart
      会做最粗粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为中华人民共和国、人民大会堂。
    3. 最佳实践
      两种分词器使用的最佳实践是:索引时用ik_max_word,在搜索时用ik_smart。
      即:索引时最大化的将文章内容分词,搜索时更精确的搜索到想要的结果。
      举个例子:
      我是个用户,输入“华为手机”,我此时的想法是想搜索出“华为手机”的商品,而不是华为其它的商品,也就是商品信息中必须只有华为手机这个词。
    • 同上面smartcn的插件直接安装方式,安装后一样需要重启
      $ sh elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.0/elasticsearch-analysis-ik-7.12.0.zip
    • 国内访问github不是很稳定,只能本地安装
      在宿主机准备好elasticsearch-analysis-ik-7.12.0.zip,然后解压到目录analysis-ik
      将上述文件夹拷贝到elk容器的/opt/elasticsearch/plugins目录下即可
    $ mkdir analysis-ik
    $ mv ~/elasticsearch-analysis-ik-7.12.0.zip
    $ unzip elasticsearch-analysis-ik-7.12.0.zip
    $ rm -f elasticsearch-analysis-ik-7.12.0.zip
    $ docker cp ~/analysis-ik elk:/opt/elasticsearch/plugins/
    
    • 重启elk,ES的IK分词器就可以使用了
      $ docker restart elk

    相关文章

      网友评论

          本文标题:Docker下ELK设置

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