主题
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-elasticsearch3. 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-md3. 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.yml5. 2 修改核心配置项
5. 2.1 配置集群名称(第17行)
yaml
# 集群名称
cluster.name: my-cluster5. 2.2 配置节点名称(第23行)
yaml
# 节点名称
node.name: node-15. 2.3 配置网络绑定(第56行)
yaml
# 网络绑定(允许任何IP访问)
network.host: 0.0.0.05. 2.4 配置主节点(第74行)
yaml
# 主节点配置
cluster.initial_master_nodes: ["node-1"]5. 3 保存配置文件
bash
# 按Esc键,然后输入:wq保存退出
:wq6. Elasticsearch服务管理
6. 1 查看Elasticsearch状态
bash
systemctl status elasticsearch6. 2 启动Elasticsearch服务
bash
systemctl start elasticsearch说明:Elasticsearch启动可能需要10-20秒,请耐心等待
6. 3 设置Elasticsearch开机自启
bash
systemctl enable elasticsearch6. 4 停止Elasticsearch服务
bash
systemctl stop elasticsearch6. 5 重启Elasticsearch服务
bash
systemctl restart elasticsearch状态)
7. 防火墙配置
7. 1 Elasticsearch端口说明
- 9200:Elasticsearch HTTP API端口
- 9300:Elasticsearch节点间通信端口
7. 2 配置防火墙规则
7. 2.1 方式一:关闭防火墙(仅适用于测试环境)
bash
# 停止防火墙服务
systemctl stop firewalld
# 禁用防火墙开机自启
systemctl disable firewalld7. 2.2 方式二:放行Elasticsearch端口(适用于生产环境)
bash
# 放行Elasticsearch端口
firewall-cmd --permanent --add-port=9200/tcp
firewall-cmd --permanent --add-port=9300/tcp
# 重新加载防火墙规则
firewall-cmd --reload8. 验证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"
}
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的安装和部署。
安装步骤:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch- 导入公钥dnf install elasticsearch- 安装Elasticsearchsystemctl start elasticsearch- 启动服务systemctl enable elasticsearch- 开机自启
基本使用: curl localhost:9200 - 测试服务状态 curl localhost:9200/_cat/health - 查看健康状态
Elasticsearch是分布式搜索引擎,默认监听9200端口,需要Java环境,适合全文搜索和日志分析。
课后练习
- 基础练习:在Linux系统上成功安装Elasticsearch
- 进阶练习:
- 配置Elasticsearch开机自启
- 修改Elasticsearch的默认端口
- 使用curl命令测试Elasticsearch API
- 挑战练习:配置Elasticsearch集群(至少2个节点)