在 openEuler 系統中安裝 Elasticsearch(以下簡稱 ES),我將以 ES 7.17.5(長期支持版,適配性強) 為例,提供從環境準備、安裝配置到啓動驗證的完整步驟,同時兼顧 openEuler 的系統特性(如 aarch64/x86_64 架構適配、權限管理等)。 一、環境準備(必做!避免安裝後啓動失敗)
- 檢查系統架構與依賴 openEuler 分為aarch64(鯤鵬等 ARM 架構)和x86_64(x86 架構),ES 提供對應架構的安裝包,先確認系統架構: bash 運行
查看系統架構
uname -m
輸出:aarch64 或 x86_64
- 關閉防火牆與 SELinux(測試環境,生產環境可開放指定端口) bash 運行
關閉防火牆
systemctl stop firewalld systemctl disable firewalld
臨時關閉SELinux
setenforce 0
永久關閉SELinux(修改後需重啓)
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 3. 調整系統內核參數(ES 對系統資源有特定要求) 編輯/etc/security/limits.conf,添加以下內容(提升用户資源限制): bash 運行 vi /etc/security/limits.conf ini
Elasticsearch 用户資源限制
elasticsearch soft nofile 65535 elasticsearch hard nofile 65535 elasticsearch soft nproc 4096 elasticsearch hard nproc 4096 elasticsearch soft memlock unlimited elasticsearch hard memlock unlimited 編輯/etc/sysctl.conf,添加內核參數: bash 運行 vi /etc/sysctl.conf ini
ES 所需內核參數
vm.max_map_count=262144 fs.file-max=655350 net.ipv4.ip_local_port_range=1024 65535 使內核參數生效: bash 運行 sysctl -p 二、安裝 Elasticsearch 方式 1:使用二進制包安裝(推薦,適配所有架構) 步驟 1:下載對應架構的 ES 安裝包 bash 運行
先創建安裝目錄
mkdir -p /usr/share/elasticsearch cd /usr/local/src
若為x86_64架構
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.5-linux-x86_64.tar.gz
若為aarch64架構(鯤鵬)
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.5-linux-aarch64.tar.gz 步驟 2:解壓安裝包 bash 運行
替換為對應架構的包名
x86_64架構
tar -zxvf elasticsearch-7.17.5-linux-x86_64.tar.gz -C /usr/share/
aarch64架構
tar -zxvf elasticsearch-7.17.5-linux-aarch64.tar.gz -C /usr/share/
重命名目錄(簡化路徑)
mv /usr/share/elasticsearch-7.17.5-* /usr/share/elasticsearch 步驟 3:創建專用運行用户(ES 禁止 root 用户運行) bash 運行
創建elasticsearch用户
useradd -r -s /sbin/nologin elasticsearch
賦予目錄權限
chown -R elasticsearch:elasticsearch /usr/share/elasticsearch 方式 2:使用 RPM 包安裝(適用於 x86_64/aarch64,需配置 yum 源) 若偏好 RPM 包管理,可配置 Elastic 的 yum 源後安裝: bash 運行
創建yum源文件
vi /etc/yum.repos.d/elastic.repo ini [elastic-7.x] name=Elastic repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md 安裝 ES: bash 運行 yum install elasticsearch-7.17.5 -y
RPM包安裝的目錄為 /usr/share/elasticsearch,與二進制包一致
三、配置 Elasticsearch 步驟 1:修改核心配置文件elasticsearch.yml 配置文件位於/usr/share/elasticsearch/config/elasticsearch.yml,編輯如下: bash 運行 vi /usr/share/elasticsearch/config/elasticsearch.yml yaml
1. 集羣名稱(單節點也需配置)
cluster.name: my-es-cluster
2. 節點名稱(自定義)
node.name: es-node-1
3. 網絡配置:允許外部訪問
network.host: 0.0.0.0 # 監聽所有網卡,默認僅本地127.0.0.1 http.port: 9200 # HTTP端口
4. 單節點模式(測試環境,生產環境需配置集羣)
discovery.type: single-node
5. 數據與日誌存儲路徑(可選,默認在data和logs目錄)
path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch
6. 可選:關閉X-Pack安全功能(測試環境,生產環境建議開啓)
xpack.security.enabled: false 步驟 2:創建數據與日誌目錄並賦權 bash 運行
創建目錄
mkdir -p /var/lib/elasticsearch /var/log/elasticsearch
賦予權限
chown -R elasticsearch:elasticsearch /var/lib/elasticsearch /var/log/elasticsearch 步驟 3:調整 JVM 內存配置(關鍵!避免內存不足) 編輯/usr/share/elasticsearch/config/jvm.options,根據服務器內存調整: bash 運行 vi /usr/share/elasticsearch/config/jvm.options ini
初始堆內存與最大堆內存,建議為物理內存的1/4(如4G內存設置為1G,8G內存設置為2G)
-Xms1g -Xmx1g
若服務器內存小於2G,可設置為512m:
-Xms512m
-Xmx512m
四、配置 systemd 服務(開機自啓) 步驟 1:創建 systemd 服務文件 bash 運行 vi /etc/systemd/system/elasticsearch.service 寫入以下內容: ini [Unit] Description=Elasticsearch Documentation=https://www.elastic.co Wants=network-online.target After=network-online.target
[Service] Type=simple User=elasticsearch Group=elasticsearch Environment="ES_JAVA_OPTS=-Xms1g -Xmx1g" ExecStart=/usr/share/elasticsearch/bin/elasticsearch -p /var/run/elasticsearch/elasticsearch.pid RuntimeDirectory=elasticsearch RuntimeDirectoryMode=0755 Restart=on-failure LimitNOFILE=65535 LimitNPROC=4096 LimitMEMLOCK=infinity
[Install] WantedBy=multi-user.target 步驟 2:重新加載 systemd 配置 bash 運行 systemctl daemon-reload 五、啓動並驗證 Elasticsearch 步驟 1:啓動 ES 服務 bash 運行
啓動服務
systemctl start elasticsearch
設置開機自啓
systemctl enable elasticsearch 步驟 2:驗證服務狀態 bash 運行
查看服務狀態
systemctl status elasticsearch
查看端口監聽(9200端口應處於LISTEN狀態)
ss -tulpn | grep 9200 步驟 3:驗證 ES 是否正常運行 bash 運行
訪問ES的HTTP接口
curl http://localhost:9200 若返回如下信息,説明 ES 安裝成功: json { "name" : "es-node-1", "cluster_name" : "my-es-cluster", "cluster_uuid" : "xxxxxxxxxxxxxx", "version" : { "number" : "7.17.5", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "xxxxxxxxxxxxxx", "build_date" : "2023-01-31T05:34:48.263135707Z", "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" } 六、常見問題處理 啓動失敗:max virtual memory areas vm.max_map_count [65530] is too low 解決:執行sysctl -w vm.max_map_count=262144,並寫入/etc/sysctl.conf永久生效。 啓動失敗:memory locking requested for elasticsearch process but memory is not locked 解決:確保/etc/security/limits.conf中配置了memlock unlimited,並重啓服務器生效。 外部無法訪問 9200 端口 解決:檢查防火牆是否關閉,或開放 9200 端口:firewall-cmd --add-port=9200/tcp --permanent && firewall-cmd --reload。 總結 核心步驟:openEuler 安裝 ES 需先調整系統內核參數和資源限制,再根據架構選擇對應安裝包,配置核心參數後啓動。 關鍵配置:network.host: 0.0.0.0允許外部訪問,discovery.type: single-node適配單節點測試環境,JVM 內存需根據服務器配置調整。 驗證標準:curl http://localhost:9200返回 ES 版本信息即為安裝成功。