Comment Se connecter à Cassandra à distance en utilisant DevCenter
j'ai configuré le DataStax Cassandra Sandbox sur Azure en utilisant leur image. J'ai pu exécuter OpsCenter localement sur le serveur sans aucun problème. L'installation d'Ubuntu dont je suis très nouveau pour.
Par ce post Apache Cassandra accès à distance , je devrais être en mesure de régler mon rpc_address à 0.0.0.0 afin de permettre l'accès à ma base de données . Cependant, il est dit incapable de se connecter lors d'une tentative de connexion à partir de DevCenter sur mon local Windows 8 PC.
Voici mes paramètres:
l'adresse de l'hôte de contact est L'adresse ip virtuelle affichée en Azure pour ma VM. Le port est le même que celui de la cassandra.fichier de configuration yaml. Je n'ai configuré aucune autorisation et d'après ce que j'ai lu, je devrais pouvoir me connecter en utilisant .NET ou les outils de gestion, mais ni l'un ni l'autre ne fonctionne.
j'ai aussi vérifié si les ports sont ouverts ce qu'ils sont autant que je peux dire:
Je sais que ce serait 9160 ou 9042.
2 réponses
merci à tous ceux qui m'ont aidé. En fin de compte, le problème était que lors de la mise en place d'une VM Azure, L'IP virtuelle qui est assignée est pour le service cloud lui-même et non pour la machine virtuelle. Par conséquent, même s'il semble que les ports appropriés sont exposés vous n'êtes pas en mesure d'y accéder à partir d'un ordinateur externe.
plus informations à ce sujet ici (mais lire mes instructions ci-dessous d'abord car c'est beaucoup plus facile à faire dans la Console de Gestion d'Azur) .
vous remarquerez lors de la configuration de votre machine virtuelle Qu'Azure crée automatiquement un endpoint pour votre connexion SSH tel que 55xxx. Vous ne pourrez pas vous connecter au port configuré de 22 comme indiqué sur la boîte elle-même, mais vous devrez utiliser le port endpoint de 55xxx, etc.
c'est important à noter parce que la même chose va pour la Cassandra ports 8888 (OpsCenter), et 9042 (native transport).
donc vous pouvez soit:
- distant.
- créer une adresse IP publique qui pointe vers la VM elle-même plutôt que le service cloud.
Je n'ai pas pu obtenir les paramètres pour travailler au début, mais plus tard les a fait travailler . Ce fil m' configuration d'une adresse ip publique. Je l'ai fait à la dure en utilisant L'Azure Powershell. C'était douloureux et beaucoup de recherche. mais, après avoir passé le temps de le faire, j'ai réalisé que cela pouvait maintenant être fait dans la console de prévisualisation. Allez simplement dans les paramètres D'adresses IP de votre VM et activez l'option "adresse IP de L'Instance".
alors vous devriez être en mesure de vous connecter à distance à OpsCenter en utilisant l'adresse ip qui est retournée après la configuration est terminée via votre navigateur: (la nouvelle adresse IP):8888
...puis dans DevCenter en utilisant la nouvelle adresse ip et le port 9042.
si vous avez utilisé endpoints au lieu de configurer une ip publique statique (ce que vous voudrez faire pour des raisons de sécurité et activer le contrôle d'accès de l'utilisateur via des filtres ip) , alors vous voudrez utiliser ces nouveaux numéros de port créés à la place avec votre adresse ip virtuelle.
d'autre part... vous aurez besoin de mettez rpc_address à 0.0.0.0 dans le cassandra.fichier yaml.
à Présent, je sais qu'il serait soit 9160 ou 9042.
comme vous pouvez le voir sur votre capture d'écran des paramètres de connexion, DevCenter se connecte à Cassandra via le" protocole natif."Ceci se réfère au protocole binaire natif qui (sauf si vous avez modifié native_transport_port
dans votre cassandra.yaml
) s'exécute sur le port 9042. Thrift se connecte via le port 9160, et je ne crois pas que vous puissiez configurer DevCenter pour vous connecter avec Thrift.
Ensuite, vérifiez les valeurs de listen_address
et broadcast_address
dans votre cassandra.yaml
. Au moins un de ceux-ci doit être défini avec votre nom d'hôte ou votre adresse IP externe.
Définissez votre" port de protocole natif " à 9042. Essayez ensuite de vous connecter à votre adresse IP externe.
Modifier :
Vérifiez votre fichier system.log
et cherchez une ligne comme celle-ci:
Starting listening for CQL clients on localhost/127.0.0.1:9042...
Selon l'adresse que vous y voyez est l'adresse à laquelle vous devez vous connecter via DevCenter ou un client. Si cette ligne affiche 127.0.0.1, vous avez du travail à faire.
aussi, voici des liens à une question similaire que j'ai aidé dans le passé: Comment puis-je me connecter à cassandra locale db
est-ce que l'un de vous a dû céder une IP publique à votre vm?
Notre (basée sur le cloud) Les serveurs Cassandra (In prod) ont des adresses IP internes et externes. Je vais devoir revérifier demain, mais notre Cassandra 2.0 configs avait listen_address
réglé sur notre IP externe (publique) et rpc_address
soit vide ou réglé sur le même.
voici quelques docs qui pourraient vous aider à configurer ceci:
- DataStax Cassandre 2.0 de la documentation sur la configuration de le
cassandra.yaml
. - lancer Cassandra avec Linux sur Azure et y accéder à partir de Node.js by Mike Wasson
- Montrer Cassandra sur Azure par Luc Tillman
- Exécution de Cassandra sur Azure - l'étape-par-étape, gotcha par gotcha par kurtroy