docker安装ElasticSearch&Kibana

avatar
作者
猴君
阅读量:0

本文参考以下两篇文章

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

docker安装ElasticSearch&Kibana - 飞书

安装elasticsearch

使用docker下载es:

docker pull elasticsearch:8.13.0

挂载配置

创建挂在文件目录

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 文件

cluster.name: "nfturbo-cluster" network.host: 0.0.0.0 http.cors.enabled: true http.cors.allow-origin: "*" xpack.security.enabled: true

启动镜像

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 命令。这种方式适合于交互式设置密码,并可以根据你的需要手动输入每个用户的密码。

# 进入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容器,新加用户,并且设置角色权限,根据提示创建密码,再次确认密码

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

docker pull kibana:8.13.0

查看es的ip

docker inspect elasticsearch|grep IPAddress

挂载配置

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

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

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

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))即可访问

 
#kibana容器运行日志 docker logs kibana

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!