【运维】Ubuntu18.04系统docker方式安装ElasticSearch和kibana

前言

最近需要搭建一套测试环境,用到了ElasticSearch( 简称es)搜索引擎,安装过程有些曲折,记录下来作为经验。

正文

环境

  1. Ubuntu18.04 操作系统
  2. Docker Server Version: 20.10.7
  3. ElasticSearch Version: 8.5.3
  4. Kibana Version: 8.5.3

说明

ElasticSearch 是一个开源分布式搜索引擎,可以快速地储存、搜索和分析海量数据,Kibana是为ElasticSearch设计的可视化平台,可以用来搜索、查看ElasticSearch的数据,实现数据分析和图表的可视化。

安装及配置ElasticSearch和Kibana流程

1. 下载镜像

bash 复制代码
docker pull elasticsearch:8.5.3
docker pull kibane:8.5.3

2. 创建网络

bash 复制代码
docker network create es-net

3. 创建elasticsearch 挂载目录,设置访问权限

bash 复制代码
mkdir -p /data/es_docker/{config,data,logs,plugins}
chmod -R 777 /data/es_docker

4. 创建elasticsearch 容器

bash 复制代码
docker run -d --name elasticsearch -e ES_JAVA_OPTS="-Xms1024m -Xmx1024m" -e "discovery.type=single-node" -v /data/es_docker/data:/usr/share/elasticsearch/data  -v /data/es_docker/logs:/usr/share/elasticsearch/logs   -v /data/es_docker/plugins:/usr/share/elasticsearch/plugins  --privileged --restart=always --network es-net  -p 9200:9200 -p 9300:9300 elasticsearch:8.5.3

5. 配置elasticsearch用户及安全认证

bash 复制代码
docker exec -it [es_containerid] /bin/sh 
# 设置elastic 用户密码
elasticsearch-reset-password -u elastic -i
# 创建新的超级用户用于kibana登录
bin/elasticsearch-users useradd es_admin
# 根据提示设置密码 ..
# 设置超级用户权限
bin/elasticsearch-users roles -a superuser es_admin

可选关闭安全认证,需要安全认证的地方设置为false (我的情况未设置安全认证证书之类,后面访问kibana有问题,所以将此处关掉了)

修改config/elasticsearch.yml文件,红框中圈出来的部分是需要修改的地方

可选 如上述修改过elasticsearch.yml ,需重启es容器 (docker resatrt es_containerid)

6. 查看容器运行情况并进行验证

bash 复制代码
# 查看容器是否运行成功
docker ps / docker ps -a 
# 查看容器日志
docker logs -f [es_containerid]

访问 curl localhost:9200

7. 创建kibana 挂载目录,设置访问权限

bash 复制代码
mkdir -p /data/kibana_docker/{config,data,plugins}
chmod -R 777 /data/kibana_docker

8. 创建kibana容器

bash 复制代码
docker run -d --name kibana -p 5601:5601   --network es-net   -e ELASTICSEARCH_URL=http://elasticsearch:9200   -e ELASTICSEARCH_HOSTS=http://elasticsearch:9200   -e ELASTICSEARCH_USERNAME="es_admin"   -e ELASTICSEARCH_PASSWORD="xxx"   -v /data/kibana_docker/data:/usr/share/kibana/data   -v /data/kibana_docker/plugins:/usr/share/kibana/plugins   --privileged   --restart=always kibana:8.5.3 

9. 验证kibana运行

浏览器地址栏中输入访问地址:http://ip:5601

docker ps # 查看运行中的es和kibana 容器

问题&解决

1. kibana目录权限未设置

解决: 修改kibana 挂载目录的访问权限 (chmod -R 777 /data/kibana_docker)

2. kibana 不可访问,容器启动失败

查看kibana 容器的日志,都有提到安全认证未通过的问题

解决:关闭安全认证,如上述5. 配置elasticsearch用户及安全认证 可选部分

参考链接

docker中安装elasticsearch
https://www.elastic.co/guide/en/kibana/8.5/install

小结

基础运维操作,遇到类似的问题能有个思路。有时候在一件事情上花费时间太久需要停下来换个思路!

相关推荐
翼龙云_cloud15 小时前
阿里云国际渠道代理商:如何在ECS上部署Flask应用?
运维·数据库·阿里云·flask·云计算
GGG76616 小时前
Python 运维自动化:psutil+IPy 系统与网络信息采集深度实战
运维·python·云原生·pip
可乐鸡翅yeah_16 小时前
个人 / 外包流媒体项目交付实战,M3U8 验收与问题闭环完整工作流
运维·网络·python·低代码·django·m3u8·在线播放
dazhong201216 小时前
Docker 入门篇(八)-- CentOS7 安装 MySQL 8
mysql·docker·容器
St_rive16 小时前
移动端自动化环境搭建与准备
运维·自动化
INNOVIX稳石机器人17 小时前
稳石500强实战验证:从人工仓储迈向AI自主智造,给出仓储自动化升级标准答案
运维·人工智能·自动化
飞飞传输17 小时前
国产化 MOVEit 替代:文件传输架构与安全能力深度解读
大数据·运维·安全
聪明蛋子哟17 小时前
浏览器自动化的“持久身份”:多会话认证与Agent技能的无缝集成实践
运维·自动化
千百元17 小时前
ngrok 内网穿透TCP
运维
典典分享指南18 小时前
用大模型把写作 SOP 变成可复用 Prompt
docker·jupyter·eclipse·phpstorm·myeclipse