ES-环境安装(elasticsearch:7.17.9,kibana,elasticsearch-head)

ES 环境搭建

1 拉取镜像

常用三件套

bash 复制代码
docker pull  kibana:7.17.9
docker pull elasticsearch:7.17.9
docker pull mobz/elasticsearch-head:5

2 启动镜像
elasticsearch 安装

这里可以先不挂载文件启动一波,然后把容器里的文件拷贝出来

bash 复制代码
docker run -p 19200:9200 -p 19300:9300 --name elasticsearch \-e "discovery.type=single-node" \
-e "cluster.name=elasticsearch" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx1024m" \
-e "ingest.geoip.downloader.enabled=false" \
-d elasticsearch:7.17.9
  • 拷贝文件到本地
bash 复制代码
docker cp elasticsearch:/usr/share/elasticsearch/config ./
docker cp elasticsearch:/usr/share/elasticsearch/logs ./
docker cp elasticsearch:/usr/share/elasticsearch/data ./
docker cp elasticsearch:/usr/share/elasticsearch/plugins ./

注意事项

这里一定要注意挂载的目录不能是root用户否者启动就会报权限错误

bash 复制代码
Could not rename log file 'logs/gc.log' to 'logs/gc.log.00' (Permission denied).
#又或者
Could not open log file 'logs/gc.log' 

这里新创建一个用户用来启动es

bash 复制代码
useradd elasticsearch #创建用户
chown elasticsearch  -R  es/* #改变文件所属用户
chgrp elasticsearch  -R  es/* #改变所有组
chmod -R 777  es #使得当前用户具有读写可执行这些文件的权限
  • 修改配置文件
bash 复制代码
#elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.max-age: 1728000
xpack.security.enabled : false

将之前的容器删除掉:

bash 复制代码
docker stop elasticsearch && docker rm elasticsearch
  • 启动es,基于上面我们拷贝出来的目录进行挂载
bash 复制代码
docker run -p 19200:9200 -p 19300:9300 --name elasticsearch \-e "discovery.type=single-node" \
-e "cluster.name=elasticsearch" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx1024m" \
-e "ingest.geoip.downloader.enabled=false" \
-v /env/liyong/data/docker/es/plugins/:/usr/share/elasticsearch/plugins \
-v /env/liyong/data/docker/es/data/:/usr/share/elasticsearch/data \
-v /env/liyong/data/docker/es/logs/:/usr/share/elasticsearch/logs \
-v /env/liyong/data/docker/es/config/:/usr/share/elasticsearch/config \
-d elasticsearch:7.17.9

访问卡到这个界面表示安装成功:

这里在介绍一下如果报错了可以用docker logs命令查看日志,找到错误:

bash 复制代码
docker logs elasticsearch #查看日志
docker logs -f elasticsearch #实时监控日志 也就是 和 tail -f 的效果一样
#我们可以看到有很多可选参数帮我们定位日志
-t #日志前面可以看到时间戳
--since #查看看多久以后的日志
docker logs -t elasticsearch --since "2023-12-04" #查看12-04以后的日志
docker logs -t elasticsearch --since "1000m" #查看最近1000m钟的日志
docker logs -n "10" elasticsearch #从当前日志往回看10行


kibana安装

  • 配置修改
bash 复制代码
#kibana.yml
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://elasticsearch:9200" ] #这里一定要注意因为是集群内部所以这里的端口9200 不要填19200 我一开始就填错了
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"
  • 启动
bash 复制代码
docker run --name kibana --link=elasticsearch -p 5601:5601 \
-v /env/liyong/data/docker/kibana/config/:/usr/share/kibana/config \
-d kibana:7.17.9 #link 启动 这样会在kibana 的host文件写入elasticsearch 的ip映射从而可以直接内部通信
bash 复制代码
get _cat/health #查看健康状况 
get _cluster/health
get _cat/indices?v #查看索引的状态信息

elasticsearch-head安装

  • 修改文件
bash 复制代码
docker cp elasticsearch-head:/usr/src/app ./ #将文件拷贝出来

进⼊_site⽬录,修改vendor.js⽂件6886和7574⾏ application/x-wwwform-urlencoded 改成 application/json;charset=UTF-8

bash 复制代码
#定位直接切换vim模式
:6886 #可以定位到当前行
  • 启动
bash 复制代码
docker cp _site/ elasticsearch-head:/usr/src/app #改完以后复制到容器中
```bash
docker run -d --name=elasticsearch-head -p 19100:19100 \
mobz/elasticsearch-head:5

还有要注意的是,elasticsearch-head的端口默认是9200,如果需要修改

bash 复制代码
vim Gruntfile.js


  • 界面信息介绍

一些概念

master:主/候选节点

data:数据节点

data_hot:热节点

data_warm: 索引不再定期更新

data_code: 冷节点,只读

Ingest:预处理节点,作⽤类似于logstash中的Filter

ml: 机器学习节点

voting_only: 仅投票节点

⼀个索引包含⼀个或多个分⽚,在7.0之后默认⼀个主分⽚,副本(多少个0,多少个1,也就是副本可以在多个节点存在)可以在索引创建之后修改数量,但是主分⽚的数量(0,1,2)⼀旦确定不可修改

每个分⽚都是⼀个Lucene实例,有完整的创建索引和处理请求的能⼒ES会⾃动再nodes上做分⽚均衡

⼀个doc不可能同时存在于多个主分⽚中(因为存在了数据就重复了),但可以同时存在于多个副本中

每个主分⽚和其副本分⽚不能同时存在于同⼀个节点上(因为副本是为了保证高可用,如果在同一个节点则完全没有意义)。

相关推荐
java1234_小锋1 小时前
Elasticsearch是如何实现Master选举的?
大数据·elasticsearch·搜索引擎
梦幻通灵7 小时前
ES分词环境实战
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客7 小时前
Elasticsearch 中的热点以及如何使用 AutoOps 解决它们
大数据·运维·elasticsearch·搜索引擎·全文检索
小黑屋说YYDS12 小时前
ElasticSearch7.x入门教程之索引概念和基础操作(三)
elasticsearch
Java 第一深情15 小时前
Linux上安装单机版ElasticSearch6.8.1
linux·elasticsearch·全文检索
KevinAha1 天前
Elasticsearch 6.8 分析器
elasticsearch
wuxingge1 天前
elasticsearch7.10.2集群部署带认证
运维·elasticsearch
Elastic 中国社区官方博客1 天前
Elasticsearch:如何部署文本嵌入模型并将其用于语义搜索
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索
Dreams°1232 天前
【大数据测试 Elasticsearch 的标准--超详细篇】
大数据·elasticsearch·jenkins
鸠摩智首席音效师2 天前
如何在 Elasticsearch 中配置 SSL / TLS ?
elasticsearch·ssl