返回

畅通无阻地连接 ElasticSearch:在 CentOS 7 上配置外网访问**

见解分享

配置 CentOS 7 中的 ElasticSearch 以实现外网访问

ElasticSearch 是一款强大的开源搜索引擎,以其灵活性、可扩展性和先进的搜索功能而闻名。在 CentOS 7 中部署 ElasticSearch 时,通常需要配置外网访问,以便远程用户或应用程序可以连接到集群。本文将逐步指导您完成此配置过程,涵盖所有必要的步骤和配置选项。

1. 设置 Java 路径

ElasticSearch 依赖于 Java 运行时环境 (JRE) 或 Java 开发工具包 (JDK)。因此,您需要设置 JAVA_HOME 环境变量以指向 Java 安装目录。

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.15.0.5-1.el7_9.x86_64

2. 调整文件句柄限制

ElasticSearch 需要大量文件句柄才能正常运行。因此,您可能需要增加 CentOS 7 的默认文件句柄限制。

* soft nofile 100000
* hard nofile 100000

3. 设置最大锁定内存

ElasticSearch 使用内存映射文件来存储索引和数据。为了防止内存耗尽,您可以设置 MAX_LOCKED_MEMORY 环境变量来限制 ElasticSearch 可以锁定的最大内存量。

MAX_LOCKED_MEMORY=1gb

4. 开放 TCP 端口

ElasticSearch 默认侦听 TCP 端口 9200 和 9300。您需要在防火墙中打开这些端口以允许外网访问。

firewall-cmd --permanent --add-port=9200/tcp
firewall-cmd --permanent --add-port=9300/tcp
firewall-cmd --reload

5. 配置 HTTP/HTTPS

ElasticSearch 可以通过 HTTP 或 HTTPS 进行访问。要启用 HTTPS,您需要生成一个自签名证书或使用受信任的证书颁发机构 (CA) 颁发的证书。

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout elasticsearch.key -out elasticsearch.crt

然后,在配置文件中配置 HTTPS:

xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.certificate: /path/to/elasticsearch.crt
xpack.security.http.ssl.key: /path/to/elasticsearch.key

6. 使用反向代理

在生产环境中,建议使用反向代理(如 Nginx 或 Apache)来处理 ElasticSearch 外网访问。它可以提供额外的安全性、负载均衡和缓存功能。

结论

按照这些步骤,您可以在 CentOS 7 上成功配置 ElasticSearch 以实现外网访问。根据您的具体需求调整配置,确保 ElasticSearch 集群的平稳运行和安全访问。

常见问题解答

1. 如何检查 ElasticSearch 是否正在侦听外网访问?

使用 curl 命令:

curl -X GET http://<server-ip>:9200

2. 如何禁用 ElasticSearch 中的 HTTP 访问?

在配置文件中设置:

http.enabled: false

3. 如何配置 ElasticSearch 以使用自定义端口?

在配置文件中设置:

http.port: <custom-port>

4. 如何增加 ElasticSearch 的 JVM 内存?

在配置文件中设置:

-Xms<memory-size>
-Xmx<memory-size>

5. 如何启用 ElasticSearch 中的 X-Pack 安全功能?

在配置文件中设置:

xpack.security.enabled: true