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不可能同时存在于多个主分⽚中(因为存在了数据就重复了),但可以同时存在于多个副本中

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

相关推荐
Elastic 中国社区官方博客7 小时前
Elasticsearch:Painless scripting 语言(一)
大数据·运维·elasticsearch·搜索引擎·全文检索
DDD5858 小时前
ELK优化之Elasticsearch
大数据·elasticsearch·搜索引擎
阿里巴巴P8资深技术专家9 小时前
安装elasticsearch
java·运维·elasticsearch·jenkins
x2lab11 小时前
部署最新版本elasticsearch 8.14.1和 kibana 8.14.1
大数据·elasticsearch·搜索引擎
不要飞升12 小时前
百日筑基第十二天-入门Elasticsearch
java·大数据·elasticsearch·jenkins·实习
magic3341656318 小时前
elasticsearch-users和elasticsearch-reset-password介绍
大数据·elasticsearch·搜索引擎·kibana
developerFBI19 小时前
ES8.13.0 java client请求响应报错status: 200, [es/search] Failed to decode response
java·开发语言·elasticsearch
小冷在努力1 天前
elasticsearch镜像化安装部署
大数据·elasticsearch·jenkins·es
进击的小白菜1 天前
ES|使用Postman更新ES内所有文档的指定字段
elasticsearch·postman·es
magic334165631 天前
Linux启动elasticsearch,提示权限不够
linux·elasticsearch·jenkins