
Problem
Ich kann OpsCenter nicht dazu bringen, eine Verbindung zu datastax-agent herzustellen. Es scheint, dass datastax-agent startet und versucht, eine Verbindung zu Cassandra herzustellen. Dies schlägt fehl, weil es die korrekten Anmeldeinformationen nicht kennt. Außerdem startet es den Jetty-Server nicht, um die Anmeldeinformationen von opscenter zu erhalten. Es versucht es also immer wieder, stellt aber nie eine Verbindung her. Wenn Cassandra alle Verbindungen zulässt (keine Authentifizierung), funktioniert mein Setup einwandfrei.
startup.log
sowie agent.log
beide Shows wiederholt:
FEHLER [main] 03.03.2015 21:19:43,106 Verbindung zu Cassandra nicht möglich, erneuter Versuch com.datastax.driver.core.exceptions.AuthenticationException: Authentifizierungsfehler auf Host /127.0.0.1:9042: Host /127.0.0.1:9042 erfordert Authentifizierung, aber kein Authentifikator in der Clusterkonfiguration gefunden
Aufstellen
ich installiertedatatax-agent(5.1) unter Ubuntu 14.04.LTS vom offiziellen http://debian.datastax.com/community stable main
auf einer EC2-Instanz. Meineadresse.ymlsieht aus wie das:
stomp_interface: ÖFFENTLICHE_IP_DES_OPSCENTER_NODE
lokale_schnittstelle: ÖFFENTLICHE_IP_DES_NODE
agent_rpc_interface: PRIVATE_IP_DES_NODE
agent_rpc_broadcast_address: ÖFFENTLICHE_IP_DES_NODE
Ich habe auch versucht, hinzuzufügen cassandra_install_location: /opt/cassandra
, aber es scheint nicht zu helfen. Cassandra (2.1) wird über Tarball installiert und läuft als Benutzer ubuntu
, Datastax-Agent läuft auch als ubuntu
.
Frage
Was fehlt mir, damit Datastax-Agent und Opscenter kommunizieren können, wenn Cassandra eine Authentifizierung erfordert?
Änderungen:
Der startup.log
Nachstart:
log4j:WARN No appenders could be found for logger (com.datastax.driver.core.SystemProperties).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
INFO [main] 2015-03-10 11:35:50,361 Loading conf files: /var/lib/datastax-agent/conf/address.yaml
INFO [main] 2015-03-10 11:35:50,412 Java vendor/version: Java HotSpot(TM) 64-Bit Server VM/1.7.0_76
INFO [main] 2015-03-10 11:35:50,412 DataStax Agent version: 5.1.0
INFO [main] 2015-03-10 11:35:50,490 Default config values: { ... }
INFO [main] 2015-03-10 11:35:50,685 Waiting for the config from OpsCenter
INFO [main] 2015-03-10 11:35:50,686 Using XX.XX.XXX.XXX as the cassandra broadcast address
INFO [main] 2015-03-10 11:35:50,686 New JMX connection (127.0.0.1:7199)
INFO [main] 2015-03-10 11:35:50,889 cassandra RPC address is nil
ERROR [main] 2015-03-10 11:35:51,048 Can't connect to Cassandra, retrying
com.datastax.driver.core.exceptions.AuthenticationException: Authentication error on host /127.0.0.1:9042: Host /127.0.0.1:9042 requires authentication, but no authenticator found in Cluster configuration
Antwort1
Nicolas checkt ausdiese Dokumentation. Wenn Cassandra auf interne Authentifizierung eingestellt ist, werden der Benutzername und das Passwort von Cassandra in der Clusterkonfigurationsdatei für Opscenter auf dem Opscenterd-Server festgelegt. Die Datei heißt .conf
[cassandra] username
The thrift username to Cassandra if thrift authentication is enabled.
[cassandra] password
The thrift password to Cassandra if thrift authentication is enabled.
Wenn dies richtig eingestellt ist und Ihre Agenten immer noch keine Verbindung herstellen können, sollten Sie auch überprüfen, ob die verschiedenen in Ihrer Datei address.yaml festgelegten IP-Adressen für Ihre Installation korrekt sind.
Insbesondere: Kann der Cassandra-Knoten den Opscenterd-Server über die öffentliche Schnittstelle erreichen? Überprüfen Sie, ob die IP-Adresse der lokalen Schnittstelle mit der IP für den Knoten übereinstimmt, die in der Statusausgabe von Nodetool angezeigt wird. Überprüfen Sie, ob der Opscenterd-Server den Agenten auf dem Knoten über die IP-Broadcast-Adresse des Agenten RPC erreichen kann.
Antwort2
Sie können versuchen, die Anmeldeinformationen manuell in Ihrer address.yaml
Konfigurationsdatei zu konfigurieren.
cassandra_user: <username>
cassandra_pass: <password>
Sehen Sie sich dieDatastax-Agent-Konfigurationund dasUpgrade-Anleitung auf 5.1, da sich einige Parameter geändert haben.
Antwort3
Die Antwort von Clement hat bei mir funktioniert. Ich verwende 5.1 unter Solaris 11. (Da unter Solaris keine Paketinstallation bereitgestellt wird, ist eine manuelle Tar-Installation und ein manueller Start von Cassandra, dem Agenten und dem Opscenter erforderlich. Beachten Sie auch, dass das Opscenter-Skript optimiert werden musste, da es entschied, dass es „epoll“ als Reaktor verwenden könnte, was nicht unterstützt wird. Das Erzwingen der Verwendung von „select“ hat funktioniert.)