
Я установил Datastax Community Edition v2.0.3 на машину Windows Server 2012 R2 Datacenter. После установки vanilla я не могу подключиться к базе данных с помощью OpsCenter, потому что агент не запустился: в верхней части страницы написано "0 из 1 подключенных агентов". Я могу подключиться к самой базе данных с помощью 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 по-прежнему говорит "0 из 1 подключенных агентов". Однако панель мониторинга теперь показывает данные в графиках. Я также могу добавить пространство ключей в схему, но оно не отображается после того, как я его создал. CLQSH
Однако оно доступно с помощью . Очевидно, что наличие cassandra.yaml
в двух разных местах тоже не является идеальным вариантом.
решение1
Расположение cassandra.yaml можно задать cassandra_conf: "C:\Program Files\DataStax Community\apache-cassandra\bin\conf\cassandra.yaml"
в address.yaml, заменив правильный путь, если необходимо. Вам нужно будет перезапустить службу агента.
но OpsCenter по-прежнему показывает «0 из 1 подключенных агентов».
Я бы проверил agent.log на наличие ошибок при подключении к центральному процессу opscenterd. Тот факт, что он собирает и хранит данные (графики), означает, что в какой-то момент он смог подключиться.
Это также может быть несоответствие версий между opscenterd и агентом, но это может произойти только если вы обновили один или другой независимо. Несоответствия версий отображаются как отсутствие соединений в пользовательском интерфейсе.
Я также могу добавить в схему пространство ключей, но оно не отображается после создания.
Может потребоваться около минуты, чтобы пространство клавиш появилось в OpsCenter. Если оно все еще не появляется после обновления пользовательского интерфейса, можете ли вы поделиться подробностями того, как вы его создали?
решение2
Я решил проблему с помощью моего эквивалентаТАКОЙ вопрос.
Я использовал кавычки при настройке conf_location
в local.conf
файле, удаление кавычек решило проблему.
решение3
У меня была та же проблема в Windows 7 x64 при установке DataStax Community Edition v1.2.15. Я заставил ее работать, а затем после резервного копирования и отката я использовал Beyond Compare, чтобы точно определить, какое изменение на самом деле исправило это. Есть некоторая двусмысленность в правильном ответе Рика и вэквивалентный вопрос SO, поэтому я даю более полный ответ.
В C:\Program Files\DataStax Community\opscenter\conf\clusters\local.conf содержимое по умолчанию ..
[cassandra]
seed_hosts = 127.0.0.1
.. вместо этого должно быть ..
[cassandra]
seed_hosts = 127.0.0.1
conf_location = C:\\Program Files\\DataStax Community\\apache-cassandra\\conf\\cassandra.yaml
Перезапустите службы, а затем в OpsCenter, если там все еще написано "0 из 1 агентов", нажмите на ссылку "Исправить сейчас". В моем случае, пока я не нажал на эту ссылку, она сама не обновилась и не показала "1 из 1" без каких-либо подсказок или предупреждений.