使用OpsCenter创建新Cassandra集群的随机故障

时间:2015-03-19 10:16:11

标签: datastax-enterprise datastax opscenter

OpsCenter版本:5.1.0和 DSE版本:4.6.0

直接使用OpsCenter创建全新的群集,会给我们以下错误。它随机使用相同的设置,但95%的时间失败并出现相同的错误。 Opscenter在其自己的盒子上运行,但与群集实例共享相同的安全组。为了更好地衡量,我已经打开了所有IP的所有TCP端口。以下是opscenterd.log中错误的堆栈跟踪:

* 2015-03-19 10:06:12 + 0000 [] INFO:开始配置流程 2015-03-19 10:06:12 + 0000 []信息:启动集群配置的安装阶段

2015-03-19 10:06:13 + 0000 []警告:HTTP请求http://10.x.x.x:61621/alive?失败:连接被另一方拒绝:111:连接被拒绝。

2015-03-19 10:06:13 + 0000 [] INFO:开始安装OpsCenter代理到54.x.x.x

2015-03-19 10:06:26 + 0000 []警告:HTTP请求http://10.x.x.x:61621/alive?失败:连接被另一方拒绝:111:连接被拒绝。

2015-03-19 10:06:31 + 0000 [] INFO:ip 10.x.x.x的代理是版本无 2015-03-19 10:06:31 + 0000 []信息:ip 10.x.x.x的代理是版本u' 5.1.0' 2015-03-19 10:07:23 + 0000 [] INFO:在节点10.x.x.x上成功安装了agent和dse

2015-03-19 10:07:23 + 0000 []信息:开始"停止"集群配置阶段

2015-03-19 10:07:25 + 0000 []警告:标记请求' 10.x.x.x:/ ops / stop' (f6708fa2-b45f-42b4-b992-90a82b460ac7)失败:/ usr / sbin / service dse停止失败

    exit status: 1
    stdout:
    log_daemon_msg is a shell function
    Cassandra 2.0 and later require Java 7 or later.

2015-03-19 10:07:25 + 0000 []错误:无法停止节点10.x.x.x:/ usr / sbin / service dse停止失败

    exit status: 1
    stdout:
    log_daemon_msg is a shell function
    Cassandra 2.0 and later require Java 7 or later.

2015-03-19 10:07:25 + 0000 []警告:标记请求'停止阶段' (0b6fcb6b-96ba-404e-a484-b4b6b167b309)失败:无法停止节点10.x.x.x:/ usr / sbin / service dse stop failed

    exit status: 1
    stdout:
    log_daemon_msg is a shell function
    Cassandra 2.0 and later require Java 7 or later.

2015-03-19 10:07:25 + 0000 []错误:停止阶段失败:无法停止节点10.x.x.x:/ usr / sbin / service dse停止失败

    exit status: 1
    stdout:
    log_daemon_msg is a shell function
    Cassandra 2.0 and later require Java 7 or later.

2015-03-19 10:07:25 + 0000 []警告:标记请求'提供' (daf1c15d-92e3-40b0-83ca-34d548ea835b)失败:停止阶段失败:无法停止节点10.x.x.x:/ usr / sbin / service dse停止失败

    exit status: 1
    stdout:
    log_daemon_msg is a shell function
    Cassandra 2.0 and later require Java 7 or later.

2015-03-19 10:07:25 + 0000 []错误: 2015-03-19 10:07:25 + 0000 []错误:群集配置失败:异常:停止阶段失败:无法停止节点10.x.x.x:/ usr / sbin / service dse停止失败

    exit status: 1
    stdout:
    log_daemon_msg is a shell function
    Cassandra 2.0 and later require Java 7 or later.

2015-03-19 10:07:25 + 0000 []错误:无法配置群集:群集配置失败:异常:停止阶段失败:无法停止节点10.xxx:/ usr / sbin / service dse stop失败

    exit status: 1
    stdout:
    log_daemon_msg is a shell function
    Cassandra 2.0 and later require Java 7 or later.

2015-03-19 10:07:25 + 0000 []警告:标记请求28c021fd-d21a-4fed-bb5c-a4fe17d362e0失败:群集配置失败:异常:停止阶段失败:无法停止节点10.xxx :/ usr / sbin / service dse stop failed

    exit status: 1
    stdout:
    log_daemon_msg is a shell function
    Cassandra 2.0 and later require Java 7 or later.

2015-03-19 10:07:41 + 0000 []警告:无法为具有IP的节点找到匹配的群集[u' fe80:0:0:0:20​​00:aff:feeb:31c7% 2',u' 10.xxx',u' 0:0:0:0:0:0:0:1%1',u' 127.0.0.1& #39];消息是[u' 5.1.0',u' / 1947480708 / conf']。这通常表示OpsCenter代理仍在已退役的旧节点上运行,或者是OpsCenter不再监视的群集的一部分。

感谢任何帮助! 提前致谢 戒日

2 个答案:

答案 0 :(得分:6)

OpCenter开发人员。我让OpsCenter配置功能变焦(或者偶尔看到你正在看到的)。悲伤和羞耻,我必须告诉你,你正在犯一个虫子。

OpsCenter配置(https://github.com/riptano/ComboAMI/tree/2.4)使用的Datastax AMI版本2.4在启动时通过启动脚本完成了相当多的工作。其中一项任务是设置一些用于验证包的gpg存储库密钥。间歇性地说,该过程可能会失败,破坏软件包安装并导致您看到的一系列错误。这种故障是间歇性的,最近频率大大增加。如果你检查/home/ubuntu/datastax-ami/ami.log,你应该看到gpg密钥失败,它们开始了故障链的其余部分。

不幸的是,这个错误远远落后于技术堆栈,很难手动解决。如果您只需要配置一个群集,则可以重试,直到您获得良好的运行。否则,最好的方法是手动启动实例并使用本地配置将dse / dsc部署到其私有IP地址:

  • 使用ami-ada2b6c4启动实例(假设您在us-east-1中)
    • 确保将实例添加到OpsCenterSecurity组。
    • 确保您拥有您使用的密钥对的私有一半(在本地配置期间您将需要它)
    • 在实例数据页面上,点击高级下拉菜单并将以下用户数据添加为文本" - raidonly --java7"
  • 针对private-ip
  • 执行本地配置运行

不是一个超级简单的解决方法。我希望你这次使用OpsCenter的经历更加精彩。好消息是我对这个bug有所了解,它将在即将发布的版本中修复。

编辑:不再需要手动删除/etc/security/limits.d/cassandra.conf

答案 1 :(得分:0)

如果它只是抱怨java那么安装java 7最好是datastax想要oracle jdk和jre。您可能已经在节点上安装了java 7和另一个版本,但java 7不是默认版本。改变这一点:

sudo update-java-alternatives -s java-7-oracle

这是一个可以脚本与ssh一起运行的命令,因此您无需登录每个节点