
Ich habe Datastax Community Edition v2.0.3 auf einem Windows Server 2012 R2 Datacenter-Rechner installiert. Nach einer Standardinstallation kann ich mit OpsCenter keine Verbindung zur Datenbank herstellen, da der Agent nicht gestartet werden konnte: Oben auf der Seite steht „0 von 1 Agenten verbunden“. Ich kann mit CQLSH eine Verbindung zur Datenbank selbst herstellen. Dieses Problem tritt bei v2.0.2 nicht auf.
Meine datastax_opscenter_agent-stderr.log
Datei enthält Folgendes:
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)
Tatsächlich befindet sich eine cassandra.yaml
Datei im C:\Program Files\DataStax Community\apache-cassandra\conf
Verzeichnis, in dem sie sein soll. Die obige Meldung besagt C:\\Program Files\\DataStax Community\\apache-cassandra\\bin\\conf\\cassandra.yaml
jedoch, dass sie in gesucht hat (beachten Sie das \bin).
Das Festlegen der conf_location
Option opscenter\conf\clusters\local.conf
gemäß dem Vorschlag im Protokoll führt zum selben Fehler.
Die Windows-Firewall wurde dabei deaktiviert.
Bearbeiten
Ich habe ein wenig herumgebastelt und jetzt bekomme ich die gleiche Ausnahme im Protokoll, außer dass sich der Pfad, in dem gesucht wurde, cassanda.yaml
geändert hat von
„C:\Programme\DataStax Community\apache-cassandra\bin\conf\cassandra.yaml“
Zu
„C:\Programme\DataStax Community\utils\conf\cassandra.yaml“
Ich habe keine Ahnung, was ich getan habe, um das zu ändern.
Ich habe versucht, cassandra.yaml in das obige Verzeichnis zu kopieren. Dadurch wird die Ausnahme in behoben datastax_opscenter_agent-stderr.log
, aber OpsCenter sagt immer noch „0 von 1 Agenten verbunden“. Das Dashboard zeigt jetzt jedoch Daten in den Diagrammen an. Ich kann dem Schema auch einen Schlüsselraum hinzufügen, aber dieser wird nicht angezeigt, nachdem ich ihn erstellt habe. Er ist jedoch über zugänglich . Offensichtlich ist es auch nicht ideal, ihn an zwei verschiedenen Orten CLQSH
zu haben .cassandra.yaml
Antwort1
Den Speicherort von cassandra.yaml können Sie cassandra_conf: "C:\Program Files\DataStax Community\apache-cassandra\bin\conf\cassandra.yaml"
in address.yaml festlegen und bei Bedarf den richtigen Pfad ersetzen. Sie müssen den Agentendienst neu starten.
aber OpsCenter sagt immer noch „0 von 1 Agenten verbunden“.
Ich würde das agent.log auf Fehler bei der Verbindung zum zentralen opscenterd-Prozess überprüfen. Die Tatsache, dass es Daten (Grafiken) sammelt und speichert, bedeutet, dass es irgendwann eine Verbindung herstellen konnte.
Es kann auch eine Versionsinkongruenz zwischen opscenterd und dem Agenten geben, aber das würde nur passieren, wenn Sie das eine oder das andere unabhängig voneinander aktualisiert haben. Versionsinkongruenzen werden in der Benutzeroberfläche als Nichtverbindungen angezeigt.
Ich kann dem Schema auch einen Schlüsselraum hinzufügen, dieser wird jedoch nach der Erstellung nicht angezeigt.
Es kann ungefähr eine Minute dauern, bis der Schlüsselraum im OpsCenter angezeigt wird. Wenn er nach dem Aktualisieren der Benutzeroberfläche immer noch nicht angezeigt wird, können Sie uns dann konkret mitteilen, wie Sie ihn erstellt haben?
Antwort2
Ich habe das Problem mit Hilfe meines Kollegien gelöst.SO-Frage.
conf_location
Ich habe beim Festlegen in der Datei Anführungszeichen verwendet local.conf
. Das Entfernen der Anführungszeichen hat das Problem gelöst.
Antwort3
Ich hatte das gleiche Problem in Windows 7 x64 bei der Installation von DataStax Community Edition v1.2.15. Ich habe es zum Laufen gebracht und dann nach dem Backup und Rollback Beyond Compare verwendet, um genau zu ermitteln, welche Änderung das Problem tatsächlich behoben hat. Es gibt einige Unklarheiten in Riks ansonsten korrekter Antwort und in derentsprechende SO-Frage, daher gebe ich eine umfassendere Antwort.
In C:\Program Files\DataStax Community\opscenter\conf\clusters\local.conf befindet sich der Standardinhalt von …
[cassandra]
seed_hosts = 127.0.0.1
.. sollte stattdessen sein ..
[cassandra]
seed_hosts = 127.0.0.1
conf_location = C:\\Program Files\\DataStax Community\\apache-cassandra\\conf\\cassandra.yaml
Starten Sie die Dienste neu und klicken Sie dann im OpsCenter auf den Link „Jetzt beheben“, wenn dort immer noch „0 von 1 Agenten“ steht. In meinem Fall hat sich das Problem erst selbst aktualisiert, als ich auf diesen Link geklickt habe, und es wurde „1 von 1“ angezeigt, ohne dass ich dazu aufgefordert oder gewarnt wurde.