【问题标题】:Issues with MarkLogic Managed Cluster in AWSAWS 中 MarkLogic 托管集群的问题
【发布时间】:2018-01-16 06:51:31
【问题描述】:

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

[更新]:这里是附加信息

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

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

HealthCheck 类型:尝试了设置在 ASG 级别的 ELB 和 EC2。

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

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

【问题讨论】:

  • 包括有关 ELB 类型和健康检查的信息。你在用 ASG 吗?您要等待 ELB 检测到 EC2 实例运行状况多长时间?

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


【解决方案1】:

如果 EC2 实例位于“私有子网”中 - 它们可能无法连接到托管集群运行所需的所有 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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 2022-08-23
    • 2020-08-24
    相关资源
    最近更新 更多