Я установил Datastax Community Edition v2.0.3 на компьютер с Windows Server 2012 R2 Datacenter. После обычной установки я не могу подключиться к базе данных с помощью 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
в двух разных местах тоже не идеален.
Решил проблему с помощью своего аналога ТАК вопрос.
Я использовал кавычки при установке conf_location
в local.conf
файл, удаление кавычек решило проблему.
Для расположения 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 может потребоваться около минуты. Если он по-прежнему не появляется после обновления пользовательского интерфейса, можете ли вы рассказать, как именно вы его создали?
У меня была такая же проблема в 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» без каких-либо подсказок или предупреждений.