河北建设教育培训网站什么软件可以刷网站排名
1.部署单点ElasticSearch
1.1.创建网络
因为我们还需要部署kibana容器,因此需要让ElasticSearch和kibana容器互联。这里先创建一个网络:
docker network create es-net

1.2.拉取镜像
考虑到ElasticSearch的兼容性,这里ElasticSearch、kibana统一下载8.6.2版本
# 拉取镜像
docker pull elasticsearch:8.6.2

1.3.第一次执行docker脚本
docker run -it \-p 9200:9200 \-p 9300:9300 \--name es \--net es-net \-e ES_JAVA_OPTS="-Xms1g -Xmx1g" \-e "discovery.type=single-node" \-e LANG=C.UTF-8 \-e LC_ALL=C.UTF-8 \elasticsearch:8.6.2
注意第一次执行脚本不要加-d这个参数,否则看不到服务首次运行时生成的随机密码和随机enrollment token

1.4.创建Elasticsearch挂载目录
mkdir -p /home/elk8.6.2/elasticsearch
1.5.给创建的文件夹授权
sudo chown -R 1000:1000 /home/elk8.6.2/elasticsearch
1.6.将容器内的文件复制到主机上
docker cp es:/usr/share/elasticsearch/config /home/elk8.6.2/elasticsearch docker cp es:/usr/share/elasticsearch/data /home/elk8.6.2/elasticsearchdocker cp es:/usr/share/elasticsearch/plugins /home/elk8.6.2/elasticsearchdocker cp es:/usr/share/elasticsearch/logs /home/elk8.6.2/elasticsearch
1.7.删除容器
docker rm -f es
1.8.修改docker脚本,增加-v挂载目录和-d参数
docker run -it \-d \-p 9200:9200 \-p 9300:9300 \--name es \--net es-net \-e ES_JAVA_OPTS="-Xms1g -Xmx1g" \-e "discovery.type=single-node" \-e LANG=C.UTF-8 \-e LC_ALL=C.UTF-8 \-v /home/elk8.6.2/elasticsearch/config:/usr/share/elasticsearch/config \-v /home/elk8.6.2/elasticsearch/data:/usr/share/elasticsearch/data \-v /home/elk8.6.2/elasticsearch/plugins:/usr/share/elasticsearch/plugins \-v /home/elk8.6.2/elasticsearch/logs:/usr/share/elasticsearch/logs \
elasticsearch:8.6.2

1.9.修改配置/home/elk8.6.2/elasticsearch/config/elasticsearch.yml:
增加:xpack.monitoring.collection.enabled: true
说明:添加这个配置以后在kibana中才会显示联机状态,否则会显示脱机状态

1.10.重启容器
docker restart es
1.11.Elasticsearch.8X以上默认开启了X-Pack安全功能
说明:请求Elasticsearch必须使用https
测试:https://ip:9200

用户名就是:elastic,密码在第一次启动时保存下来的信息中查找,输入账号密码,即可看到elasticsearch的响应结果:

看到这种信息说明启动成功了。
1.12.如果账户密码忘了,设置修改账号密码如下:
docker exec -it es /bin/bashcd /usr/share/elasticsearch/bin
./elasticsearch-setup-passwords interactive

ElasticSearch设置后账户:elastic,密码:123456
2.部署kibana
kibana可以给我们提供一个ElasticSearch的可视化界面,便于我们使用。
2.1.拉取镜像
# 拉取镜像
#注意要与ElasticSearch版本一致
docker pull kibana:8.6.2
2.2.第一次执行docker启动脚本
docker run -it \-d \--restart=always \--log-driver json-file \--log-opt max-size=100m \--log-opt max-file=2 \--name kibana \-p 5601:5601 \--net es-net \
kibana:8.6.2

2.3.创建kibana挂载目录
mkdir -p /home/elk8.6.2/kibana
2.4.给创建的文件夹授权
sudo chown -R 1000:1000 /home/elk8.6.2/kibana
2.5.将容器内的文件复制到主机上
docker cp kibana:/usr/share/kibana/config /home/elk8.6.2/kibanadocker cp kibana:/usr/share/kibana/data /home/elk8.6.2/kibanadocker cp kibana:/usr/share/kibana/plugins /home/elk8.6.2/kibanadocker cp kibana:/usr/share/kibana/logs /home/elk8.6.2/kibana

2.6.删除容器
docker rm -f kibana
2.7.修改配置文件/home/elk8.6.2/kibana/config/kibana.yml:
- 增加:
i18n.locale: “zh-CN” - 修改:
elasticsearch.hosts: [‘https://172.20.0.2:9200’],将IP改成elasticsearch的docker ip,注意一定要用https - 修改:
xpack.fleet.outputs: [{id: fleet-default-output, name: default, is_default: true, is_default_monitoring: true, type: elasticsearch, hosts: [‘https://172.20.0.2:9200’], ca_trusted_fingerprint: xxxxxxxxxx}]
将IP改成elasticsearch的docker ip,注意一定要用https

2.8.修改docker启动脚本,增加挂载目录
docker run -it \-d \--restart=always \--log-driver json-file \--log-opt max-size=100m \--log-opt max-file=2 \--name kibana \-p 5601:5601 \--net es-net \-v /home/elk8.6.2/kibana/config:/usr/share/kibana/config \-v /home/elk8.6.2/kibana/data:/usr/share/kibana/data \-v /home/elk8.6.2/kibana/plugins:/usr/share/kibana/plugins \-v /home/elk8.6.2/kibana/logs:/usr/share/kibana/logs \
kibana:8.6.2

2.9.查看kibana日志
docker logs -f kibana
此时,在浏览器输入地址访问:http://192.168.1.111:5601,即可看到结果。
2.2.DevTools
kibana中提供了一个DevTools界面:

这个界面中可以编写DSL来操作elasticsearch。并且对DSL语句有自动补全功能。
4.部署es集群
部署es集群可以直接使用docker-compose来完成,不过要求你的Linux虚拟机至少有4G的内存空间
首先编写一个docker-compose文件,内容如下:
version: '2.2'
services:es01:image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2container_name: es01environment:- node.name=es01- cluster.name=es-docker-cluster- discovery.seed_hosts=es02,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data01:/usr/share/elasticsearch/dataports:- 9200:9200networks:- elastices02:image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2container_name: es02environment:- node.name=es02- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es03- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data02:/usr/share/elasticsearch/datanetworks:- elastices03:image: docker.elastic.co/elasticsearch/elasticsearch:8.6.2container_name: es03environment:- node.name=es03- cluster.name=es-docker-cluster- discovery.seed_hosts=es01,es02- cluster.initial_master_nodes=es01,es02,es03- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1volumes:- data03:/usr/share/elasticsearch/datanetworks:- elasticvolumes:data01:driver: localdata02:driver: localdata03:driver: localnetworks:elastic:driver: bridge
运行docker-compose以启动集群:
docker-compose up
