Linux中快速部署Elasticsearch(基础&TLS配置)

Linux快速部署Elasticsearch用于服务对接(基础&TLS配置)

  • [部署 Elasticsearch 服务](#部署 Elasticsearch 服务)
    • [下载 Elasticsearch 服务](#下载 Elasticsearch 服务)
    • [安装 Elasticsearch 服务](#安装 Elasticsearch 服务)
    • 创建用户和组
  • [配置 Elasticsearch 服务](#配置 Elasticsearch 服务)
  • [启动 Elasticsearch 服务](#启动 Elasticsearch 服务)
    • [作为守护进程运行启动 Elasticsearch 服务](#作为守护进程运行启动 Elasticsearch 服务)
    • 可能的错误
    • [关闭 Elasticsearch](#关闭 Elasticsearch)
    • 修改用户密码
  • [连接到 Elasticsearch 服务](#连接到 Elasticsearch 服务)
  • 相关链接

本文目标是部署基础可用的Elasticsearch服务,场景在于时间并不充足的情况下,需要快速部署一套Elasticsearch服务用于开发或者服务器初始化的情况,所以配置或不满足高可用、高安全等,以效率为主,后续使用过程中可以通过进阶配置完善

  • 文章最后也会附加官方文档链接,用于大家进阶配置,学习细节内容

部署 Elasticsearch 服务

下载 Elasticsearch 服务

所有Elasticsearch版本下载页面,选择需要的版本,点击蓝色Download

然后在该页面选择对应的架构,如Linux X86_64

右键复制链接,或者直接点击下载,再上传到服务器

复制地址如:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-9.1.5-linux-x86_64.tar.gz

安装 Elasticsearch 服务

在 Linux 的机器执行wget 复制的地址,下载 Elasticsearch 服务安装文件。或者将前面下载的文件上传到自己的目录,就不用wget,离线环境亦可用上传的方式

bash 复制代码
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-9.1.5-linux-x86_64.tar.gz
tar -xzf elasticsearch-9.1.5-linux-x86_64.tar.gz
cd elasticsearch-9.1.5/

后续elasticsearch-9.1.5此目录称为 $ES_HOME

创建用户和组

创建用户和组并将ES_HOME分配给该用户,因为ES不允许root用户运行,后续都将使用es-user操作

bash 复制代码
sudo groupadd -r es-user
sudo useradd -M -r -g es-user es-user

# 分配目录权限
sudo chown -R es-user:es-user path/to/elasticsearch-9.1.5

# 切换用户
su es-user

配置 Elasticsearch 服务

配置elasticsearch.yml

  • 编辑config/elasticsearch.yml
bash 复制代码
vi config/elasticsearch.yml
  • 取消注释行 #cluster.name: my-application
  • 为 Elasticsearch 实例指定你得集群名
yaml 复制代码
cluster.name: elasticsearch-cluster

在多节点 Elasticsearch 集群中,所有 Elasticsearch 实例都需要具有相同的名称,记住当前配置的,以后会用到

  • 取消注释行 #network.host: 192.168.0.1
  • network改为0.0.0.0使其他主机网络可以访问
yaml 复制代码
network.host: 0.0.0.0

生产环境中,您可能希望使用其他值,例如静态 IP 地址或主机网络接口的引用,可以以后再改,先起来再说💪🏻

  • 取消注释行 #transport.host: 0.0.0.0
  • transport改为0.0.0.0使其他主机网络可以访问
yaml 复制代码
transport.host: 0.0.0.0

管理 TLS(自动)

当您首次启动第一个 Elasticsearch 节点时,它会自动执行以下安全设置,所以按上面操作的新Elasticsearch,无需操作此步,知晓即可

  • 传输层和 HTTP 层生成TLS 证书
  • 将 TLS 配置设置应用于elasticsearch.yml
  • 为 elastic 超级用户设置密码 (目前不用管)
  • 创建用于安全连接 Kibana 和 Elasticsearch 的注册令牌 (目前不用管)

某些情况下,由于节点启动过程检测到该节点已是集群的一部分,或者安全已配置或显式禁用,因此无法自动配置安全。

启动后日志中可以看到以下样子的内容,就表示自动配置成功

启动 Elasticsearch 服务

作为守护进程运行启动 Elasticsearch 服务

bash 复制代码
./bin/elasticsearch -d

日志消息可以在 $ES_HOME/logs/ 目录中找到

可能的错误

如果提示max virtual memory areas vm.max_map_count [65530] is too low,表示系统的内核参数 vm.max_map_count 过低,无法满足应用需求。

临时修改

bash 复制代码
sudo sysctl -w vm.max_map_count=262144

永久修改,编辑配置文件 /etc/sysctl.conf,添加以下行:

bash 复制代码
vm.max_map_count=262144

执行以下命令生效

bash 复制代码
sudo sysctl -p

关闭 Elasticsearch

要关闭 Elasticsearch,直接kill进程即可

bash 复制代码
kill -9 pid

修改用户密码

需要自己配置符合要求的密码

bash 复制代码
./bin/elasticsearch-reset-password -u elastic

随后输入超级用户elastic要设置的密码即可

连接到 Elasticsearch 服务

检查 Elasticsearch 是否正在运行

bash 复制代码
curl --cacert $ES_HOME/config/certs/http_ca.crt
-u elastic:$ELASTIC_PASSWORD https://localhost:9200

--cacert:HTTP 层生成的 http_ca.crt 证书的路径

$ELASTIC_PASSWORD 替换为 elastic 超级用户密码。请确保在调用中使用 https,否则请求将失败

调用将返回类似这样的响应

bash 复制代码
{
  "name" : "Cp8oag6",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
  "version" : {
    "number" : "9.1.5-SNAPSHOT",
    "build_type" : "tar",
    "build_hash" : "f27399d",
    "build_flavor" : "default",
    "build_date" : "2016-03-30T09:51:41.449Z",
    "build_snapshot" : false,
    "lucene_version" : "10.0.0",
    "minimum_wire_compatibility_version" : "1.2.3",
    "minimum_index_compatibility_version" : "1.2.3"
  },
  "tagline" : "You Know, for Search"
}

业务系统按需连接即可

将客户端连接到 Elasticsearch

相关链接

在自托管集群中为原生用户和内置用户设置密码
将新节点加入现有 Elasticsearch 集群
在 Linux 或 MacOS 安装 Elasticsearch
Elasticsearch 集群通信的 TLS 加密
首次启动 Elasticsearch 自动安全设置
在生产环境中运行 Elasticsearch
配置 Elasticsearch 包括jvm配置优化等

为集群安装其他节点,则需要 生成一个注册令牌,并在首次启动 Elasticsearch 时传递它
Elasticsearch 网络设置

相关推荐
Elasticsearch20 小时前
Elasticsearch:创建一个定制的 DeepSeek 嵌入推理端点
elasticsearch
奥尔特星云大使21 小时前
详细的Linux系统更新yum源的教程
linux·运维·服务器·ubuntu·centos·yum源·epel源
tritone21 小时前
在优豆云免费云服务器上初探SSH与SCP的便捷操作
运维·服务器·ssh
lht63193561221 小时前
Ubuntu Server 系统安装图形界面
linux·运维·ubuntu
大美B端工场-B端系统美颜师21 小时前
数字孪生为什么需要5G?低延迟与高可靠实现精准控制
运维·服务器·5g
christine-rr21 小时前
linux常用命令(6)——网络管理
linux·服务器·网络·ubuntu·网络安全
isyangli_blog21 小时前
Linux (CentOS 7.9) vmware 创建与安装
linux·运维·centos
AHUGEFATTY21 小时前
centos离线包获取-附centos7主流离线包资源
linux·运维·centos
hjlgs1 天前
Kernel5.4 Timer定时器使用
linux