最近需要搭建一套测试环境,用到了ElasticSearch( 简称es)搜索引擎,安装过程有些曲折,记录下来作为经验。
ElasticSearch 是一个开源分布式搜索引擎,可以快速地储存、搜索和分析海量数据,Kibana是为ElasticSearch设计的可视化平台,可以用来搜索、查看ElasticSearch的数据,实现数据分析和图表的可视化。
docker pull elasticsearch:8.5.3
docker pull kibane:8.5.3
docker network create es-net
mkdir -p /data/es_docker/{config,data,logs,plugins}
chmod -R 777 /data/es_docker
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
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])
# 查看容器是否运行成功
docker ps / docker ps -a
# 查看容器日志
docker logs -f [es_containerid]
mkdir -p /data/kibana_docker/{config,data,plugins}
chmod -R 777 /data/kibana_docker
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
docker ps # 查看运行中的es和kibana 容器
解决: 修改kibana 挂载目录的访问权限 (chmod -R 777 /data/kibana_docker)
解决:关闭安全认证,如上述5. 配置elasticsearch用户及安全认证 可选部分
docker中安装elasticsearch
https://www.elastic.co/guide/en/kibana/8.5/install
基础运维操作,遇到类似的问题能有个思路。有时候在一件事情上花费时间太久需要停下来换个思路!