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使用简单说明
- ik_max_word
会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国、中华人民、中华、华人、人民共和国、人民、共和国、大会堂、大会、会堂等词语。- ik_smart
会做最粗粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为中华人民共和国、人民大会堂。- 最佳实践
两种分词器使用的最佳实践是:索引时用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
网友评论