openEuler 下部署 Elasticsearch

Elasticsearch(简称 ES)是分布式搜索与分析引擎,广泛用于日志分析、全文检索等场景。本文基于 openEuler 22.03 LTS 系统,从环境准备、单节点部署、集群搭建、功能验证到运维优化,提供可落地的部署指南。
一、环境准备

  1. 系统基础配置
    openEuler 默认配置需调整以适配 ES 的资源要求:
    bash
    运行

切换root用户

su root

1. 关闭防火墙(测试环境,生产环境需开放9200/9300端口)

systemctl stop firewalld
systemctl disable firewalld

2. 临时关闭SELinux(永久关闭需修改/etc/selinux/config)

setenforce 0

3. 调整虚拟内存(ES要求vm.max_map_count≥262144)

sysctl -w vm.max_map_count=262144
echo “vm.max_map_count=262144” >> /etc/sysctl.conf
sysctl -p

4. 安装依赖包

dnf install -y java-11-openjdk-devel wget
2. 下载 Elasticsearch 安装包
选择与 openEuler 架构匹配的 ES 版本(以 7.17.10 为例,适配 openEuler 22.03):
bash
运行

下载安装包(x86_64架构)

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.10-linux-x86_64.tar.gz

若为ARM64架构,替换为对应包:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.10-linux-aarch64.tar.gz

解压包

tar -zxvf elasticsearch-7.17.10-linux-x86_64.tar.gz
mv elasticsearch-7.17.10 /usr/local/elasticsearch
二、单节点部署

  1. 创建 ES 专属用户
    ES 不允许 root 用户启动,需创建系统用户:
    bash
    运行

创建用户组与用户

groupadd elasticsearch
useradd -g elasticsearch elasticsearch

授权目录权限

chown -R elasticsearch:elasticsearch /usr/local/elasticsearch
2. 配置 ES 核心参数
编辑 ES 配置文件/usr/local/elasticsearch/config/elasticsearch.yml:
yaml

集群名称(自定义)

cluster.name: es-cluster

节点名称(自定义)

node.name: es-node-1

数据存储路径

path.data: /usr/local/elasticsearch/data

日志存储路径

path.logs: /usr/local/elasticsearch/logs

绑定IP(0.0.0.0允许所有IP访问)

network.host: 0.0.0.0

HTTP端口(默认9200)

http.port: 9200

集群初始化主节点(单节点为自身)

cluster.initial_master_nodes: [“es-node-1”]
3. 启动 ES 服务
bash
运行

切换到elasticsearch用户

su elasticsearch

后台启动ES

cd /usr/local/elasticsearch
./bin/elasticsearch -d

验证启动状态(返回JSON信息则成功)

curl http://localhost:9200
三、集群部署(3 节点示例)
以节点1(192.168.1.10)、节点2(192.168.1.11)、节点3(192.168.1.12)为例,在单节点基础上调整配置:

  1. 所有节点统一配置elasticsearch.yml
    yaml
    cluster.name: es-cluster

各节点名称需唯一(如es-node-1、es-node-2、es-node-3)

node.name: es-node-1
path.data: /usr/local/elasticsearch/data
path.logs: /usr/local/elasticsearch/logs
network.host: 0.0.0.0
http.port: 9200

集群节点发现列表(所有节点IP)

discovery.seed_hosts: [“192.168.1.10”, “192.168.1.11”, “192.168.1.12”]

初始化主节点(所有节点名称)

cluster.initial_master_nodes: [“es-node-1”, “es-node-2”, “es-node-3”]
2. 依次启动所有节点
bash
运行
su elasticsearch
cd /usr/local/elasticsearch
./bin/elasticsearch -d
3. 验证集群状态
bash
运行

查看集群健康状态(返回"status":"green"则正常)

curl http://192.168.1.10:9200/_cat/health?v
四、功能验证

  1. 创建测试索引
    bash
    运行

创建名为test_index的索引

curl -X PUT “http://localhost:9200/test_index”

插入测试数据

curl -X POST “http://localhost:9200/test_index/_doc/1” -H “Content-Type: application/json” -d ‘{“name”:“openEuler”,“version”:“22.03”}’

查询数据

curl -X GET “http://localhost:9200/test_index/_search”
2. 查看节点信息
bash
运行

查看集群节点列表

curl http://localhost:9200/_cat/nodes?v
五、运维优化(openEuler 适配)

  1. 内存优化
    编辑/usr/local/elasticsearch/config/jvm.options,调整 JVM 堆内存(建议为物理内存的 50%,不超过 32GB):
    ini
    -Xms4g
    -Xmx4g
  2. 开机自启配置
    创建 systemd 服务文件/etc/systemd/system/elasticsearch.service:
    ini
    [Unit]
    Description=Elasticsearch
    After=network.target

[Service]
User=elasticsearch
Group=elasticsearch
WorkingDirectory=/usr/local/elasticsearch
ExecStart=/usr/local/elasticsearch/bin/elasticsearch
Restart=always

[Install]
WantedBy=multi-user.target
启用自启:
bash
运行
systemctl daemon-reload
systemctl enable elasticsearch
systemctl start elasticsearch
3. 常见问题解决
启动失败提示内存不足:检查vm.max_map_count是否配置,或调整 JVM 堆内存;
集群节点无法发现:确认防火墙开放 9300 端口(ES 节点通信端口),执行firewall-cmd --add-port=9300/tcp --permanent;
权限错误:重新执行chown -R elasticsearch:elasticsearch /usr/local/elasticsearch。
总结
openEuler 下部署 ES 的核心是系统参数适配(虚拟内存、用户权限)+ ES 配置优化(集群发现、资源限制)。单节点适合测试场景,生产环境建议 3 节点以上集群保证高可用。后续可结合 Kibana 实现数据可视化,或接入 Filebeat 完成日志采集。

openEuler 操作系统上安装和配置 Elasticsearch 是一个相对常见的任务,尤其适用于需要部日志分析、全文搜索等功能的场景。以下是详细的安装与配置步骤。 ### 安装 Elasticsearch 1. **下载并解压 Elasticsearch** 首先,确保你的系统已经安装了 Java 环境,因为 Elasticsearch 依赖于 Java 运行环境。你可以使用以下命令检查是否已安装 Java: ```bash java -version ``` 如果未安装 Java,可以使用 dnf 命令安装 OpenJDK: ```bash sudo dnf install java-11-openjdk-devel ``` 接下来,从官方网站下载 Elasticsearch 的 tar.gz 包,并将其解压到目标目录中。例如: ```bash wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.17-linux-x86_64.tar.gz tar -xzf elasticsearch-7.17.17-linux-x86_64.tar.gz -C /opt/ ``` 2. **创建专用用户** 出于安全考虑,建议为 Elasticsearch 创建一个专用用户,而不是以 root 用户身份运行服务: ```bash sudo useradd esuser sudo chown -R esuser:esuser /opt/elasticsearch-7.17.17 ``` 3. **启动 Elasticsearch** 切换到新创建的用户,并尝试启动 Elasticsearch: ```bash su esuser /opt/elasticsearch-7.17.17/bin/elasticsearch ``` 如果希望以后台模式运行 Elasticsearch,可以在命令后面加上 `-d` 参数: ```bash /opt/elasticsearch-7.17.17/bin/elasticsearch -d ``` ### 配置 Elasticsearch 1. **编辑配置文件** Elasticsearch 的主配置文件位于 `config/elasticsearch.yml`。你可以通过编辑此文件来更改网络设置、集群名称等参数。例如,要允许远程访问,需将 `network.host` 设置为 `0.0.0.0`: ```yaml network.host: 0.0.0.0 ``` 此外,还可以根据需要调整其他配置项,如 `cluster.name` 和 `node.name` 等。 2. **测试 Elasticsearch** 使用 curl 命令测试 Elasticsearch 是否正常工作: ```bash curl http://localhost:9200 ``` 如果一切正常,你应该会看到类似以下的 JSON 输出: ```json { "name" : "node-1", "cluster_name" : "elasticsearch", "cluster_uuid" : "abc123def456ghi789jklmno", "version" : { "number" : "7.17.17", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "abcdefg", "build_date" : "2023-09-15T12:00:00Z", "build_snapshot" : false, "lucene_version" : "8.11.1", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" } ``` ### 安全性配置 为了提高安全性,避免将 Elasticsearch 直接暴露在公网中[^1]。可以通过防火墙规则限制对 Elasticsearch 端口(默认为 9200)的访问,仅允许特定 IP 地址或子网访问。 此外,还可以考虑启用 X-Pack 安全功能,为 Elasticsearch 添加身份验证和授权机制。 ### 使用 Docker 安装 Elasticsearch 如果你更倾向于使用 Docker 来部 Elasticsearch,可以按照如下步骤操作: 1. **拉取 Elasticsearch 镜像** ```bash docker pull elasticsearch:7.17.17 ``` 2. **运行 Elasticsearch 容器** 使用以下命令运行 Elasticsearch 容器,并挂载本地目录用于持久化数据和配置: ```bash docker run --name=es \ -p 9200:9200 \ -p 9300:9300 \ -e "discovery.type=single-node" \ -v /docker/es/config:/usr/share/elasticsearch/config \ -v /docker/es/data:/usr/share/elasticsearch/data \ -v /docker/es/logs:/usr/share/elasticsearch/logs \ -v /docker/es/plugins:/usr/share/elasticsearch/plugins \ --restart always \ -d elasticsearch:7.17.17 ``` 3. **获取默认配置文件** 如果你需要修改配置文件,可以从默认容器中提取它们: ```bash docker run --name=elasticsearch \ -p 9200:9200 \ -p 9300:9300 \ -e "discovery.type=single-node" \ -d elasticsearch:7.17.17 docker cp 镜像实例ID:/usr/share/elasticsearch/config /docker/es/ ``` ### 总结 通过以上步骤,你可以在 openEuler 上成功安装并配置 Elasticsearch。无论是采用源码安装还是 Docker 方式,都需要注意安全性和性能优化问题,以确保 Elasticsearch 能够稳定高效地运行。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

teayear

亲,感觉不错,打赏杯咖啡哦^^

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值