温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

elasticsearch怎么部署

发布时间:2026-08-27 22:11:57 来源:亿速云 阅读:102 作者:小樊 栏目:软件技术

部署 Elasticsearch(简称 ES)有多种方式,最简单的是使用 Docker,生产环境通常使用 Linux 二进制包 或 包管理器。

在开始之前,需要注意一个最常见的坑:Elasticsearch 在 Linux 下不能使用 root 用户启动,且需要调整系统内核参数。


一、 部署前准备(Linux 环境必看)

如果你在 Linux 上部署(无论是原生包还是 Docker),建议先修改系统参数,否则 ES 会启动失败:

  1. 修改 vm.max_map_count(虚拟内存映射数) ES 需要大量的内存映射区域:

    # 临时生效
    sudo sysctl -w vm.max_map_count=262144
    # 永久生效(重启后保留)
    echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
    
  2. 创建专用非 Root 用户(仅限原生包部署)

    useradd esuser
    passwd esuser
    

二、 方式一:Docker 部署(最推荐,最快上手)

如果你安装了 Docker,只需一行命令即可启动一个单节点 ES(适合开发测试):

docker run -d \
  --name elasticsearch \
  -p 9200:9200 \
  -p 9300:9300 \
  -e "discovery.type=single-node" \
  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
  -e "xpack.security.enabled=false" \
  docker.elastic.co/elasticsearch/elasticsearch:8.13.4

参数说明:

  • -p 9200:9200:HTTP REST API 端口(对外访问)。
  • -p 9300:9300:集群节点间通信端口。
  • discovery.type=single-node:设置为单节点模式(不组成集群)。
  • ES_JAVA_OPTS:限制 JVM 堆内存大小(根据你的机器配置调整,如 -Xms1g -Xmx1g)。
  • xpack.security.enabled=false:注意:ES 8.x 默认开启了安全认证(账号密码),为了方便测试先关闭它;如果是生产环境,建议开启并配置密码。

三、 方式二:Linux 原生 Tar 包部署(生产常用)

  1. 下载并解压(以 8.13.4 版本为例)

    # 切换到 esuser 并下载
    su esuser
    cd /home/esuser
    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.4-linux-x86_64.tar.gz
    tar -xzf elasticsearch-8.13.4-linux-x86_64.tar.gz
    cd elasticsearch-8.13.4
    
  2. 修改配置文件 config/elasticsearch.yml

    # 设置集群名称
    cluster.name: my-application
    # 设置节点名称
    node.name: node-1
    # 允许外部 IP 访问(如果需要远程连接,设为 0.0.0.0)
    network.host: 0.0.0.0
    # 单节点模式
    discovery.type: single-node
    # 关闭安全认证(测试用,生产请开启并配置)
    xpack.security.enabled: false
    
  3. (可选)修改 JVM 内存 config/jvm.options 如果机器内存小,修改以下两行(建议两者相等,且不超过物理内存的 50%):

    -Xms512m
    -Xmx512m
    
  4. 启动 ES

    ./bin/elasticsearch
    # 如果想后台运行,加 -d 参数
    # ./bin/elasticsearch -d
    

四、 方式三:使用包管理器(APT / YUM)

以 Ubuntu/Debian 为例:

# 导入 Elastic 签名密钥
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg
# 添加软件源
echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
# 安装
sudo apt update && sudo apt install elasticsearch
# 启动
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

五、 验证是否部署成功

在浏览器或命令行访问 9200 端口:

curl http://localhost:9200

如果部署成功,你会看到类似以下的 JSON 返回:

{
  "name" : "node-1",
  "cluster_name" : "my-application",
  "cluster_uuid" : "xxxxxxxxxxxx",
  "version" : {
    "number" : "8.13.4",
    "build_flavor" : "default",
    ...
  },
  "tagline" : "You Know, for Search"
}

六、 进阶与补充建议

  1. 可视化工具(Kibana):ES 官方提供了一个叫 Kibana 的可视化面板,如果你需要图形化查看数据和集群状态,可以用 Docker 顺便起一个 Kibana(注意版本要与 ES 保持一致)。
  2. 生产环境注意事项:
    • 不要关闭 xpack.security,它默认提供账号密码(首次启动会在日志中打印出 elastic 超级用户的密码)。
    • 禁用 Swap 分区(sudo swapoff -a),防止 ES 内存被交换到磁盘导致性能骤降。
    • 生产环境务必配置 至少 3 个节点 的集群以保证高可用,而不是 single-node。
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手