docker安装ElasticSearch&Kibana

本文参考以下两篇文章

✅ElasticSearch&Kibana 部署 · 云效 Thoughts · 企业级知识库 (aliyun.com)

docker安装ElasticSearch&Kibana - 飞书

安装elasticsearch

使用docker下载es:

bash 复制代码
docker pull elasticsearch:8.13.0

挂载配置

创建挂在文件目录

bash 复制代码
mkdir -p /home/docker/es/config
mkdir -p /home/docker/es/data
mkdir -p /home/docker/es/plugins
mkdir -p /home/docker/es/logs

#权限
chmod 777 /home/docker/es/config
chmod 777 /home/docker/es/data
chmod 777 /home/docker/es/plugins
chmod 777 /home/docker/es/logs

编辑 /home/docker/es/config/elasticsearch.yml 文件

bash 复制代码
cluster.name: "nfturbo-cluster"
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: true

启动镜像

bash 复制代码
docker run --name elasticsearch \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms256m -Xmx512m" \
-v /home/docker/es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /home/docker/es/data:/usr/share/elasticsearch/data \
-v /home/docker/es/plugins:/usr/share/elasticsearch/plugins \
-v /home/docker/es/logs:/usr/share/elasticsearch/logs \
-d elasticsearch:8.13.0

设置内置用户密码

对于在 Docker 环境中设置 Elasticsearch 内置用户密码,建议使用 elasticsearch-setup-passwords auto 命令,因为它会自动为内置用户生成随机密码,并直接显示在控制台上。这种方式更适合自动化部署或脚本化操作。

如果你希望手动输入密码并交互式地设置密码,可以使用 elasticsearch-setup-passwords interactive 命令。这种方式适合于交互式设置密码,并可以根据你的需要手动输入每个用户的密码。

bash 复制代码
# 进入es容器内部
docker exec -it a46f2f8bdfd7 /bin/bash

#手动设置用户密码
elasticsearch-setup-passwords interactive

#重启es容器

然而这个并不行,后面你的kibana启动后会遇到这样一个问题,++原因是++最新版本的 Elasticsearch 引入了更加严格的安全策略,特别是涉及到 Kibana 需要访问的系统索引。具体来说,错误信息指出使用的是 *elastic*超级用户账户,但是这个账户不允许写入 Kibana 所需的系统索引。

Error: [config validation of [elasticsearch].username]: value of "elastic" is forbidden

进入es容器,新加用户,并且设置角色权限,根据提示创建密码,再次确认密码

bash 复制代码
bin/elasticsearch-users useradd gxj
#密码123456
bin/elasticsearch-users roles -a superuser gxj
bin/elasticsearch-users roles -a kibana_system gxj

警告不要紧,不用管

WARNING: Owner of file [/usr/share/elasticsearch/config/users_roles] used to be [root], but now is [elasticsearch]

浏览器访问

ip:9200, 记得防火墙开放映射 端口

安装Kibana

使用docker下载kibana

bash 复制代码
docker pull kibana:8.13.0

查看es的ip

bash 复制代码
docker inspect elasticsearch|grep IPAddress

挂载配置

bash 复制代码
#创建挂载文件
touch /home/docker/es/config/kibana.yml
#权限
chmod 777 /home/docker/es/config/kibana.yml

编辑kibana.yml,需要把刚刚查到的es的ip设置到++elasticsearch.hosts++中,其他的配置自己适当调整即可

bash 复制代码
server.name: kibana
#server.port: 5601
server.host: 0.0.0.0
#改成 es 的内网 ip
elasticsearch.hosts: [ "http://172.17.0.2:9200" ]
elasticsearch.username: "gxj"
elasticsearch.password: "123456"
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"

启动Kibana

bash 复制代码
docker run --name kibana \
-p 5601:5601 \
-v /home/docker/es/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
-d kibana:8.13.0

浏览器访问

http://ip:5601, 记得防火墙开放映射 端口

输入用户名(gxj)、密码(123456))即可访问

复制代码
bash 复制代码
#kibana容器运行日志
docker logs kibana
相关推荐
wydd99_lll38 分钟前
docker特权模式下逃逸
运维·docker·容器
mseaspring2 小时前
一款用于监控跨多台主机 Docker 容器的实时终端
运维·docker·容器
阿里云大数据AI技术3 小时前
深度回顾 | 阿里云携手 Elastic 定义 Agent 时代搜索新范式,解锁 Search AI 核心生产力
elasticsearch·agent
你有医保你先上5 小时前
Elasticsearch Go 客户端
后端·elasticsearch·go
Elasticsearch6 小时前
你的 PromQL 查询现在可以在 Kibana 中运行了
elasticsearch
SPC的存折6 小时前
6、Docker常用配置
运维·docker·容器
图图玩ai6 小时前
SSH 命令管理工具怎么选?从命令收藏到批量执行一次讲清
linux·nginx·docker·ai·程序员·ssh·可视化·gmssh·批量命令执行
SPC的存折7 小时前
4、Docker私有仓库
运维·docker·容器
齐潇宇8 小时前
Docker概述与安装
linux·运维·docker·容器
如来神掌十八式8 小时前
Elasticsearch的dsl语句学习
elasticsearch