我在 Windows Server 2012 R2 Datacenter 机器上安装了 Datastax Community Edition v2.0.3。安装 vanilla 后,我无法使用 OpsCenter 连接到数据库,因为代理无法启动:页面顶部显示“已连接 1 个代理中的 0 个”。我可以使用 CQLSH 连接到数据库本身。v2.0.2 不会出现此问题。
我的datastax_opscenter_agent-stderr.log
文件包含以下内容:
2013-12-05 16:16:54 Commons Daemon procrun stderr initialized
Exception in thread "Initialization" clojure.lang.ExceptionInfo: throw+: {:type :bad-permissions, :message "Unable to locate the cassandra.yaml configuration file. If your configuration file is not located with the Cassandra install, please set the 'conf_location' option in the Cassandra section of the OpsCenter cluster configuration file and restart opscenterd. Checked the following directories: [\"/etc/dse/cassandra/cassandra.yaml\" \"/etc/cassandra/conf/cassandra.yaml\" \"/etc/cassandra/cassandra.yaml\" \"C:\\\\Program Files\\\\DataStax Community\\\\apache-cassandra\\\\bin\\\\conf\\\\cassandra.yaml\"]"} {:object {:type :bad-permissions, :message "Unable to locate the cassandra.yaml configuration file. If your configuration file is not located with the Cassandra install, please set the 'conf_location' option in the Cassandra section of the OpsCenter cluster configuration file and restart opscenterd. Checked the following directories: [\"/etc/dse/cassandra/cassandra.yaml\" \"/etc/cassandra/conf/cassandra.yaml\" \"/etc/cassandra/cassandra.yaml\" \"C:\\\\Program Files\\\\DataStax Community\\\\apache-cassandra\\\\bin\\\\conf\\\\cassandra.yaml\"]"}, :environment {tar-location "C:\\Program Files\\DataStax Community\\apache-cassandra\\bin\\conf\\cassandra.yaml", conf nil, checked-files ["/etc/dse/cassandra/cassandra.yaml" "/etc/cassandra/conf/cassandra.yaml" "/etc/cassandra/cassandra.yaml" "C:\\Program Files\\DataStax Community\\apache-cassandra\\bin\\conf\\cassandra.yaml"]}}
at opsagent.util.cassandra_util$cassandra_conf_location.invoke(cassandra_util.clj:118)
at opsagent.util.cassandra_util$get_cassandra_conf.invoke(cassandra_util.clj:130)
at opsagent.opsagent$create_thrift_conf_vars.invoke(opsagent.clj:52)
at opsagent.opsagent$setup_thrift.invoke(opsagent.clj:138)
at opsagent.jmx$determine_ip.invoke(jmx.clj:333)
at opsagent.jmx$setup_jmx$fn__1309.invoke(jmx.clj:350)
at clojure.lang.AFn.run(AFn.java:24)
at java.lang.Thread.run(Unknown Source)
实际上目录中有一个cassandra.yaml
文件C:\Program Files\DataStax Community\apache-cassandra\conf
,它应该在哪里。上面的消息表明它查看了C:\\Program Files\\DataStax Community\\apache-cassandra\\bin\\conf\\cassandra.yaml
,但是(注意 \bin)。
根据日志的建议,在 中设置conf_location
选项会opscenter\conf\clusters\local.conf
导致相同的错误。
通过这一切,Windows 防火墙已被关闭。
编辑
我一直在修修补补,现在我在日志中得到了同样的异常,除了它一直在寻找的路径cassanda.yaml
已经从
'C:\Program Files\DataStax Community\apache-cassandra\bin\conf\cassandra.yaml'
至
'C:\Program Files\DataStax Community\utils\conf\cassandra.yaml'
我不知道我做了什么来改变这一点。
我试过复制cassandra.yaml
到上面的目录。这消除了 中的异常datastax_opscenter_agent-stderr.log
,但 OpsCenter 仍然显示“已连接 1 个代理中的 0 个”。但是,仪表板现在在图表中显示数据。我也可以向模式中添加一个键空间,但是在我创建它之后它不会显示出来。不过,它可以使用 访问CLQSH
。显然,cassandra.yaml
在两个不同的地方拥有也不理想。