ElasticSearch 简介及安装
字数: 0 字 时长: 0 分钟
什么是 Elasticsearch ?
官方定义
Elasticsearch 是一个天生支持分布式的搜索、聚合分析和存储引擎
民间叫法
- 搜索引擎
- 全文搜索引擎
- 分布式文档系统
- 分布式数据库
- OLAP 系统
- 分布式搜索中间件
Elastic Stack
特点
- 开源、免费
- 基于 Java 语言开发,运行在 JVM 环境
- 基于 Lucene 框架开发
- 原生分布式
- 高性能、可伸缩
- 开箱即用,跨语言支持
ES 擅长从海量数据中检索少量相关数据,不擅长单次查询大量数据 (大单页);牺牲写入实时性来追求更高的查询检索性能
SDK 下载地址
https://www.elastic.co/downloads/elasticsearch
Elasticsearch 目录结构
目录名称 | 描述 |
---|---|
bin | 可执行脚本文件,包括启动 elasticsearch 服务、插件管理、函数命令等 |
config | 配置文件目录,如 elasticsearch 配置、角色配置、jvm 配置等 |
lib | elasticsearch 所依赖的 java 库 |
data | 默认的数据存放目录,包含节点、分片、索引、文档的所有数据,生产环境必须修改 |
logs | 默认的日志文件存储路径,生产环境务必修改 |
modules | 包含所有的 elastic 模块,如 Cluster、Discovery、Indices |
plugins | 已经安装的插件的目录 |
jdk | 7.x 以后特有,自带的 java 环境, 8.X 只支持 jdk17 以上版本 |
基础配置
elasticsearch.yml
配置文件基础配置:
yaml
# ======================== Elasticsearch Configuration =========================
# ---------------------------------- Cluster -----------------------------------
cluster.name: elasticsearch
# ------------------------------------ Node ------------------------------------
node.name: node-1
# ----------------------------------- Paths ------------------------------------
path.data: /path/to/data
#
# Path to log files:
#
path.logs: /path/to/logs
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
bootstrap.memory_lock: true
# ---------------------------------- Network -----------------------------------
network.host: 172.26.2.238
http.port: 9200
服务的安装和启动
ES8 默认启动 Security
创建 ES 服务账号
ES不允许使用root账号启动服务,如果你当前账号是root,则需要创建一个专有账户(以下命令均在root账户下执行,windows系统在power shell下执行)。如果你的账号不是root账号,此步骤可以跳过
shell
useradd elastic
passwd elastic
chown -R elastic:elastic {{espath}}
单节点启动
首次启动后,会自动进行以下安全配置:
- 为传输层和 HTTP 层生成 TLS 证书和密钥
- TLS 配置设置被写入
elasticsearch.yml
- 为
elastic
用户生成密码 - 为 Kibana 生成一个注册令牌
从日志中可以找到:
- ES 生成的
elastic
账户的默认密码 - CA 证书的密钥信息
- ES 为 Kibana 生成的访问令牌
- ES 为其他节点加入集群生成的访问令牌
修改账号密码
shell
# 交互式地为 elastic 用户修改密码
bin/elasticsearch-reset-password -u elastic -i
验证服务状态
访问 9200 端口查看集群状态
向集群中添加节点
shell
//启动的时候替换{token},不要待带括号 比如:
bin/elasticsearch --enrollment-token eyJ2ZXIiOiI4LjEuMCIsImFkciI6WyIxOTIuMTY4LjMuMTAwOjkyMDEiXSwiZmdyIjoiMWJkMTE0OWMzMTJjYzc5MGU1ZWU1YTgzZjlhZWRjMmU2MDkyN2Y2MWVkZDA0ZWU0YTAxZTk2MTVlYzJkODhlYiIsImtleSI6Ilo3elc0bjhCVk1ESEdsMmFzdDVNOkZTWVhrMHV3UjgyUzNlTFFERFlkdncifQ=
部署 Kibana
直接启动 kibana 服务,然后输入 elasticsearch 初启动时生成的 token 即可。