本文作者:xiaoshi

如何在 Linux 上搭建 Elasticsearch 服务器?

如何在 Linux 上搭建 Elasticsearch 服务器?摘要: ...

在 Linux 上搭建 Elasticsearch 服务器的完整指南

Elasticsearch 是一个强大的分布式搜索和分析引擎,广泛应用于日志分析、全文搜索、数据可视化等领域。本文将详细介绍如何在 Linux 系统上搭建 Elasticsearch 服务器,帮助你快速上手并部署自己的搜索服务。

一、准备工作

如何在 Linux 上搭建 Elasticsearch 服务器?

在开始之前,确保你的 Linux 系统满足以下条件:

  1. 操作系统:Ubuntu 20.04 或 CentOS 7 及以上版本。
  2. Java 环境:Elasticsearch 需要 Java 11 或更高版本。
  3. 硬件资源:至少 2GB 内存,建议 4GB 以上。
  4. 网络配置:确保防火墙允许 Elasticsearch 的默认端口(9200 和 9300)访问。

1. 安装 Java

Elasticsearch 依赖于 Java 环境,因此首先需要安装 Java。
对于 Ubuntu 系统,可以使用以下命令:

sudo apt update  
sudo apt install openjdk-11-jdk  

对于 CentOS 系统,可以使用:

sudo yum install java-11-openjdk-devel  

安装完成后,通过以下命令验证 Java 版本:

java -version  

2. 下载 Elasticsearch

访问 Elasticsearch 官方网站,获取最新版本的下载链接。以 8.x 版本为例,使用以下命令下载并解压:

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.x.x-linux-x86_64.tar.gz  
tar -xzf elasticsearch-8.x.x-linux-x86_64.tar.gz  

解压后,进入 Elasticsearch 目录:

cd elasticsearch-8.x.x  

二、配置 Elasticsearch

1. 修改配置文件

Elasticsearch 的配置文件位于 config/elasticsearch.yml。打开文件并修改以下关键参数:

cluster.name: my-elasticsearch-cluster  
node.name: node-1  
network.host: 0.0.0.0  
http.port: 9200  
discovery.seed_hosts: ["127.0.0.1"]  
cluster.initial_master_nodes: ["node-1"]  
  • cluster.name:集群名称,确保同一集群内的节点名称一致。
  • node.name:节点名称,建议使用唯一标识。
  • network.host:绑定 IP 地址,0.0.0.0 表示允许所有 IP 访问。
  • http.port:HTTP 访问端口,默认为 9200。
  • discovery.seed_hosts:集群发现的种子节点列表。
  • cluster.initial_master_nodes:初始主节点列表。

2. 设置 JVM 参数

Elasticsearch 的 JVM 参数配置文件位于 config/jvm.options。根据服务器内存大小调整以下参数:

-Xms1g  
-Xmx1g  

-Xms-Xmx 分别表示 JVM 的最小和最大内存分配,建议设置为相同值,且不超过系统内存的 50%。

三、启动 Elasticsearch

1. 以普通用户运行

为了安全起见,建议创建一个专用用户来运行 Elasticsearch:

sudo adduser elasticsearch  
sudo chown -R elasticsearch:elasticsearch /path/to/elasticsearch  

切换到该用户并启动服务:

su elasticsearch  
./bin/elasticsearch  

2. 后台运行

如果需要将 Elasticsearch 作为后台服务运行,可以使用以下命令:

./bin/elasticsearch -d  

3. 验证服务

在浏览器中访问 http://<服务器IP>:9200,如果看到类似以下输出,说明 Elasticsearch 已成功启动:

{  
  "name" : "node-1",  
  "cluster_name" : "my-elasticsearch-cluster",  
  "cluster_uuid" : "abc123",  
  "version" : {  
    "number" : "8.x.x",  
    "build_flavor" : "default",  
    "build_type" : "tar",  
    "build_hash" : "abc123",  
    "build_date" : "2023-01-01T00:00:00.000Z",  
    "build_snapshot" : false,  
    "lucene_version" : "9.x.x",  
    "minimum_wire_compatibility_version" : "7.x.x",  
    "minimum_index_compatibility_version" : "7.x.x"  
  },  
  "tagline" : "You Know, for Search"  
}  

四、优化与安全

1. 配置系统限制

Elasticsearch 对系统资源有一定要求,可以通过修改 /etc/security/limits.conf 文件来增加资源限制:

elasticsearch soft nofile 65536  
elasticsearch hard nofile 65536  
elasticsearch soft memlock unlimited  
elasticsearch hard memlock unlimited  

2. 配置防火墙

如果服务器启用了防火墙,需要开放 Elasticsearch 的端口:

sudo ufw allow 9200/tcp  
sudo ufw allow 9300/tcp  

3. 启用身份验证

Elasticsearch 8.x 默认启用了安全功能,建议配置用户名和密码以保护服务。可以通过以下命令生成密码:

./bin/elasticsearch-setup-passwords interactive  

五、总结

通过以上步骤,你已成功在 Linux 系统上搭建并配置了 Elasticsearch 服务器。接下来,你可以根据业务需求进一步优化性能或集成其他工具(如 Kibana、Logstash)来构建完整的数据分析平台。希望本文能帮助你快速上手 Elasticsearch,开启高效搜索之旅!

文章版权及转载声明

作者:xiaoshi本文地址:http://blog.luashi.cn/post/3008.html发布于 05-30
文章转载或复制请以超链接形式并注明出处小小石博客

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,21人围观)参与讨论

还没有评论,来说两句吧...