1. 前言
ElasticSearch、可视化操作工具Kibana。如果你是Linux centos系统的话,下面的指令可以一路CV完成服务的部署。
2. 服务搭建
2.1. 部署ElasticSearch
拉取docker镜像
docker pull elasticsearch:7.17.21
创建挂载卷目录
mkdir /**/es-data -p
mkdir /**/es-plugins -p
mkdir /**/es-config -p
chmod 777 /**/es-data
chmod 777 /**/es-plugins
chmod 777 /**/es-config
第一次启动容器(目的是为了把配置文件考出)
docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms512m -Xmx1024m" \
-e "discovery.type=single-node" \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.17.21
可以提前创建docker 网络
docker network create -d bridge es-net
拷贝出配置文件
docker cp es:/usr/share/elasticsearch/config/ /**/es-config/
删除容器
docker rm -f es
以单机模式运行容器(也可以结合K8S进行集群部署,我们在后面的K8S系列文章中应该也会讲到)
docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms512m -Xmx1024m" \
-e "discovery.type=single-node" \
-e "ELASTICSEARCH_USERNAME=root" \
-e "ELASTICSEARCH_PASSWORD=你的密码" \
-v /**/es-data:/usr/share/elasticsearch/data \
-v /**/es-plugins:/usr/share/elasticsearch/plugins \
-v /**/es-config/config:/usr/share/elasticsearch/config \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.17.21
`-e "cluster.name=es-docker-cluster"`:设置集群名称
`-e "http.host=0.0.0.0"`:监听的地址,可以外网访问
`-e "ES_JAVA_OPTS=-Xms512m -Xmx1024m"`:内存大小
`-e "discovery.type=single-node"`:非集群模式
`-v es-data:/usr/share/elasticsearch/data`:挂载逻辑卷,绑定es的数据目录
`-v es-logs:/usr/share/elasticsearch/logs`:挂载逻辑卷,绑定es的日志目录
`-v es-plugins:/usr/share/elasticsearch/plugins`:挂载逻辑卷,绑定es的插件目录
`--privileged`:授予逻辑卷访问权
`--network es-net` :加入一个名为es-net的网络中
`-p 9200:9200`:端口映射配置
进入容器内生成密码
docker exec -it es /bin/bash
生成密码 ,他会让你为各个预设角色设置密码,包括 apm_system、kibana、kibana_system、logstash_system、beats_system、remote_monitoring_user 以及 elastic。
elasticsearch-setup-passwords interactive
可能会有报错。
我们需要进入es的config目录中打开elasticsearch.yml
增加以下两项:
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
访问9200端口,测试服务是否正常启动,若正常启动会看到要求输入账号密码,我们这里账号输入elastic,密码输入你设置的
账号密码正确就会看到如下信息
2.2. 部署Kibana
拉取docker镜像
docker pull kibana:7.17.21
第一次运行容器
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601 \
kibana:7.17.21
拷贝出kibana配置文件
docker cp kibana:/usr/share/kibana/config/ /local/kibana-config
删除容器
docker rm -f kibana
修改/local/kibana-config/config/kibana.yml配置文件,添加如下配置,让kibana有权限去访问ES
elasticsearch.username: "kibana_system"
elasticsearch.password: "你的密码"
此处密码为c**t1234
重启容器并挂载配置文件目录
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
-v /local/kibana-config/config:/usr/share/kibana/config \
--network=es-net \
-p 5601:5601 \
kibana:7.17.21
访问5601端口,访问kibana界面,输入账号密码(账号就是预设用户,比如elastic,密码就是你在es容器中设置的密码)登录
如果网页能够进入,但是一直报错,可以尝试清空浏览器缓存,重新访问
密码使用kibana_system用户登录不上,使用elastic用户可以。