Docker安装ElasticSearch和Kibana并解决常见问题

一. es安装

1.docker镜像下载

docker pull elasticsearch:7.3.0

 2.启动

docker run -di --name=test_elasticsearch -p 9200:9200 -p 9300:9300 elasticsearch:7.3.0

 test_elasticsearch 为es容器的名字,可以随便定义。

3.查看

docker PS

CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                                                     NAMES
0551cce33703        docker.io/canal/canal-server   "/alidata/bin/main..."   29 hours ago        Up 25 hours         2222/tcp, 8000/tcp, 11112/tcp, 0.0.0.0:11111->11111/tcp   canal
894b2c4f4850        redis                          "docker-entrypoint..."   35 hours ago        Up 35 hours         0.0.0.0:6379->6379/tcp                                    redis
7f1706f57195        morunchang/fastdfs             "sh storage.sh"          3 days ago          Up 36 hours                                                                   storage
1085eeff07d0        morunchang/fastdfs             "sh tracker.sh"          3 days ago          Up 36 hours                                                                   tracker

发现没有。。。

4.查看启动日志

docker logs -f    test_elasticsearch

或者 :docker logs -f -t --tail 1000 shop_es      :查询shop_es最新1000条日志

仔细找,有如下报错信息:

max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

意思就是es所需的内存至少需要262144,所以执行下面命令设置;

sysctl -w vm.max_map_count=262144

 执行完重启,如果还报下面的错

ERROR: [1] bootstrap checks failed
[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

大意就是:必须配置[discovery.seed_hosts,discovery.seed_providers,cluster.initial_master_nodes]中的至少一个。

执行命令:

docker run -d -e ES_JAVA_POTS="-Xms256m -Xmx256m"  -e "discovery.type=single-node" -p 9200:9200 -p 
9300:9300 --name test_elasticsearch bdaab402b220

最后一个字符串 bdaab402b220主要改成自己es容器的id。

浏览器或post访问:成功!

上面jvm内存是在启东时设置的,但是每次启动都得设置,也可以更改配置文件,可以一劳永逸,步骤如下;

1.进入es容器

docker exec shop_es -it /bin/bash

执行命令如下图;

2. 进入config文件夹

cd config

config文件如下:

 有个jvm.options文件

3.编辑jvm.options文件

上图两个参数根据自己电脑内存配置,即可。重启。

二. ik分词器安装

ik下载地址:

https://github.com/medcl/elasticsearch-analysis-ik/releases

下载zip后,上传到任意一个文件,并解压,可以更改文件名字,我这里改为了  ik,如下图:

 然后将解压后的文件复制到docker容器中的es配置文件中

docker cp ./ik changgou_elasticsearch:/usr/share/elasticsearch/plugins

重启es,postman请求:

 

三。安装Kibana

1.下载镜像

docker pull docker.io/kibana:5.6.8

2.安装kibana容器

docker run -it -d -e ELASTICSEARCH_URL=http://[es的ip]:9200 --name kibana --restart=always -p 5601:5601 kibana:5.6.8 

3.浏览器输入 ip + 端口,例如127.0.0.1;5601,显示页面如下:

由于es和Kibana版本不兼容,上面出现了两个警告。更换版本,同样的安装方式即可。

注:安装kibana7.3.0如果出现以下报错:

 翻译过来就是;[warning] [license] [xpack]无法从Elasticsearch的[data]集群获得X-Pack插件的许可信息。 错误:无活动连接

解决步骤:

1。修改 进入到es,修改elsaticsearch.yml 文件,文件末尾增加下面代码:
 

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

已经有的就不用增加了,然后重启:

浏览器访问es,出现下图,需要用户名密码:不用管

2.修改es密码,进入到es的bin文件下:有下面这些文件:

3.在bin文件夹下执行命令:

 ./elasticsearch-setup-passwords interactive

出现下面提示:

先输入y,冒号后面输入同一个密码,知道系统自动结束。

4.重启es,浏览器访问输入用户名密码,可以访问es,用户名默认为 kibana,密码为用户输入的密码。

5.开始修改kibana。

5.1: 进入kibana容器

docker exec -it kibana /bin/bash

5.2 查看文件: ls

有下面文件:

 进入到config文件夹下,有 kibana.yml文件

修改kibana.yml文件

在文件末尾增加两行:

elasticsearch.username: "kibana"
elasticsearch.password: "elastic"

密码就是登陆es的用户名密码。保存退出,重启

如果启动后浏览器访问还报下面的错:

 或其他错误;

再修改kibana.yml文件

把默认的  elasticsearch.hosts: [ "http://elasticsearch:9200" ]    中的http://elasticsearch:9200 中的elasticsearch改为es的ip

再增加行:

xpack.security.encryptionKey: "122333444455555666666777777788888888"
xpack.reporting.encryptionKey: "122333444455555666666777777788888888"

最终,浏览器访问:

输入:kibana   elastic   结果:

报错:

{"statusCode":403,"error":"Forbidden","message":"Forbidden"}

原因是不能使用kibana登陆kibana,要用elastis登陆;

使用 elastic  elastic登陆后:

终于:

虽然不知道页面上是什么,但总觉得是对的。

折腾了两个小时,瞎折腾,但总归解决了。

另;es最终的配置文件:

http.host: 0.0.0.0
transport.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
network.host: 106.13.83.184
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

四.安装elasticsearch-head

1.使用docker安装,拉取镜像:

docker pull mobz/elasticsearch-head:5

2.查看镜像:docker images

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值