AWS中的MarkLogic托管群集的问题

时间:2018-01-16 06:51:32

标签: amazon-web-services amazon-ec2 marklogic marklogic-9

我使用Cloud Formation模板在AWS中创建3节点集群。 我在私有子网中使用EC2实例,在公有子网中使用' AssociatePublicIpAddress'配置已启用。配置安全组以允许ELB和ELB之间的必要通信。 EC2实例。在初始创建堆栈时,EC2实例能够加入群集并正常工作,但是当我停止EC2实例时以及稍后当我再次启动它时,节点不会加入群集。任何解决问题的方向都值得赞赏。

[更新]:以下是其他信息

ELB类型:AWS :: ElasticLoadBalancing :: LoadBalancer,方案为"面向互联网"

ASG:是的,使用ASG,MinSize = 1,MaxSize = 3,DesiredCapacity = 3

HealthCheck类型:尝试过ELB& EC2设定为ASG级别。

HealthCheck设置:在下面找到HealthCheck设置的详细信息。

 "HealthCheck": {
          "Target": "HTTP:7997/",
          "HealthyThreshold": "2",
          "UnhealthyThreshold": "10",
          "Interval": "60",
          "Timeout": "30"
        }

1 个答案:

答案 0 :(得分:0)

如果EC2实例位于私有子网中,则#p; - 它们可能无法连接到托管集群运行的所有必需AWS服务端点。 由于他们在第一次启动时加入,这意味着他们可以与DynamoDB实例通信。由于他们在停止/开始后没有加入很多事情可能是错的。 如果使用样本模板,行为就没有意义 - 如果你"停止"一个EC2实例应该终止然后由ASG重新启动。 如果没有发生这种情况,则无法正确配置与ML无关的内容。 几种调试方法。

1)暂时使用公共IP地址重新制作群集,但没有其他更改,看看是否能解决问题。 - >如果是这样,那么与AWS服务的连接可能是一个问题,您可能需要创建NAT实例或VPN端点。

2)确定停止实例的原因不会触发ASG终止它。 (为ASG启用云监视日志并查看其消息)

3)创建SNS主题,通过电子邮件或其他方法订阅它,并将SNS主题ARN提供给指定参数中的CF脚本。 这里有大量的细节,很难用其他方法找到。

4)查看所有EC2实例上的日志文件,包括系统日志(/ var / log / *)

5)检查DynamoDB表,看它是否在实例状态发生变化时进行更新。

6)检查在初始安装时创建的cron作业的行为 - 它应该轮询集群中所有节点的EC2状态并更新DynamoDB。