Docker安装elasticsearch + head + kibana(避坑)

<h2>docker 安装es + es-head + kibana</h2>
最近项目中可能会用到elasticsearch,所以想在腾讯云上搭建一个elasticsearch当做练手用。考虑到服务器的配置,所以选择了docker安装部署。

直接下载软件压缩包解压之后也是可以直接用的,不过嫌麻烦,用docker一样的。本次es+kibana版本都为7.7.1,相对来说版本比较高,所以安装的时候踩了很多坑,希望这篇文章能给大家带来帮助,后续也回发布一些学习过程中的经验和心得。

参考网址:

es安装:https://www.cnblogs.com/nesn/p/15898123.html

    https://blog.csdn.net/fangkang7/article/details/119942514

kibana安装:https://blog.csdn.net/lsy_csdn_/article/details/118069189

```

个人执行步骤如下:

首先服务器系统要有docker,这个非常简单,就不说docker安装了。

一、安装es:

a、使用docker直接获取es镜像,执行命令docker pull elasticsearch:7.7.1 (版本自己选择,7.x都差别不大,不过要保证es和kibana版本一致。)

通过挂挂载的方式将配置文件和data数据进行容器外持久化。

#1、创建Elasticsearch配置文件夹
mkdir -p /usr/local/data-docker/elasticsearch/config
#2、创建Elasticsearch数据文件夹
mkdir -p /usr/local/data-docker/elasticsearch/data
#3、创建Elasticsearch插件文件夹(如:ik)
mkdir -p /usr/local/data-docker/elasticsearch/plugins
#说明:目的将CentOS本地的文件夹映射到Elasticsearch容器,以实现容器数据的持久化到CentOS本地,以及通过CentOS本地文件夹内容的修改同步到容器
#4、对文件夹进行赋值
chmod -R 777 /usr/local/data-docker/elasticsearch/

#5、注意,当我们通过es-head访问es时,9100->9200,需要解决跨域问题。
命令:touch /usr/local/data-docker/elasticsearch/config/elasticsearch.yml
命令:vim elasticsearch.yml
内容:
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"

#6、执行docker启动命令
docker run --name elasticsearch -p 9200:9200
-p 9300:9300
-e "discovery.type=single-node"
-e ES_JAVA_OPTS="-Xms512m -Xmx1024m"
-v /usr/local/data-docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
-v /usr/local/data-docker/elasticsearch/data:/usr/share/elasticsearch/data
-v /usr/local/data-docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins
-d elasticsearch

#自己注意语句赋值粘贴是否正确哈!不要有换行符。

字段说明:
--name elasticsearch:将Elasticsearch容器命名为 elasticsearch
-p 9200:9200:将容器的9200端口映射到宿主机9200端口
-p 9300:9300:将容器的9300端口映射到宿主机9300端口,目的是集群互相通信
-e "discovery.type=single-node":单例模式
-e ES_JAVA_OPTS="-Xms64m -Xmx128m":配置内存大小 根据自己的服务器量力而行。
-v /usr/local/data-docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:将配置文件挂载到宿主机
-v /usr/local/data-docker/elasticsearch/data:/usr/share/elasticsearch/data:将数据文件夹挂载到宿主机
-v /usr/local/data-docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins:将插件目录挂载到宿主机(需重启)
-d elasticsearch:后台运行容器,并返回容器ID

#7、启动之后自己访问http://服务器ip:9200, 能否获取下面结果。(服务器命令行:curl http://localhost:9200)
{
"name" : "550eca5cf3b2",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "1mP9IJU3TUy_C2DZMfKGBg",
"version" : {
"number" : "7.7.0",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "81a1e9eda8e6183f5237786246f6dced26a10eaf",
"build_date" : "2020-05-12T02:01:37.602180Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"

#8、设置自动启
docker update elasticsearch --restart=always

```

```
二、安装es-head


1、拉去镜像。也采用Docker进行快速安装,跟上边一样同样先拉取镜像,执行命令docker pull mobz/elasticsearch-head:7.7.1

2、创建容器,执行docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:7.7.1

3、启动容器:docker start 容器id

4、访问http://ip:9100.
```
```
三、安装kibana(这个问题比较多,因为要连接es)
1、创建挂在的配置文件
mkdir -p /usr/local/data-docker/kibana/conf
在该文件夹下创建配置文件
touch kibana.yml

2、修改配置文件参数
配置IP地址为通用地址:
server.host: "0.0.0.0"

② 配置访问elasticsearch地址:(这一步问题最多)
elasticsearch.hosts: [ "http://172.17.0.5:9200" ]
坑点有二:1、是版本高的kibana不再使用url,而是hosts参数
2、因为需要连接es,而我们的es又是使用docker启动,所以需要执行docker inspect elasticsearch 来获取es的内部连接地址
"IPAddress": "172.17.0.5",

③ 配置kibana数据在elasticsearch存储index:
kibana.index: "kibana_index"

具体配置如下:
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://172.17.0.5:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true

3、启动容器(如果没有提前拉去镜像,会自动下载指定版本镜像,参数同上)

docker run -d --name=kibana --restart=always -p 5601:5601 -v /usr/local/data-docker/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.7.1

4、访问 http://服务器ip:5601 即可访问。
页面如下:

 

 


```

 

至此结束。

 

posted @   香蕉少侠  阅读(412)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示