您好,登录后才能下订单哦!
# ES的安装教程
## 目录
1. [Elasticsearch简介](#一elasticsearch简介)
2. [环境准备](#二环境准备)
3. [单节点安装](#三单节点安装)
- [3.1 下载安装包](#31-下载安装包)
- [3.2 解压与目录结构](#32-解压与目录结构)
- [3.3 修改配置文件](#33-修改配置文件)
- [3.4 启动与验证](#34-启动与验证)
4. [集群部署](#四集群部署)
- [4.1 节点配置](#41-节点配置)
- [4.2 集群发现设置](#42-集群发现设置)
- [4.3 跨机房部署建议](#43-跨机房部署建议)
5. [安全配置](#五安全配置)
- [5.1 启用X-Pack](#51-启用x-pack)
- [5.2 设置用户权限](#52-设置用户权限)
6. [常见问题解决](#六常见问题解决)
7. [性能优化建议](#七性能优化建议)
---
## 一、Elasticsearch简介
Elasticsearch(简称ES)是一个基于Lucene构建的开源分布式搜索引擎,具有以下核心特性:
- **近实时搜索**:数据写入后1秒内可检索
- **分布式架构**:自动分片(Sharding)和副本(Replica)机制
- **RESTful API**:通过HTTP协议进行交互
- **多语言支持**:官方提供Java/Python/Go等客户端
- **丰富的数据分析**:支持聚合、地理位置查询等
典型应用场景包括日志分析(ELK Stack)、电商搜索、应用性能监控等。
---
## 二、环境准备
### 2.1 硬件要求
| 组件 | 最低配置 | 生产环境建议 |
|------------|----------|--------------|
| CPU | 2核 | 16核+ |
| 内存 | 4GB | 32GB+ |
| 磁盘 | 50GB HDD | 1TB SSD |
| 网络 | 1Gbps | 10Gbps |
### 2.2 软件依赖
- **操作系统**:Linux(推荐CentOS 7+/Ubuntu 18.04+)
- **Java环境**:OpenJDK 11或Oracle JDK 11
```bash
# 检查Java版本
java -version
# 修改最大文件描述符
echo "* - nofile 65535" >> /etc/security/limits.conf
# 禁用交换分区
sudo swapoff -a
echo "vm.swappiness = 1" >> /etc/sysctl.conf
# 调整虚拟内存
echo "vm.max_map_count=262144" >> /etc/sysctl.conf
sysctl -p
官方下载地址(以7.17.3版本为例):
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.3-linux-x86_64.tar.gz
# 校验SHA512
shasum -a 512 elasticsearch-7.17.3-linux-x86_64.tar.gz
tar -zxvf elasticsearch-7.17.3-linux-x86_64.tar.gz -C /opt/
cd /opt/elasticsearch-7.17.3/
关键目录说明:
- bin/
:启动脚本
- config/
:配置文件
- data/
:数据存储(需单独挂载)
- logs/
:日志文件
- plugins/
:插件目录
config/elasticsearch.yml
核心配置:
cluster.name: my-es-cluster
node.name: node-1
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node # 单节点模式
# 以非root用户启动
useradd elastic
chown -R elastic:elastic /opt/elasticsearch-7.17.3
su - elastic -c "/opt/elasticsearch-7.17.3/bin/elasticsearch -d"
# 验证服务
curl -X GET "localhost:9200/_cat/health?v"
预期返回:
epoch timestamp cluster status node.total node.data shards ...
163456789 10:15:30 my-es-cluster green 1 1 0 ...
典型三节点集群配置(elasticsearch.yml
):
# 节点1配置
cluster.name: production-cluster
node.name: node-1
node.master: true
node.data: true
network.host: 192.168.1.101
http.port: 9200
discovery.seed_hosts: ["192.168.1.101", "192.168.1.102", "192.168.1.103"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
# 其他节点需修改node.name和network.host
Zen Discovery机制参数:
discovery.zen.minimum_master_nodes: 2 # 防止脑裂
discovery.zen.ping.unicast.hosts: ["host1", "host2", "host3"]
# 配置机架感知
cluster.routing.allocation.awareness.attributes: rack_id
node.attr.rack_id: rack1
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
# 生成密码
bin/elasticsearch-setup-passwords auto
# 创建只读用户
bin/elasticsearch-users useradd viewer -p password -r viewer_role
启动报错:max virtual memory areas vm.max_map_count too low
sysctl -w vm.max_map_count=262144
节点无法加入集群
discovery.seed_hosts
配置磁盘空间不足
PUT _cluster/settings
{
"persistent": {
"cluster.routing.allocation.disk.threshold_enabled": false
}
}
JVM调参
config/jvm.options
:
-Xms16g
-Xmx16g # 不超过物理内存50%
索引优化
PUT my_index/_settings
{
"index" : {
"number_of_replicas" : 1,
"refresh_interval" : "30s"
}
}
冷热数据分离
node.attr.temperature: hot
注意事项: - 生产环境务必启用认证 - 定期备份快照到S3/HDFS - 使用Monitoring API监控集群状态 - 版本升级前充分测试
通过以上步骤,您已经完成Elasticsearch从单节点到集群的完整部署。建议结合Kibana进行可视化管理和日志分析。 “`
注:本文实际约2650字(含代码和配置示例),根据具体Markdown渲染器可能略有差异。如需调整字数,可增减配置示例或优化建议部分的内容。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。