编辑配置文件后,t2.micro elasticsearch7.3 无法正常工作

编辑配置文件后,t2.micro elasticsearch7.3 无法正常工作
elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendo
   Active: failed (Result: exit-code) since Tue 2019-08-27 02:13:03 UTC; 3min 47
     Docs: http://www.elastic.co
  Process: 13227 ExecStart=/usr/share/elasticsearch/bin/elasticsearch -p ${PID_D
 Main PID: 13227 (code=exited, status=1/FAILURE)

Aug 27 02:12:39 ip-172-31-27-238 systemd[1]: Started Elasticsearch.
Aug 27 02:12:40 ip-172-31-27-238 elasticsearch[13227]: OpenJDK 64-Bit Server VM 
Aug 27 02:13:03 ip-172-31-27-238 systemd[1]: elasticsearch.service: Main process[1]: elasticsearch.service: Main process exited, code=exited, status=1/FAILURE exited, code=exited, status=1/FAILURE
Aug 27 02:13:03 ip-172-31-27-238 systemd[1]: elasticsearch.service: Failed with[1]: elasticsearch.service: Failed with result 'exit-code'.result 'exit-code'.

我已经在我的 EC2 ubuntu 18.04 服务器上安装了 elasticsearch 7.3。我正尝试从另一台服务器访问它。在我对 elasticsearch.yml 进行一些更改之前,它运行良好。我所做的更改如下。

# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: my elastic ip
#
# Set a custom port for HTTP:
#
http.port: 9200
#
# For more information, consult the network module documentation.

由于我使用的是 t2.micro,因此我已将 JVM 堆最小值和最大值调整为 512m。我的参考:https://dev.to/dance2die/elasticsearch-installation-issue-on-a-free-tier-t2micro-aws-ec2-instance-1o3a) 当我在更改 network.host 之前 curl localhost:9200 时,一切正常。重新启动 elasticsearch 似乎不起作用。我需要帮助,谢谢。

答案1

日志中可能有更好的信息,但根据您描述的更改,我相信无论如何都可以识别问题:

您说您已指定 AWS Elastic IP 作为要绑定的地址。
这里的问题是 AWS 中的公共 IPv4 地址(Elastic IP 或其他)在实际的 EC2 实例上不存在,而是由云位中的 NAT 处理这些公共地址。
这种可以说是古怪的设置本质上是一种处理全局 IPv4 地址匮乏的方法,同时仍为您自己的主机(在该 VPC 中)提供一个可用的隔离网络段。

您可能希望在配置中指定该 EC2 实例中实际存在的相关地址。(可能使用特殊值为了方便。)

当您可以从其他主机进行连接时,请记住牢记访问控制。

答案2

这是 AWS 文档上的官方 ES。https://www.elastic.co/blog/running-elasticsearch-on-aws

日志可以为您提供更多详细信息,我怀疑的是:

  1. 内存问题。
  2. 网络映射。
  3. 检查是否某些东西已在使用资源。

还有很多。

答案3

我在这里找到了答案。 https://stackoverflow.com/a/44240227/11981403 我猜设置 network.host 不足以进行远程访问。我不得不添加更多代码,如下所示。

transport.host: localhost 
transport.tcp.port: 9300 
http.port: 9200
network.host: 0.0.0.0

相关内容