最近工作使用到这两个环境,正巧Windows的子系统wsl2已经越来越强大,因此想到使用docker去安装这两个工具。但是网上的诸多教程都是乱七八糟,完全不适用。甚至大多数教程都使用的是非官方的kibana镜像,本人有洁癖,能用官方的决不会用来路不明的。但是官方的镜像vi命令都没有,所以编辑文本又成了问题,想要安装vi又提示软件源中没有此包。于是自己找了好久终于找到一个可用的教程,特此记录。
- 首先拉取镜像,如果不拉取镜像直接创建容器也行,会自动帮你拉取镜像的。
但是为了合理利用网络资源,首先拉取两个镜像,后面不需要再等待下载。
下面两个是截止至2022年7月2日的最新镜像,这里需要注意,必须写明版本号,因为这两个镜像都没有latest标签,所以不写版本号拉不了最新版本。而且kibana和elastic的版本号必须一致,小版本号都要一模一样。
docker pull elasticsearch:8.3.1
docker pull kibana:8.3.1
- 创建elasticsearch容器
docker run -itd --name elasticsearch -v ~/elasticsearch/plugins:/usr/share/elasticsearch/plugins -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:8.3.1
- 修改elasticsearch密码
docker exec -it elasticsearch bash #首先进入容器
cp config/elasticsearch.yml config/elasticsearch.yml.bak20220702 #备份配置文件
vi config/elasticsearch.yml #修改配置文件
配置文件完整内容如下:
cluster.name: "docker-cluster"
network.host: 0.0.0.0
#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------
#
# The following settings, TLS certificates, and keys have been automatically
# generated to configure Elasticsearch security features on 02-07-2022 02:36:02
#
# --------------------------------------------------------------------------------
# Enable security features
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
# Enable encryption and mutual authentication between cluster nodes
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
#----------------------- END SECURITY AUTO CONFIGURATION -------------------------
xpack.license.self_generated.type: basic
http.cors.allow-methods: OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers: Content-Type,Accept,Authorization, x-requested-with
然后保存退出,按Ctrl+P+Q退出容器。
docker restart elasticsearch #重启容器
docker exec -it elasticsearch bash #再次进入容器
cd bin #进入bin目录
elasticsearch-setup-passwords interactive #设置密码,可能需要按Y确认,如果之前已经使用过其他命令重置过密码,使用此命令会报错。
- 安装kibana
docker run -itd --name kibana -p 5601:5601 -e "I18N_LOCALE=zh-CN" kibana:8.3.1 #使用此命令启动的kibana默认就是中文语言,别信网上说的官方只有英文,还让你安装半天的各种插件
-
获取elasticsearch令牌
docker exec -it elasticsearch bash #进入elasticsearch容器内部
cd bin #进入bin目录
elasticsearch-create-enrollment-token --scope kibana #获取令牌,会输出一堆字符,复制到上面截图的地方
点击配置两个字,会看见下面图片中的内容:
图中写了如何获取验证码的命令,但是此命令是Windows系统使用的,因为是bat脚本,所以我们依葫芦画瓢,把bat换成sh即可,也可以不写。
docker exec -it kibana bash #首先进入kibana容器内部,得先退出上一个容器,返回宿主机,再执行此命令
cd bin #进入bin目录
kibana-verification-code #获取验证码
输入验证即可。可能还会让你输入帐号密码,帐号就是elastic,密码是你前面设置的。