Docker下ELK设置

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设置)