Skip to content

ElasticSearch 简介及安装

字数: 0 字 时长: 0 分钟

什么是 Elasticsearch ?

官方定义

Elasticsearch 是一个天生支持分布式的搜索、聚合分析和存储引擎

民间叫法

  • 搜索引擎
  • 全文搜索引擎
  • 分布式文档系统
  • 分布式数据库
  • OLAP 系统
  • 分布式搜索中间件

Elastic Stack

ELK.webp

特点

  • 开源、免费
  • 基于 Java 语言开发,运行在 JVM 环境
  • 基于 Lucene 框架开发
  • 原生分布式
  • 高性能、可伸缩
  • 开箱即用,跨语言支持

ES 擅长从海量数据中检索少量相关数据,不擅长单次查询大量数据 (大单页);牺牲写入实时性来追求更高的查询检索性能

SDK 下载地址

https://www.elastic.co/downloads/elasticsearch

Elasticsearch 目录结构

目录名称描述
bin可执行脚本文件,包括启动 elasticsearch 服务、插件管理、函数命令等
config配置文件目录,如 elasticsearch 配置、角色配置、jvm 配置等
libelasticsearch 所依赖的 java 库
data默认的数据存放目录,包含节点、分片、索引、文档的所有数据,生产环境必须修改
logs默认的日志文件存储路径,生产环境务必修改
modules包含所有的 elastic 模块,如 Cluster、Discovery、Indices
plugins已经安装的插件的目录
jdk7.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}}

单节点启动

初次启动后,日志中查看密码.webp

首次启动后,会自动进行以下安全配置:

  • 为传输层和 HTTP 层生成 TLS 证书和密钥
  • TLS 配置设置被写入 elasticsearch.yml
  • elastic 用户生成密码
  • 为 Kibana 生成一个注册令牌

从日志中可以找到:

  • ES 生成的 elastic 账户的默认密码
  • CA 证书的密钥信息
  • ES 为 Kibana 生成的访问令牌
  • ES 为其他节点加入集群生成的访问令牌

修改账号密码

shell
# 交互式地为 elastic 用户修改密码
bin/elasticsearch-reset-password -u elastic -i

修改密码.webp

验证服务状态

访问 9200 端口查看集群状态

向集群中添加节点

shell
//启动的时候替换{token},不要待带括号 比如:
bin/elasticsearch --enrollment-token eyJ2ZXIiOiI4LjEuMCIsImFkciI6WyIxOTIuMTY4LjMuMTAwOjkyMDEiXSwiZmdyIjoiMWJkMTE0OWMzMTJjYzc5MGU1ZWU1YTgzZjlhZWRjMmU2MDkyN2Y2MWVkZDA0ZWU0YTAxZTk2MTVlYzJkODhlYiIsImtleSI6Ilo3elc0bjhCVk1ESEdsMmFzdDVNOkZTWVhrMHV3UjgyUzNlTFFERFlkdncifQ=

部署 Kibana

直接启动 kibana 服务,然后输入 elasticsearch 初启动时生成的 token 即可。

启动 Kibana.webp