# Linux如何安裝和配置Elasticsearch
## 目錄
1. [Elasticsearch簡介](#elasticsearch簡介)
2. [系統要求](#系統要求)
3. [安裝前準備](#安裝前準備)
4. [安裝Java環境](#安裝java環境)
5. [下載和安裝Elasticsearch](#下載和安裝elasticsearch)
6. [配置Elasticsearch](#配置elasticsearch)
7. [啟動和停止Elasticsearch](#啟動和停止elasticsearch)
8. [驗證安裝](#驗證安裝)
9. [基本安全配置](#基本安全配置)
10. [常見問題解決](#常見問題解決)
11. [性能優化建議](#性能優化建議)
12. [集群配置](#集群配置)
13. [插件管理](#插件管理)
14. [備份與恢復](#備份與恢復)
15. [總結](#總結)
<a id="elasticsearch簡介"></a>
## 1. Elasticsearch簡介
Elasticsearch是一個開源的分布式搜索和分析引擎,基于Apache Lucene構建。它能夠實現近乎實時的搜索,支持結構化查詢、全文檢索以及復雜的分析功能。廣泛應用于日志分析、企業搜索、應用監控等領域。
主要特點:
- 分布式架構
- RESTful API
- 近實時搜索
- 多租戶支持
- 文檔導向存儲
<a id="系統要求"></a>
## 2. 系統要求
在安裝Elasticsearch前,請確保系統滿足以下要求:
### 硬件要求
- 內存:至少4GB(生產環境建議8GB以上)
- 磁盤空間:SSD硬盤,至少10GB可用空間
- CPU:2核以上
### 軟件要求
- 操作系統:Linux(推薦Ubuntu/CentOS/RHEL)
- Java:OpenJDK或Oracle JDK 11+
- 用戶權限:非root用戶運行(安全考慮)
<a id="安裝前準備"></a>
## 3. 安裝前準備
### 創建專用用戶
```bash
sudo adduser elasticsearch
sudo usermod -aG sudo elasticsearch
編輯/etc/sysctl.conf
:
vm.max_map_count=262144
fs.file-max=65536
應用修改:
sudo sysctl -p
Elasticsearch需要Java 11或更高版本:
sudo apt update
sudo apt install openjdk-11-jdk
sudo yum install java-11-openjdk-devel
驗證安裝:
java -version
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
sudo apt update
sudo apt install elasticsearch
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo vi /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
然后安裝:
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
sudo mv elasticsearch-7.17.3 /usr/share/elasticsearch
主要配置文件路徑:
- /etc/elasticsearch/elasticsearch.yml
(主配置)
- /etc/elasticsearch/jvm.options
(JVM配置)
# 集群名稱
cluster.name: my-elastic-cluster
# 節點名稱
node.name: node-1
# 數據存儲路徑
path.data: /var/lib/elasticsearch
# 日志存儲路徑
path.logs: /var/log/elasticsearch
# 網絡綁定
network.host: 0.0.0.0
# HTTP端口
http.port: 9200
# 發現設置(單節點)
discovery.type: single-node
編輯/etc/elasticsearch/jvm.options
:
-Xms2g
-Xmx2g
注意:Xmx和Xms應設置為相同值,不超過物理內存的50%
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
sudo systemctl status elasticsearch
sudo -u elasticsearch /usr/share/elasticsearch/bin/elasticsearch
sudo systemctl stop elasticsearch
檢查服務狀態:
curl -X GET "localhost:9200/"
成功響應示例:
{
"name" : "node-1",
"cluster_name" : "my-elastic-cluster",
"version" : {
"number" : "7.17.3",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "5ad023604c8d7416c9eb6c0eadb62b14e766caff",
"build_date" : "2022-04-19T08:11:19.070913226Z",
"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"
}
xpack.security.enabled: true
sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
sudo ufw allow 9200/tcp
sudo ufw allow 9300/tcp
解決方法:
sudo sysctl -w vm.max_map_count=262144
檢查:
sudo netstat -tulnp | grep 9200
可能需要調整network.host
設置
journalctl -u elasticsearch
# 或
tail -f /var/log/elasticsearch/my-elastic-cluster.log
硬件優化
配置優化
indices.query.bool.max_clause_count: 8192
thread_pool.search.queue_size: 1000
索引優化
cluster.name: my-production-cluster
node.name: node-1
network.host: 192.168.1.10
discovery.seed_hosts: ["192.168.1.10", "192.168.1.11", "192.168.1.12"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
node.master: true
node.data: true
node.ingest: false
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin list
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin remove analysis-icu
PUT /_snapshot/my_backup
{
"type": "fs",
"settings": {
"location": "/mnt/backups/elasticsearch"
}
}
PUT /_snapshot/my_backup/snapshot_1?wait_for_completion=true
POST /_snapshot/my_backup/snapshot_1/_restore
本文詳細介紹了在Linux系統上安裝和配置Elasticsearch的全過程,包括: 1. 系統準備和Java環境安裝 2. 通過包管理器或手動方式安裝Elasticsearch 3. 基礎配置和優化建議 4. 服務管理和故障排查 5. 安全設置和集群配置 6. 插件管理和數據備份
通過正確配置和優化,Elasticsearch能夠為企業提供強大的搜索和分析能力。建議在生產環境中: - 使用專用硬件 - 配置監控系統 - 定期備份數據 - 保持版本更新
命令 | 描述 |
---|---|
curl -X GET "localhost:9200/_cat/health?v" |
檢查集群健康狀態 |
curl -X GET "localhost:9200/_cat/nodes?v" |
查看節點信息 |
curl -X GET "localhost:9200/_cat/indices?v" |
列出所有索引 |
curl -X PUT "localhost:9200/my_index" |
創建新索引 |
curl -X DELETE "localhost:9200/my_index" |
刪除索引 |
”`
注:實際使用時,您可能需要根據具體環境和Elasticsearch版本調整部分命令和配置參數。建議參考官方文檔獲取最新信息:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。