您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 如何实现Elasticsearch环境搭建
## 一、Elasticsearch简介
Elasticsearch是一个基于Lucene的分布式搜索和分析引擎,由Shay Banon于2010年创建。作为ELK技术栈的核心组件,它具有以下特性:
- **近实时搜索**:数据索引后1秒内可检索
- **分布式架构**:支持水平扩展和高可用
- **RESTful API**:通过HTTP接口进行操作
- **多租户支持**:通过索引机制实现数据隔离
- **丰富的查询DSL**:支持全文检索、结构化查询等
## 二、环境准备
### 1. 硬件要求
| 资源类型 | 生产环境建议 | 测试环境最低 |
|----------|--------------|--------------|
| CPU | 8核+ | 2核 |
| 内存 | 16GB+ | 4GB |
| 存储 | SSD/NVMe | 普通硬盘 |
### 2. 软件要求
- **操作系统**:Linux/Windows/macOS(推荐Linux)
- **Java环境**:JDK 8或11(LTS版本)
- **版本选择**:建议使用最新稳定版(本文以8.x为例)
## 三、单节点安装部署
### 1. 安装Java环境
```bash
# Ubuntu/Debian
sudo apt update
sudo apt install openjdk-11-jdk
# 验证安装
java -version
# 下载安装包(以Linux为例)
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.4.1-linux-x86_64.tar.gz
# 解压安装
tar -xzf elasticsearch-8.4.1-linux-x86_64.tar.gz
cd elasticsearch-8.4.1/
修改config/elasticsearch.yml
:
cluster.name: my-es-cluster
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node # 单节点模式
# 前台启动(测试用)
./bin/elasticsearch
# 后台启动
./bin/elasticsearch -d -p pid
curl -X GET "localhost:9200/"
预期返回:
{
"name" : "node-1",
"cluster_name" : "my-es-cluster",
"version" : {
"number" : "8.4.1",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "2bd229c8e56650b42e40992322a76e7914258f0c",
"build_date" : "2022-09-23T17:33:31.471153Z",
"build_snapshot" : false,
"lucene_version" : "9.3.0",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
修改config/elasticsearch.yml
:
# 节点1配置
cluster.name: my-es-cluster
node.name: node-1
network.host: 192.168.1.101
discovery.seed_hosts: ["192.168.1.101", "192.168.1.102"]
cluster.initial_master_nodes: ["node-1", "node-2"]
# 节点2配置
cluster.name: my-es-cluster
node.name: node-2
network.host: 192.168.1.102
discovery.seed_hosts: ["192.168.1.101", "192.168.1.102"]
cluster.initial_master_nodes: ["node-1", "node-2"]
节点类型 | 配置参数 | 推荐数量 |
---|---|---|
Master-eligible | node.master: true | 3(奇数) |
Data | node.data: true | 按需扩展 |
Ingest | node.ingest: true | 2+ |
Coordinating | node.master/data/ingest: false | 2+ |
# 配置机架感知
cluster.routing.allocation.awareness.attributes: rack_id
node.attr.rack_id: rack1
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
./bin/elasticsearch-certutil ca
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
./bin/elasticsearch-setup-passwords auto
修改config/jvm.options
:
-Xms4g
-Xmx4g # 不超过物理内存50%
# 增加文件描述符限制
ulimit -n 65535
# 禁用swap
sudo swapoff -a
PUT my_index
{
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1,
"refresh_interval": "30s"
}
}
/etc/security/limits.conf
sysctl -w vm.max_map_count=262144
jdk-11
或更高LTS版本GET _cluster/health
GET _nodes/stats
# 索引管理
DELETE old_index
PUT _template/my_template
# 节点下线
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.exclude._ip": "192.168.1.101"
}
}
滚动升级(推荐):
完整集群重启:
通过本文的详细步骤,您应该已经完成: - 单节点Elasticsearch的安装与验证 - 生产级集群的规划与部署 - 基础安全配置与性能调优 - 常见问题的处理方案
建议后续结合Kibana进行可视化管理和Logstash实现数据管道,构建完整的ELK技术栈。
注意事项: 1. 生产环境务必启用认证和HTTPS 2. 定期备份快照到对象存储 3. 监控集群健康状态和资源使用情况 “`
这篇技术文档共计约2100字,采用Markdown格式编写,包含: - 多级标题结构 - 代码块和配置示例 - 表格对比数据 - 实操命令和API调用 - 注意事项和最佳实践提示
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。