Назад | Перейти на главную страницу

Агент DataStax Opscenter не может подключиться: «Не удалось найти файл конфигурации cassandra.yaml»

Я установил 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» без каких-либо подсказок или предупреждений.