以下是 Elasticsearch (ES) 通過 .tar.gz
壓縮包安裝的詳細步驟(適用于 Linux/macOS 系統):
1. 準備工作
1.1 檢查系統依賴
- Java 環境:ES 需要 JDK,推薦 OpenJDK 11/17(ES 7.x/8.x 兼容版本)。
java -version # 檢查是否已安裝
- 如果未安裝,使用以下命令安裝(以 Ubuntu 為例):
sudo apt update sudo apt install openjdk-11-jdk
- 如果未安裝,使用以下命令安裝(以 Ubuntu 為例):
1.2 創建專用用戶
- Elasticsearch 禁止以 root 用戶運行,需創建普通用戶:
sudo useradd -m elasticsearch sudo passwd elasticsearch # 設置密碼 sudo usermod -aG sudo elasticsearch # 授予 sudo 權限(可選)
2. 下載并解壓 Elasticsearch
2.1 下載最新版本
- 從 Elastic 官網 獲取
.tar.gz
包(以 8.13.0 為例):wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.13.0-linux-x86_64.tar.gz
2.2 校驗文件完整性
sha512sum elasticsearch-8.13.0-linux-x86_64.tar.gz # 對比官網提供的 SHA512
2.3 解壓到目標目錄
sudo tar -xzf elasticsearch-8.13.0-linux-x86_64.tar.gz -C /usr/local/
sudo mv /usr/local/elasticsearch-8.13.0 /usr/local/elasticsearch
2.4 設置權限
sudo chown -R elasticsearch:elasticsearch /usr/local/elasticsearch
3. 配置 Elasticsearch
3.1 修改配置文件
- 編輯主配置文件
/usr/local/elasticsearch/config/elasticsearch.yml
:sudo su elasticsearch cd /usr/local/elasticsearch/config nano elasticsearch.yml
- 基礎配置示例(按需調整):
cluster.name: my-es-cluster # 集群名稱 node.name: node-1 # 節點名稱 path.data: /var/lib/elasticsearch # 數據存儲路徑(需提前創建并授權) path.logs: /var/log/elasticsearch # 日志路徑 network.host: 0.0.0.0 # 允許所有 IP 訪問(生產環境建議限制) discovery.type: single-node # 單節點模式(集群需配置其他節點) xpack.security.enabled: true # 啟用安全功能(8.x 默認開啟)
- 基礎配置示例(按需調整):
3.2 設置 JVM 堆內存
- 修改
/usr/local/elasticsearch/config/jvm.options
:-Xms2g # 最小堆內存(建議不超過物理內存的 50%) -Xmx2g # 最大堆內存
4. 啟動 Elasticsearch
4.1 切換到專用用戶
sudo su elasticsearch
cd /usr/local/elasticsearch
4.2 啟動服務(前臺運行)
./bin/elasticsearch
- 如果看到類似以下輸出,說明啟動成功:
[2024-07-07T10:00:00,000][INFO ][o.e.n.Node] [node-1] started
4.3 驗證運行狀態
- 新開終端訪問:
curl -XGET "http://localhost:9200/" --user elastic:<password>
- 首次啟動會生成默認密碼(在終端日志中查找),或手動重置:
./bin/elasticsearch-reset-password -u elastic
- 首次啟動會生成默認密碼(在終端日志中查找),或手動重置:
5. 設置為系統服務(可選)
5.1 創建 systemd 服務文件
sudo nano /etc/systemd/system/elasticsearch.service
- 內容如下:
[Unit] Description=Elasticsearch After=network.target[Service] User=elasticsearch Group=elasticsearch ExecStart=/usr/local/elasticsearch/bin/elasticsearch Restart=always LimitNOFILE=65536 # 解決 "max file descriptors" 錯誤[Install] WantedBy=multi-user.target
5.2 啟動并開機自啟
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
sudo systemctl status elasticsearch # 檢查狀態
6. 常見問題解決
6.1 內存鎖定失敗
- 錯誤:
memory locking requested for elasticsearch process but memory is not locked
- 解決方案:
添加:sudo nano /etc/security/limits.conf
elasticsearch soft memlock unlimited elasticsearch hard memlock unlimited
6.2 最大文件描述符不足
- 錯誤:
max file descriptors [4096] for elasticsearch process is too low
- 解決方案:
添加:sudo nano /etc/security/limits.conf
elasticsearch - nofile 65536
總結
- 安裝 JDK → 2. 下載解壓 ES → 3. 配置
elasticsearch.yml
→ 4. 啟動服務 → 5. 驗證訪問
- 生產環境建議:
- 使用 systemd 托管服務。
- 啟用 安全配置(如 HTTPS、RBAC)。
- 監控 堆內存使用情況(避免 OOM)。
官方文檔參考:Elasticsearch Install Guide