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. "
說明進(jìn)程可以擁有的VMA(虛擬內(nèi)存區(qū)域)的最大數(shù)量(65536)太小辅甥,
在配置文件中顯示設(shè)置該值為262144,并重新加載sysctl.conf
可以通過# sysctl -a|grep vm.max_map_count
查看VMA是否已經(jīng)是新設(shè)置的值, - 設(shè)置max_map_count
$ echo vm.max_map_count=262144 >> /etc/sysctl.conf
- 重新加載/etc/sysctl.conf使用max_map_count生效
$ sysctl -p
- 查看當(dāng)前的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
- 進(jìn)入docker的elk容器
$ docker exec -it elk bash
- 修改配置文件撑帖,kibana.yml豌拙,加上一行驻呐。注意yml格式冒號中間K:V中間要有制表符
$ echo "i18n.locale: zh-CN" >> /opt/kibana/config/kibana.yml
- 退出docker容器
$ exit
- 宿主機(jī)重啟elk毁渗,使配置生效践磅,如果一切正常
$ docker restart elk
- 刷新kibana客戶端頁面,則顯示漢化后的界面
3ES配置(ES如果集群則所有集群結(jié)點都要單獨配置)
3.1添加smartcn中文分詞
- smartcn介紹
中科院研發(fā)灸异,官方推薦的漢語分詞器府适,目前不支持自定義詞庫 - 安裝:直接到ES的bin目錄執(zhí)行
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
會將文本做最細(xì)粒度的拆分檐春,比如會將“中華人民共和國人民大會堂”拆分為“中華人民共和國、中華人民儡嘶、中華喇聊、華人、人民共和國蹦狂、人民誓篱、共和國、大會堂凯楔、大會窜骄、會堂等詞語。- ik_smart
會做最粗粒度的拆分摆屯,比如會將“中華人民共和國人民大會堂”拆分為中華人民共和國邻遏、人民大會堂糠亩。- 最佳實踐
兩種分詞器使用的最佳實踐是:索引時用ik_max_word,在搜索時用ik_smart准验。
即:索引時最大化的將文章內(nèi)容分詞赎线,搜索時更精確的搜索到想要的結(jié)果。
舉個例子:
我是個用戶糊饱,輸入“華為手機(jī)”垂寥,我此時的想法是想搜索出“華為手機(jī)”的商品,而不是華為其它的商品另锋,也就是商品信息中必須只有華為手機(jī)這個詞滞项。
- 同上面smartcn的插件直接安裝方式,安裝后一樣需要重啟
$ sh elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.0/elasticsearch-analysis-ik-7.12.0.zip
- 國內(nèi)訪問github不是很穩(wěn)定夭坪,只能本地安裝
在宿主機(jī)準(zhǔn)備好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