6.Docker部署ES+kibana

发布于:2025-07-02 ⋅ 阅读:(15) ⋅ 点赞:(0)
部署ES(Elasticsearch)+kibana

1.ES暴露的端口很多

2.ES十分消耗内存

3.ES的数据一般需要挂载出去,放在安全目录(挂载)

elastic

前往官方手册

1.下载运行elasticsearch的

docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch

这里不用--net somenetwork这个参数,这是docker网络,暂时不用

用下面这个

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch

用docker ps -a 看到elasticsearch已经是推出状态

我又重新启动一个elasticsearch01容器

然后看了日志,原来是因为我的服务器不够elasticsearch占有内存导致

这样的话,设置它的启动后占有的内存

docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" elasticsearch

再用docker ps查看

这里我用的Xterminal软件,所以可以很直观的看到很占内存。

也可以用docker stats

验证是否运行成功,curl localhost:9200

docker run -d --name elasticsearch02 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" elasticsearch

这个内存占用还是太大

在修改为

docker run -d --name elasticsearch04 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" elasticsearch

参数含义:

-e "discovery.type=single-node" 设置环境变量 指定 Elasticsearch 以单节点模式运行(无需集群)

-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" 设置 JVM 堆内存参数 -Xms512m 初始堆内存,-Xmx512m 最大堆内存

安装Kibana镜像

docker pull kibana

docker run -d --name kibana01 -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://elastissearch04:9200" --link elasticsearch:elasticsearch04 kibana

我这里准备kibana连接ES,发现不成功

说是容器不存在,没有启动

检查发现两处错误

启动成功

尝试curl loclhost:5601验证

去web页面访问一下。

这并没有来连接成功

应该是我的容器名地址错误

上面的命令应该是没有给我配置,下面是我的思路

命令:

# 进入 Kibana 容器 docker exec -it kibana /bin/bash # 检查配置文件是否存在 ls /usr/share/kibana/config/ # 如果不存在,创建配置目录和文件 mkdir -p /usr/share/kibana/config/ echo "elasticsearch.url: 'http://elasticsearch:9200'" > /usr/share/kibana/config/kibana.yml echo "server.host: '0.0.0.0'" >> /usr/share/kibana/config/kibana.yml # 退出并重启 Kibana exit docker restart kibana

尝试ping

能够ping

理论上可以了

页面去成功访问。

设置密码

# 进入容器 docker exec -it elasticsearch /bin/bash # 编辑配置文件(使用 vi/nano 或直接追加配置) echo "xpack.security.enabled: true" >> /usr/share/elasticsearch/config/elasticsearch.yml echo "xpack.security.http.ssl.enabled: false" >> /usr/share/elasticsearch/config/elasticsearch.yml # 开发环境禁用 HTTPS exit

重启es服务

docker restart elasticsearch

这里重启之后,ES就挂掉了,大概率是因为内存的原因

# 进入 Kibana 容器 docker exec -it kibana /bin/bash # 编辑配置文件 echo "elasticsearch.username: 'elastic'" >> /usr/share/kibana/config/kibana.yml echo "elasticsearch.password: '你刚设置的密码'" >> /usr/share/kibana/config/kibana.yml exit

重启

docker restart kibana

如果是Kibana挂掉了,又2种方法,

第一种就是通过挂载卷修复(适合生产环境)

第二种就是直接修改 Kibana 配置(推荐)生产环境慎用!完成后需重新启用认证。

目前没有学挂载,使用第二种


网站公告

今日签到

点亮在社区的每一天
去签到