docker安装elasticsearch:7.17.21
- 下载对应版本的docker镜像
bash
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.21
- 启动容器
bash
docker run --name elasticsearch-test -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -t docker.elastic.co/elasticsearch/elasticsearch:7.17.21
- 检查elasticsearch是否启动正常
bash
[root@localhost ~]# curl 'http://192.168.1.114:9200' # 请求响应结果如下:
{
"name" : "f8a41f8d81bf",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "4wbWMMTRSfWyV1JDjjz17Q",
"version" : {
"number" : "7.17.21",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "d38e4b028f4a9784bb74de339ac1b877e2dbea6f",
"build_date" : "2024-04-26T04:36:26.745220156Z",
"build_snapshot" : false,
"lucene_version" : "8.11.3",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
[root@localhost ~]#
- 下载对应版本的kibana镜像
bash
docker pull docker.elastic.co/kibana/kibana:7.17.21
- 启动kibana
bash
docker run -t --name kibana-test -p 5601:5601 docker.elastic.co/kibana/kibana:7.17.21
- 配置kibana
bash
# 1、查看Kibana容器id
docker ps
# 2、进入到容器
docker exec -it kibana容器id /bin/bash
# 3、查看目录并进入到config目录下
ls
cd config
# 4、编辑 kibana.yml 文件
# 替换elasticsearch.hosts配置中elasticsearch地址为你自己的
sed -i 's/elasticsearch:9002/192.168.1.114:9200/g' ./kibana.yml
# 5、编辑kibana.yml文件末尾添加中文配置
echo -e "\n" >> kibana.yml
echo 'i18n.locale: "zh-CN"' >> kibana.yml
# 6、修改完成 退出容器
# 7、重启kibana
docker restart kibana容器Id
- 浏览器进入kibana页面:http://192.168.1.114:5601/,页面正常打开如下:
如果想要使用密码访问,可按如下教程
对于Docker安装的Elasticsearch 7.17.21版本,开启密码验证(即X-Pack安全功能)可以通过以下步骤实现:
一、修改Elasticsearch配置文件:
- 首先,你需要进入Elasticsearch的容器。假设你的容器名为elasticsearch,可以使用以下命令进入容器:
bash
docker exec -it elasticsearch bash
- 进入容器后,导航到Elasticsearch的配置目录(通常是/usr/share/elasticsearch/config),并编辑elasticsearch.yml文件:
bash
cd /usr/share/elasticsearch/config
vi elasticsearch.yml
- 在elasticsearch.yml文件中添加或确保有以下配置行来启用X-Pack安全功能:
yaml
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
注意: 如果你打算使用HTTPS,那么xpack.security.transport.ssl.enabled应该设置为true。如果你只是想要HTTP认证,并且不关心传输加密,那么可以将它设置为false。
二、设置密码:
上一步中退出容器(按Esc,然后输入:wq并回车保存并退出vi编辑器)。
在Docker宿主机上运行Elasticsearch的setup-passwords命令来初始化密码。这通常通过docker exec命令在容器内部执行:
bash
docker exec -it elasticsearch-test elasticsearch-setup-passwords interactive
你会被提示为默认用户(如elastic、kibana、logstash_system等)设置密码。
重启Elasticsearch容器:
为了使配置更改生效,你需要重启Elasticsearch容器。这可以通过docker restart命令完成:
bash
docker restart elasticsearch-test
(可选)配置Kibana进行身份验证:
如果你还使用Kibana,你需要在Kibana的配置文件(通常是/usr/share/kibana/config/kibana.yml)中添加Elasticsearch的身份验证凭据。这可以通过设置elasticsearch.username和elasticsearch.password字段来完成。
你还需要在Kibana的配置中启用X-Pack安全功能(如果尚未启用)。
进入Kibana容器:
使用docker exec命令进入Kibana容器。你需要知道你的Kibana容器的ID或名称。
bash
docker exec -it <kibana_container_id_or_name> /bin/bash
修改配置文件:
在容器内部,导航到Kibana的配置目录(这可能会根据你的Kibana版本和Docker镜像而有所不同,但通常位于/usr/share/kibana/config/)。然后,使用文本编辑器(如vi或nano)修改kibana.yml文件。
bash
cd /usr/share/kibana/config/
vi kibana.yml
配置身份验证:
在kibana.yml文件中,你可以配置Kibana的身份验证设置。Kibana支持多种身份验证方法,包括基于用户名和密码的身份验证、基于角色的访问控制(RBAC)以及第三方身份提供商集成。
以下是一个简单的基于用户名和密码的身份验证配置示例:
yaml
elasticsearch.username: "kibana_user" # 你的Elasticsearch用户名
elasticsearch.password: "your_password" # 你的Elasticsearch密码
注意:这里的用户名和密码是你在Elasticsearch中设置的,用于Kibana与Elasticsearch之间的通信。你需要确保这些凭据在Elasticsearch中是有效的。
重启Kibana容器:
为了使配置更改生效,你需要重启Kibana容器。使用docker restart命令重启容器。
bash
docker restart <kibana_container_id_or_name>
浏览器打开链接测试:http://192.168.1.114:5601/ 页面需要登录了,如下图: