您好,登录后才能下订单哦!
# 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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。