Ubuntu 22.04 LTS Elasticsearch-7.17.28 部署指南
一. Elasticsearch 简介
1. 什么是 Elasticsearch ?
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎。它能够以近乎实时的速度存储、搜索和分析大量数据,广泛应用于日志分析、全文搜索、监控等领域。
2. 主要特点
- 分布式:Elasticsearch 是一个分布式系统,可以水平扩展,处理大规模的数据。
- 高可用性:通过分片和副本机制,Elasticsearch 提供了高可用性和容错能力。
- RESTful 接口:使用 HTTP 协议和 JSON 格式的 RESTful API,使得 Elasticsearch 易于与其他系统集成。
- 全文搜索:强大的全文搜索功能,支持复杂的查询语法和多种分析功能。
- 实时数据处理:能够实时处理和分析数据,适用于需要及时反馈的应用场景。
3. 核心概念
3.1 集群 (Cluster)
Elasticsearch 集群由一个或多个节点组成,共享相同的集群名称。每个集群有一个主节点,负责管理集群状态和分片分配。
3.2 节点 (Node)
节点是 Elasticsearch 的运行实例,可以是一个物理机或虚拟机上的进程。节点可以属于一个集群,并存储数据和参与集群的搜索和索引操作。
3.3 索引 (Index)
索引是具有相似特征的文档的集合,每个索引都有一个唯一的名称,用于索引、搜索、更新和删除文档。
3.4 文档 (Document)
文档是 Elasticsearch 中的基本信息单元,以 JSON 格式表示。每个文档属于一个索引,并有一个唯一的标识符。
3.5 分片 (Shard)
分片是索引的基本组成部分,一个索引可以分为多个分片。每个分片是一个自包含的 Lucene 索引,可以独立存储和搜索。
二. 部署 Elasticsearch
1. 单机部署 Elasticsearch
1.1 下载 Elasticsearch 软件包
[root@elk100:~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.28-amd64.deb
1.2 安装 ES 软件包
[root@elk100:~]# dpkg -i elasticsearch-7.17.28-amd64.deb
1.3 修改 ES 的配置文件
[root@elk100:~]# egrep -v ^# /etc/elasticsearch/elasticsearch.yml
cluster.name: cxjyyds
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node
1.4 启动 ES 服务
[root@elk100:~]# systemctl enable --now elasticsearch.service
[root@elk100:~]# netstat -tnulp | egrep '9200|9300'
tcp6 0 0 :::9300 :::* LISTEN 1812/java
tcp6 0 0 :::9200 :::* LISTEN 1812/java
1.5 访问测试
[root@elk100:~]# curl 10.0.0.100:9200
{
"name" : "elk100",
"cluster_name" : "cxjyyds",
"cluster_uuid" : "QaG0eioMRHGgDx3ZZUBrVw",
"version" : {
"number" : "7.17.28",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "139cb5a961d8de68b8e02c45cc47f5289a3623af",
"build_date" : "2025-02-20T09:05:31.349013687Z",
"build_snapshot" : false,
"lucene_version" : "8.11.3",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
[root@elk100:~]# curl 10.0.0.100:9200/_cat/nodes
10.0.0.100 34 97 6 0.18 0.27 0.16 cdfhilmrstw * elk100
2. 集群部署 Elasticsearch
2.1 将 Elasticsearch 软件包拷贝到其他节点
[root@elk100:~]# scp elasticsearch-7.17.28-amd64.deb 10.0.0.101:~
[root@elk100:~]# scp elasticsearch-7.17.28-amd64.deb 10.0.0.102:~
2.2 安装 ES 软件包
[root@elk101:~]# dpkg -i elasticsearch-7.17.28-amd64.deb
[root@elk102:~]# dpkg -i elasticsearch-7.17.28-amd64.deb
2.3 elk100 节点停止服务
[root@elk100:~]# systemctl stop elasticsearch.service
2.4 修改配置文件
[root@elk100:~]# egrep -v ^# /etc/elasticsearch/elasticsearch.yml
cluster.name: cxjyyds
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["10.0.0.100", "10.0.0.101", "10.0.0.102"]
2.5 将配置文件同步到其他节点
[root@elk100:~]# scp /etc/elasticsearch/elasticsearch.yml 10.0.0.101:/etc/elasticsearch/elasticsearch.yml
[root@elk100:~]# scp /etc/elasticsearch/elasticsearch.yml 10.0.0.102:/etc/elasticsearch/elasticsearch.yml
2.6 启动 ES 服务
[root@elk100:~]# systemctl enable --now elasticsearch.service
[root@elk101:~]# systemctl enable --now elasticsearch.service
[root@elk102:~]# systemctl enable --now elasticsearch.service
2.7 测试访问
[root@elk100:~]# curl 10.0.0.100:9200
{
"name" : "elk100",
"cluster_name" : "cxjyyds",
"cluster_uuid" : "QaG0eioMRHGgDx3ZZUBrVw",
"version" : {
"number" : "7.17.28",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "139cb5a961d8de68b8e02c45cc47f5289a3623af",
"build_date" : "2025-02-20T09:05:31.349013687Z",
"build_snapshot" : false,
"lucene_version" : "8.11.3",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
[root@elk100:~]# curl 10.0.0.100:9200/_cat/nodes
10.0.0.102 6 97 32 0.84 0.24 0.08 cdfhilmrstw - elk102
10.0.0.100 6 97 19 0.35 0.25 0.19 cdfhilmrstw * elk100
10.0.0.101 7 97 32 0.63 0.21 0.07 cdfhilmrstw - elk101
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架