在 CentOS 8 上安装和部署 OpenSearch 2.17 的实战指南20240924

在 CentOS 8 上安装和部署 OpenSearch 2.17 的实战指南

引言

随着数据的快速增长,企业对高效搜索和分析工具的需求也在不断增加。OpenSearch 是由社区主导的搜索和分析引擎,它为大规模数据索引、日志分析、全文检索等场景提供了强大的支持。在这篇博客中,我将分享如何在 CentOS 8 上安装和配置 OpenSearch 2.17,确保您能够快速启动并运行该服务。

本教程涵盖从环境准备、安装 Java、下载与解压 OpenSearch、配置系统参数到将 OpenSearch 配置为系统服务的详细步骤。无论您是开发者还是运维人员,这篇文章将为您提供实用的安装指南和最佳实践。

一、准备工作

在安装 OpenSearch 之前,我们需要确保系统符合以下要求:

  • 操作系统:CentOS 8
  • 内存:至少 4GB(根据具体使用场景,建议更多)
  • Java:需要 Java 11 或更高版本

二、安装 Java

OpenSearch 依赖 Java,因此我们首先安装 OpenJDK 11。

bash 复制代码
sudo dnf install java-11-openjdk-devel

验证 Java 版本是否安装正确:

bash 复制代码
java -version

输出应类似于:

bash 复制代码
openjdk version "11.0.x" ...

三、下载 OpenSearch 2.17

从 OpenSearch 官方网站获取最新的 2.17 版本,或使用以下命令直接下载:

bash 复制代码
wget https://artifacts.opensearch.org/releases/bundle/opensearch/2.17.0/opensearch-2.17.0-linux-x64.tar.gz

四、解压文件

下载完成后,解压 OpenSearch 文件:

bash 复制代码
tar -zxvf opensearch-2.17.0-linux-x64.tar.gz

五、配置 OpenSearch

进入 OpenSearch 安装目录,并对配置文件进行修改:

bash 复制代码
cd opensearch-2.17.0

编辑 config/opensearch.yml 文件,根据您的需求进行以下基本配置:

yaml 复制代码
cluster.name: my-opensearch-cluster
node.name: node-1
network.host: 0.0.0.0

注意:在生产环境中,建议启用安全功能,如 TLS 和用户认证,以保证数据安全。

六、调整 JVM 内存

为确保 OpenSearch 能够高效运行,我们可以调整 JVM 的内存分配。编辑 config/jvm.options 文件,分配适当的内存,如 2GB:

bash 复制代码
-Xms2g
-Xmx2g

七、创建 OpenSearch 用户(可选)

出于安全考虑,我们建议为 OpenSearch 创建一个独立的用户,并确保该用户拥有相应的权限。

bash 复制代码
sudo useradd opensearch
sudo chown -R opensearch:opensearch /path/to/opensearch-2.17.0/

八、系统配置调整

8.1 文件描述符限制

编辑 /etc/security/limits.conf,为 OpenSearch 用户添加如下限制:

bash 复制代码
opensearch soft nofile 65535
opensearch hard nofile 65535
opensearch soft nproc 4096
opensearch hard nproc 4096

8.2 虚拟内存设置

为了提升系统性能,建议修改虚拟内存的设置。编辑 /etc/sysctl.conf,添加以下配置:

bash 复制代码
vm.max_map_count=262144

应用更改:

bash 复制代码
sudo sysctl -w vm.max_map_count=262144

九、配置为系统服务

为了更方便地管理 OpenSearch,我们可以将其配置为系统服务。

创建 Systemd 服务文件 /etc/systemd/system/opensearch.service

ini 复制代码
[Unit]
Description=OpenSearch Service
After=network.target

[Service]
Type=simple
User=opensearch
Group=opensearch
ExecStart=/path/to/opensearch-2.17.0/bin/opensearch
Restart=on-failure
LimitNOFILE=65535
LimitNPROC=4096
TimeoutStopSec=0
KillSignal=SIGTERM
SendSIGKILL=no
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

替换 /path/to/opensearch-2.17.0/ 为实际路径。

接下来加载服务配置并启动 OpenSearch:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl start opensearch
sudo systemctl enable opensearch

十、验证 OpenSearch 安装

检查 OpenSearch 是否正常启动:

bash 复制代码
sudo systemctl status opensearch

查看实时日志以监控启动过程:

bash 复制代码
sudo journalctl -u opensearch -f

使用 curl 命令验证 OpenSearch 服务是否成功运行:

bash 复制代码
curl -XGET 'http://localhost:9200'

输出应该类似于:

json 复制代码
{
  "name" : "node-1",
  "cluster_name" : "my-opensearch-cluster",
  "cluster_uuid" : "....",
  "version" : {
    "number" : "2.17.0",
    ...
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

十一、配置防火墙(可选)

如果需要远程访问 OpenSearch,您需要开放 9200 端口:

bash 复制代码
sudo firewall-cmd --add-port=9200/tcp --permanent
sudo firewall-cmd --reload

警告:直接暴露 9200 端口存在安全风险,建议配置 TLS 和身份认证机制。

十二、后续步骤

12.1 安全配置

在生产环境中,建议启用 TLS 来加密传输,并配置用户认证来保护集群。

12.2 插件安装

根据您的业务需求,OpenSearch 提供了多种插件扩展功能,您可以根据需求安装不同插件。

12.3 监控与备份

为了保障 OpenSearch 的稳定性,建议使用监控工具如 Prometheus 或 OpenSearch Dashboard,同时定期备份数据以避免数据丢失。

总结

在本文中,我们详细介绍了如何在 CentOS 8 上安装并配置 OpenSearch 2.17,涵盖了从环境准备、Java 安装、下载与解压 OpenSearch 到配置和验证服务的完整流程。通过这一实战指南,您不仅能够成功部署 OpenSearch,还能够通过一些最佳实践提升系统的安全性和性能。

无论是单节点还是多节点集群,这些步骤都可以帮助您快速搭建适合生产环境的 OpenSearch 系统。希望这篇文章对您的工作有所帮助!

相关推荐
YRr YRr17 分钟前
CMake 中 add_definitions() 使用的注意事项及替代方案
linux·c++·windows·cmake
遥逖1 小时前
Linux上的C/C++编程
linux·c语言·c++
夏微凉.2 小时前
【RabbitMQ】RabbitMQ 的概念以及使用RabbitMQ编写生产者消费者代码
linux·学习·rabbitmq
-SGlow-2 小时前
Linux相关概念和重要知识点(7)(git、冯诺依曼体系结构)
linux·运维·git
EterNity_TiMe_2 小时前
【Linux基础IO】深入解析Linux基础IO缓冲区机制:提升文件操作效率的关键
linux·运维·服务器·开发语言·学习·性能优化·学习方法
0xwang3 小时前
Ubuntu24.04桌面版下的网络管理
linux·ubuntu
苏湘涵3 小时前
进程的那些事--实现shell
linux·运维·服务器
Maxx Space3 小时前
828华为云征文|部署个人知识管理系统 SiyuanNote
linux·git·docker·华为云·github·notion
宝哈4 小时前
认识 Linux操作系统
linux·运维·服务器·开发语言·c++·算法
yoona10205 小时前
《掌握Shell脚本:从入门到精通的实用指南》
linux·区块链·团队开发·个人开发·学习方法