跳转到内容

Elasticsearch在Linux系统上的安装和部署

课程介绍

接下来我们学习Elasticsearch的安装部署。Elasticsearch是分布式全文搜索引擎,提供快速的全文搜索和实时数据分析能力。Rocky Linux 9需要配置仓库来安装Elasticsearch。安装后需要修改elasticsearch.yml配置文件,设置集群名称、节点名称、网络绑定等。安装后用systemctl start elasticsearch启动服务,默认监听9200端口。Elasticsearch是ELK技术栈的核心组件,用于日志分析、数据搜索和可视化。

1. Elasticsearch简介

1. 1 什么是Elasticsearch

Elasticsearch(简称ES)是一个开源的分布式全文搜索引擎,可以快速地存储、搜索和分析海量数据。它是目前全文搜索引擎的首选解决方案。

1. 2 Elasticsearch的主要功能

  • 快速的全文搜索能力
  • 分布式数据存储和处理
  • 实时数据分析
  • 支持结构化和非结构化数据
  • 提供RESTful API接口
  • 支持自动分片和复制

1. 3 Elasticsearch的应用场景

  • 网站搜索功能(如维基百科、Stack Overflow、GitHub)
  • 日志分析和监控
  • 电子商务平台的商品搜索
  • 企业内部文档搜索
  • 数据分析和可视化

2. 安装前准备

2. 1 系统环境

  • 操作系统:Rocky Linux 9
  • 权限要求:需要root权限

2. 2 安装方式

  • 使用dnf命令安装
  • 需要手动配置dnf仓库(系统默认仓库不含Elasticsearch)

3. 配置Elasticsearch仓库

3. 1 导入仓库密钥

bash
# 导入Elasticsearch仓库密钥
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

3. 2 创建Elasticsearch仓库配置文件

3. 2.1 进入仓库配置目录

bash
cd /etc/dnf.repos.d/

3. 2.2 创建elasticsearch.repo文件

bash
vi elasticsearch.repo

在文件中添加以下内容:

ini
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/dnf
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

3. 3 更新仓库缓存

bash
dnf makecache

说明:更新缓存以确保能获取到最新的Elasticsearch软件包信息


4. 安装Elasticsearch

4. 1 安装Elasticsearch

bash
dnf install -y elasticsearch

说明:安装过程会自动下载并安装Elasticsearch及其依赖程序,软件包大小约300MB,需耐心等待


5. 配置Elasticsearch

5. 1 编辑Elasticsearch配置文件

bash
vi /etc/elasticsearch/elasticsearch.yml

5. 2 修改核心配置项

5. 2.1 配置集群名称(第17行)

yaml
# 集群名称
cluster.name: my-cluster

5. 2.2 配置节点名称(第23行)

yaml
# 节点名称
node.name: node-1

5. 2.3 配置网络绑定(第56行)

yaml
# 网络绑定(允许任何IP访问)
network.host: 0.0.0.0

5. 2.4 配置主节点(第74行)

yaml
# 主节点配置
cluster.initial_master_nodes: ["node-1"]

5. 3 保存配置文件

bash
# 按Esc键,然后输入:wq保存退出
:wq

6. Elasticsearch服务管理

6. 1 查看Elasticsearch状态

bash
systemctl status elasticsearch

6. 2 启动Elasticsearch服务

bash
systemctl start elasticsearch

说明:Elasticsearch启动可能需要10-20秒,请耐心等待

6. 3 设置Elasticsearch开机自启

bash
systemctl enable elasticsearch

6. 4 停止Elasticsearch服务

bash
systemctl stop elasticsearch

6. 5 重启Elasticsearch服务

bash
systemctl restart elasticsearch

![Elasticsearch服务状态](screenshot:执行systemctl status elasticsearch命令后的输出,显示active (running)状态)


7. 防火墙配置

7. 1 Elasticsearch端口说明

  • 9200:Elasticsearch HTTP API端口
  • 9300:Elasticsearch节点间通信端口

7. 2 配置防火墙规则

7. 2.1 方式一:关闭防火墙(仅适用于测试环境)

bash
# 停止防火墙服务
systemctl stop firewalld

# 禁用防火墙开机自启
systemctl disable firewalld

7. 2.2 方式二:放行Elasticsearch端口(适用于生产环境)

bash
# 放行Elasticsearch端口
firewall-cmd --permanent --add-port=9200/tcp
firewall-cmd --permanent --add-port=9300/tcp

# 重新加载防火墙规则
firewall-cmd --reload

8. 验证Elasticsearch安装

8. 1 通过浏览器访问Elasticsearch

在浏览器中访问Elasticsearch API:

http://[服务器IP]:9200

如果看到类似以下的JSON响应,表示安装成功:

json
{
  "name" : "node-1",
  "cluster_name" : "my-cluster",
  "cluster_uuid" : "xxxxxxxxxxxxxxxxxxxxxxxx",
  "version" : {
    "number" : "7.17.6",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "build_date" : "2023-02-13T09:35:20.314882762Z",
    "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"
}

![Elasticsearch API响应](screenshot:浏览器中访问Elasticsearch API的截图,显示JSON格式的节点信息)

8. 2 使用curl验证

bash
# 使用curl测试Elasticsearch API
curl http://127.0.0.1:9200

预期输出:显示与浏览器访问相同的JSON响应


9. 常见问题与解决方案

问题现象可能原因解决方案
dnf安装Elasticsearch失败仓库配置错误检查elasticsearch.repo文件内容是否正确,重新导入密钥
Elasticsearch无法启动配置错误或端口被占用查看错误日志/var/log/elasticsearch/elasticsearch.log,使用lsof -i:9200检查端口占用
浏览器无法访问Elasticsearch防火墙限制或网络绑定配置错误配置防火墙规则或检查network.host配置
Elasticsearch启动后很快停止内存不足或配置错误检查系统内存使用情况,查看错误日志

课程总结

这节课我们学了Elasticsearch的安装和部署。

安装步骤:

  1. rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch - 导入公钥
  2. dnf install elasticsearch - 安装Elasticsearch
  3. systemctl start elasticsearch - 启动服务
  4. systemctl enable elasticsearch - 开机自启

基本使用: curl localhost:9200 - 测试服务状态 curl localhost:9200/_cat/health - 查看健康状态

Elasticsearch是分布式搜索引擎,默认监听9200端口,需要Java环境,适合全文搜索和日志分析。

课后练习

  1. 基础练习:在Linux系统上成功安装Elasticsearch
  2. 进阶练习
    • 配置Elasticsearch开机自启
    • 修改Elasticsearch的默认端口
    • 使用curl命令测试Elasticsearch API
  3. 挑战练习:配置Elasticsearch集群(至少2个节点)

评论区

专业的Linux技术学习平台,从入门到精通的完整学习路径