如何在 CentOS 8 上安装 Elasticsearch

本文详细指导如何在CentOS 8系统上快速安装Elasticsearch,包括Java配置、RPM源添加、服务安装、远程访问配置及防火墙设置,确保安全并允许指定IP访问。

简介: Elasticsearch 是一个开源全文搜索和分析引擎。它支持 RESTful 操作,并且允许你存储,搜索,并且实时分析大量的数据。Elasticsearch是最流行的搜索引擎之一,可为具有复杂搜索要求的应用程序提供动力,例如大型电子商务商店和分析应用程序。本文主要为大家讲解在 CentOS 8 上安装 Elasticsearch。

image.png


镜像下载、域名解析、时间同步请点击 阿里巴巴开源镜像站

Elasticsearch 是一个开源全文搜索和分析引擎。它支持 RESTful 操作,并且允许你存储,搜索,并且实时分析大量的数据。Elasticsearch是最流行的搜索引擎之一,可为具有复杂搜索要求的应用程序提供动力,例如大型电子商务商店和分析应用程序。
本文主要讲解在 CentOS 8 上安装 Elasticsearch。

一、安装 Java

Elasticsearch 是一个 Java 应用,因此,第一步就是安装 Java。
以 root 或者其他 sudo 用户身份运行下面的命令,去安装 OpenJDK 软件包:

sudo dnf install java-11-openjdk-devel

通过打印Java 版本验证 Java 安装:

java -version

输出将会像下面这样:

openjdk version "11.0.5" 2019-10-15 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.5+10-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode, sharing)

二、安装 Elasticsearch

Elasticsearch 在标准的CentOS 8 源中不可用。我们将会从 Elasticsearch RPM 源中安装它。
使用rpm命令导入源的 GPG:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

打开你的文本编辑器,并且在/etc/yum.repos.d目录下创建源文件:

sudo nano /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

保存文件并且关闭你的文本编辑器。
现在源已经被启用,安装 Elasticsearch 软件包,输入:

sudo dnf install elasticsearch

一旦安装过程完成,启动并且启用这个服务:

sudo systemctl enable elasticsearch.service --now

想要验证 Elasticsearch 是否运行,使用 curl 命令发送一个 HTTP 请求到本地的 port 9200:

curl -X GET "localhost:9200/"

输出将会像下面这样:

{
  "name" : "centos8.localdomain",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "V_mfjn2PRJqX3PlZb_VD7w",
  "version" : {
    "number" : "7.6.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "7f634e9f44834fbc12724506cc1da681b0c3b1e3",
    "build_date" : "2020-02-06T00:09:00.449973Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

它将会需要 5-10s 来启动服务。 如果你看到 curl: (7) Failed to connect to localhost port 9200: Connection refused,请稍等几秒钟,并且重试。
想要查看Elasticsearch服务的信息,使用下面的命令:

sudo journalctl -u elasticsearch

到这里,你已经在你的 CentOS 服务器上安装好 Elasticsearch。

三、 配置 Elasticsearch

Elasticsearch 数据存储在 /var/lib/elasticsearch目录,配置文件在/etc/elasticsearch
默认情况下,Elasticsearch 被配置文件仅仅监听 localhost。 如果客户端连接的数据库在同一个主机上,并且你设置了单节点集群,你不需要修改默认的配置文件。

远程访问

开箱即用的Elasticsearch,没有实现鉴权,因此它可以被任何人通过 HTTP API 进行访问。如果你允许远程访问你的Elasticsearch服务器,你需要配置你的防火墙,并且仅仅允许从受信任的客户端通过9200端口访问Elasticsearch。
例如,仅仅允许从192.168.121.80来的访问,输入下面的命令:
运行下面的命令,允许从远程受信任的 IP 地址访问 9200端口:

sudo firewall-cmd --new-zone=elasticsearch --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --zone=elasticsearch --add-source=192.168.121.80/32 --permanent
sudo firewall-cmd --zone=elasticsearch --add-port=9200/tcp --permanent
sudo firewall-cmd --reload
不要忘记将`192.168.121.80`修改成你的远程 IP 地址。

稍后,如果你想允许从其他IP 地址访问,使用:

sudo firewall-cmd --zone=elasticsearch --add-source=<IP_ADDRESS> --permanent
sudo firewall-cmd --reload

一旦防火墙被配置好了,下一步就是修改Elasticsearch的配置文件,并且允许Elasticsearch监听外部连接。
想要这样做,打开elasticsearch.yml配置文件:

sudo nano /etc/elasticsearch/elasticsearch.yml

搜索包含network.host,去掉注释,并且修改为:

network.host: 0.0.0.0

如果你拥有多个网络接口,指定接口 IP 地址来强制 Elasticsearch 仅仅监听指定的网络接口。
重启 Elasticsearch 服务,使修改生效:

sudo systemctl restart elasticsearch

就这些。你现在可以从远程位置连接到Elasticsearch服务器。

四、 总结

至此,我们已经展示了如何在 CentOS 8 上安装 Elasticsearch。

 本文转自:如何在 CentOS 8 上安装 Elasticsearch-阿里云开发者社区

<think>好的,用户想在CentOS 8安装Elasticsearch,需要一步一步的指南。首先,我需要回忆安装Elasticsearch的步骤,并确保信息准确。记得系统级指令要求使用正确的LaTeX格式,但用户的问题不涉及数学内容,可能暂时不需要处理这部分。 首先,用户的问题是关于安装Elasticsearch,所以需要检查官方文档或者可靠的来源。根据用户提供的引用[1],提到了在安装前需要添加Elasticsearch的GPG密钥,这可能是一个关键步骤。引用[2]提到了使用yum安装git,这可能与安装Elasticsearch无关,但可能用户提供的引用中有部分相关的内容,比如使用yum安装软件包。而引用[3]是关于Oracle的错误,可能与当前问题无关,可以忽略。 接下来,安装Elasticsearch通常的步骤包括:添加Elastic仓库、安装Java依赖、导入GPG密钥、安装软件包、配置和启动服务。需要确保步骤适用于CentOS 8CentOS 8默认使用dnf作为包管理器,但用户提供的引用中提到了yum,可能用户习惯使用yum,不过CentOS 8中yum是dnf的别名,可以继续使用yum命令。 首先,需要安装Java,因为Elasticsearch依赖Java。然后,添加Elastic的仓库。需要导入GPG密钥,如引用[1]所述。然后安装Elasticsearch,配置相关设置,如堆内存、网络绑定,最后启动并启用服务。 需要注意的是,CentOS 8的防火墙管理可能使用firewalld,需要开放相应端口,如9200和9300。另外,配置文件的路径通常是/etc/elasticsearch/elasticsearch.yml,需要修改network.host和cluster.initial_master_nodes等参数。 验证安装是否成功可以通过curl命令访问本地端口9200。同时,确保服务在启动后自动运行。 可能还需要考虑安全设置,比如设置Elasticsearch为系统服务,以及SELinux的配置,但用户可能只需要基础步骤,所以保持回答简洁,必要时提醒用户注意安全配置。 需要检查步骤是否正确,例如添加仓库的命令是否正确,是否存在版本兼容性问题。例如,Elasticsearch 7.x可能与Java 11兼容,而CentOS 8默认的Java版本可能需要确认。可能需要用户安装OpenJDK 11,使用yum install java-11-openjdk-devel。 总结步骤: 1. 安装Java 2. 添加Elastic仓库 3. 导入GPG密钥 4. 安装Elasticsearch 5. 修改配置文件 6. 启动并启用服务 7. 配置防火墙 8. 验证安装 需要确保每个步骤的命令准确,例如rpm --import的URL是否正确,仓库文件是否正确写入/etc/yum.repos.d/目录。同时,注意用户是否有sudo权限,命令是否需要sudo。 可能的问题点:CentOS 8的仓库是否包含Elasticsearch,或者是否需要手动添加Elastic的官方仓库。根据Elastic的文档,确实需要手动添加仓库。因此,步骤应包括创建.repo文件,导入GPG密钥,然后安装。 在回答中需要引用用户提供的引用[1]和[2],但引用[2]是关于安装git的,可能不需要,但引用[1]提到添加GPG密钥,必须包含进去。例如,在步骤2中导入GPG密钥时引用[^1]。 最后,生成相关问题,可能需要包括如何配置Elasticsearch集群、安全设置、性能优化等。</think>### 逐步安装Elasticsearch 7.x 在CentOS 8 #### 1. **安装Java环境** Elasticsearch依赖Java,需先安装OpenJDK 11: ```bash sudo dnf install java-11-openjdk-devel ``` 验证安装: ```bash java -version ``` #### 2. **添加Elasticsearch仓库** 创建仓库文件`/etc/yum.repos.d/elasticsearch.repo`,写入以下内容: ```ini [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 ``` 导入GPG密钥(如引用[^1]所述): ```bash sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch ``` #### 3. **安装Elasticsearch** 使用yum安装: ```bash sudo dnf install elasticsearch ``` #### 4. **配置Elasticsearch** 编辑配置文件`/etc/elasticsearch/elasticsearch.yml`: ```yaml # 允许外部访问(生产环境建议更严格配置) network.host: 0.0.0.0 # 单节点集群配置 cluster.initial_master_nodes: ["localhost"] ``` 调整JVM堆内存(可选,默认1GB): ```bash sudo nano /etc/elasticsearch/jvm.options # 修改 -Xms1g 和 -Xmx1g 值 ``` #### 5. **启动服务并设置开机自启** ```bash sudo systemctl daemon-reload sudo systemctl enable elasticsearch sudo systemctl start elasticsearch ``` #### 6. **防火墙配置** 开放端口9200(HTTP API)和9300(集群通信): ```bash sudo firewall-cmd --add-port={9200/tcp,9300/tcp} --permanent sudo firewall-cmd --reload ``` #### 7. **验证安装** 发送HTTP请求测试: ```bash curl -X GET "localhost:9200/" ``` 成功响应应包含`"cluster_name"`和版本信息。 ### 引用说明 - 添加GPG密钥的步骤参考了Elastic官方文档的要求。 - 使用`yum/dnf`安装软件包的方式与CentOS包管理实践一致[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值