使用docker安装ElasticSearch和kibana
Posted 吹灭读书灯 一身都是月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用docker安装ElasticSearch和kibana相关的知识,希望对你有一定的参考价值。
使用 Docker安装
安装ES
拉取镜像
docker pull elasticsearch:7.6.1
创建网络
docker network create elastic
加上内存限制启动 ES
docker run -d --name es01-test --net elastic -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.1
安装Kibana
Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板( dashboard ))实时显示Elasticsearch查询动态。设置Kibana非常简单。无需编码或者额外的基础架构,几分钟内就可以完成Kibana安装并启动Elasticsearch索引监测。
官网:https://www.elastic.co/cn/kibana
(汉化。只要在kibana.yml配置文件目录,在配置文件中修改为zh-CN)
启动 Kibana
# 安装Kibana
docker pull kibana:7.6.1
# 启动
docker run -d --name kib01-test --net elastic -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://es01-test:9200" kibana:7.6.1
启动完成后,开放防火墙端口,查看是否可用访问!!!注意kibana启动会很慢而且很占CPU,我就是几次都是CPU满了,吓得我赶紧找问题…
开放防火墙的指定端口
firewall-cmd --zone=public --add-port=9200/tcp --permanentfirewall-cmd --zone=public --add-port=5601/tcp --permanent
重启防火墙
firewall-cmd --reload
配置密码访问ES
修改Elastic配置
使用基本许可证时,默认情况下禁用Elasticsearch安全功能。由于我测试环境是放在公网上的,所以需要设置下密码访问。相关文档可以参考这里
1、进入正在运行的容器
docker exec -it 容器id /bin/bash
#安装 vim
yum -y install vim
#查看目录
[root@5c43a5b9d09a elasticsearch]# ls
LICENSE.txt README.asciidoc config jdk logs plugins
NOTICE.txt bin data lib modules
2、更改 config/elasticsearch.yml
文件,设置 xpack.security.enabled
为 true
[root@06c5914709a5 config]# vim elasticsearch.yml
[root@06c5914709a5 config]# cat elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
xpack.security.enabled: true
#配置跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
3、重启elasticsearch容器
[root@VM-0-6-centos z-test]# docker restart es01-test
es01-test
4、进入容器设置各个组件的密码
[root@06c5914709a5 elasticsearch]# ./bin/elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana]:
Reenter password for [kibana]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
修改 Kibana 配置
1、修改 kibana.yml
(find / -name kibana.yml)
进入容器docker exec -it 容器id /bin/bash
并进入config目录cd config
添加最后两行配置用户和密码
bash-4.2$ vi kibana.yml
bash-4.2$ cat kibana.yml
#
# ** THIS IS AN AUTO-GENERATED FILE **
#
# Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
elasticsearch.username: "elastic"
2、创建kibana keystore
./bin/kibana-keystore create
3、在kibana keystore 中添加密码,并输入自己刚刚配置的ES密码
./bin/kibana-keystore add elasticsearch.password
4、重启容器
[root@VM-0-6-centos /]# docker restart kib01-test
kib01-test
再次访问:ip:9200
,则需要输入账号和密码
账号为:elastic
安装IK分词器插件
分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比如“我爱中国"会被分为"我" “爱”“中”“国”,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。
IK提供了两个分词算法: ik_smart和ik_max_word,其中 ik_smart为最少切分,ik_max_word为最细粒度划分!
1、进入容器
docker exec -it 容器名 /bin/bash
2、在线下载并安装
Ik分词器github链接:https://github.com/medcl/elasticsearch-analysis-ik/releases/
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.1/elasticsearch-analysis-ik-7.6.1.zip
3、退出容器并重启ES
exit 或者 Ctrl + Q + P
docker restart 容器id
使用:
-
ik_smart最小切分
{ "tokens" : [ { "token" : "中国共产党", "start_offset" : 0, "end_offset" : 5, "type" : "CN_WORD", "position" : 0 } ] }
-
ik_max_word最细力度划分,穷尽所有词。
{ "tokens" : [ { "token" : "中国共产党", "start_offset" : 0, "end_offset" : 5, "type" : "CN_WORD", "position" : 0 }, { "token" : "中国", "start_offset" : 0, "end_offset" : 2, "type" : "CN_WORD", "position" : 1 }, { "token" : "国共", "start_offset" : 1, "end_offset" : 3, "type" : "CN_WORD", "position" : 2 }, { "token" : "共产党", "start_offset" : 2, "end_offset" : 5, "type" : "CN_WORD", "position" : 3 }, { "token" : "共产", "start_offset" : 2, "end_offset" : 4, "type" : "CN_WORD", "position" : 4 }, { "token" : "党", "start_offset" : 4, "end_offset" : 5, "type" : "CN_CHAR", "position" : 5 } ] }
注意自己需要的词,要加进到字典中。
以上是关于使用docker安装ElasticSearch和kibana的主要内容,如果未能解决你的问题,请参考以下文章
使用docker安装ElasticSearch和kibana