DataStax Opscenter 에이전트가 연결할 수 없습니다. "cassandra.yaml 구성 파일을 찾을 수 없습니다."

DataStax Opscenter 에이전트가 연결할 수 없습니다. "cassandra.yaml 구성 파일을 찾을 수 없습니다."

Windows Server 2012 R2 Datacenter 시스템에 Datastax Community Edition v2.0.3을 설치했습니다. 바닐라 설치 후 에이전트 시작에 실패했기 때문에 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.logOpsCenter에서는 여전히 "에이전트 1개 중 0개 연결됨"이라고 표시됩니다. 그러나 이제 대시보드에는 데이터가 그래프로 표시됩니다. 스키마에 키스페이스를 추가할 수도 있지만 생성한 후에는 표시되지 않습니다. 그러나 를 사용하여 액세스할 수 있습니다 CLQSH. 분명히 cassandra.yaml서로 다른 두 장소에 있는 것도 이상적이지 않습니다.

답변1

cassandra.yaml의 위치는 cassandra_conf: "C:\Program Files\DataStax Community\apache-cassandra\bin\conf\cassandra.yaml"address.yaml에 설정하고 필요한 경우 적절한 경로로 대체할 수 있습니다. 에이전트 서비스를 다시 시작해야 합니다.

하지만 OpsCenter에는 여전히 "에이전트 1명 중 0명이 연결되었습니다"라고 표시됩니다.

중앙 opscenterd 프로세스에 연결하는 데 오류가 있는지 Agent.log를 확인하겠습니다. 데이터(그래프)를 모아서 저장하고 있다는 것은 어느 순간 연결이 가능했다는 뜻이다.

opscenterd와 에이전트 간의 버전 불일치일 수도 있지만 이는 둘 중 하나를 독립적으로 업그레이드한 경우에만 발생합니다. 버전 불일치는 UI에 연결되지 않은 것으로 나타납니다.

스키마에 키스페이스를 추가할 수도 있지만 생성한 후에는 표시되지 않습니다.

OpsCenter에 키스페이스가 표시되는 데 몇 분 정도 걸릴 수 있습니다. UI를 새로 고친 후에도 여전히 표시되지 않으면 어떻게 생성했는지 구체적으로 공유해 주실 수 있나요?

답변2

나는 동등한 도움을 받아 문제를 해결했습니다.그래서 질문.

conf_location파일 에 설정할 때 따옴표를 사용했는데 local.conf따옴표를 제거하면 문제가 해결되었습니다.

답변3

DataStax Community Edition v1.2.15를 설치하는 동안 Windows 7 x64에서도 동일한 문제가 발생했습니다. 작동하게 한 다음 백업 및 롤백 후 Beyond Compare를 사용하여 실제로 이 문제를 해결한 변경 사항이 무엇인지 정확히 확인했습니다. Rik의 정답에는 약간의 모호함이 있습니다.동등한 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"이 표시되었습니다.

관련 정보