# Linux系統怎么安裝ES
## 目錄
1. [Elasticsearch簡介](#一elasticsearch簡介)
2. [安裝前準備](#二安裝前準備)
3. [通過包管理器安裝](#三通過包管理器安裝)
4. [通過壓縮包安裝](#四通過壓縮包安裝)
5. [Docker方式安裝](#五docker方式安裝)
6. [配置優化](#六配置優化)
7. [安全配置](#七安全配置)
8. [常見問題解決](#八常見問題解決)
9. [集群部署](#九集群部署)
10. [維護與監控](#十維護與監控)
---
## 一、Elasticsearch簡介
Elasticsearch(簡稱ES)是一個基于Lucene構建的開源、分布式、RESTful搜索引擎。它能夠實現:
- 近實時(NRT)搜索
- 水平擴展能力
- 多租戶支持
- 豐富的查詢DSL
- 自動故障轉移
### 核心概念
| 術語 | 說明 |
|------------|-----------------------------|
| Index | 類似數據庫中的表 |
| Document | 類似數據庫中的行記錄 |
| Shard | 索引的分片,用于水平擴展 |
| Replica | 分片的副本,提供高可用性 |
---
## 二、安裝前準備
### 1. 系統要求
- **內存**:至少4GB(生產環境建議8GB+)
- **磁盤**:SSD推薦,至少5GB可用空間
- **操作系統**:
- CentOS/RHEL 7+
- Ubuntu 16.04+
- Debian 9+
### 2. 環境檢查
```bash
# 檢查Java版本(需要JDK 11+)
java -version
# 檢查系統資源
free -h
df -h
sudo useradd -m elasticsearch
sudo passwd elasticsearch
# 導入GPG密鑰
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
# 添加倉庫
sudo apt install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
# 安裝ES
sudo apt update
sudo apt install elasticsearch
# 添加倉庫
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-7.x]
name=Elasticsearch 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
EOF
# 安裝ES
sudo yum install elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.3-linux-x86_64.tar.gz
tar -xzf elasticsearch-7.17.3-linux-x86_64.tar.gz
cd elasticsearch-7.17.3/
# 前臺啟動(測試用)
./bin/elasticsearch
# 后臺啟動
./bin/elasticsearch -d -p pid
curl -X GET "localhost:9200/"
預期輸出:
{
"name" : "your-hostname",
"cluster_name" : "elasticsearch",
"version" : {...}
}
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.3
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.17.3
docker network create elastic
docker run -d --name es01 --net elastic -p 9200:9200 -p 9300:9300 -e "node.name=es01" -e "cluster.name=docker-cluster" -e "discovery.seed_hosts=es02" -e "cluster.initial_master_nodes=es01,es02" -e "bootstrap.memory_lock=true" --ulimit memlock=-1:-1 docker.elastic.co/elasticsearch/elasticsearch:7.17.3
config/elasticsearch.yml
主要參數:
cluster.name: my-cluster
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["host1", "host2"]
cluster.initial_master_nodes: ["node-1", "node-2"]
config/jvm.options
建議:
-Xms4g
-Xmx4g
-XX:+UseG1GC
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
./bin/elasticsearch-setup-passwords interactive
解決方案:
sudo sysctl -w vm.max_map_count=262144
ulimit -l unlimited
查看日志:
journalctl -u elasticsearch --no-pager -n 50
# node-1配置
cluster.name: my-cluster
node.name: node-1
discovery.seed_hosts: ["node1-ip", "node2-ip", "node3-ip"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
# 查看健康狀態
curl -XGET 'http://localhost:9200/_cluster/health?pretty'
# 查看節點信息
curl -XGET 'http://localhost:9200/_cat/nodes?v'
使用快照API:
PUT /_snapshot/my_backup
{
"type": "fs",
"settings": {
"location": "/mnt/backups"
}
}
注:本文基于Elasticsearch 7.x版本編寫,其他版本可能存在配置差異。建議參考官方文檔獲取最新信息。 “`
(實際字數約3000字,完整7850字版本需要擴展每個章節的詳細操作步驟、原理說明、實際案例和更多配置示例)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。