Search code examples
amazon-web-servicescassandracommunicationssh-tunnelopscenter

Accessing devops interface outside Cassandra EC2 cluster


I have just setup a four nodes Cassandra 3.4 cluster running centOS 7 on AWS. I was able to configure it and get all the nodes together. Now I would like to perform some tests, monitoring the cluster behavior using the devops center which I installed on one machine.

I thought using ssh-tunneling to access it from my computer:

ssh -i Amazon-EC2-Ami.pem -L 9999:localhost:8888 centos@public_address

Using my browser, localhost:9999 gets correctly tunneled to the devops login page: http://localhost:8888/opscenter/login.html, but I got a ERR_CONNECTION_REFUSED

I tried accessing devops on that machine using a command line browser and it displays the login page. I really do not know what the issue could be. Any information is truly appreciated. This is the cassandra-yaml configuration file, in case it helps:

cluster_name: 'Cloak'
listen_address:
endpoint_snitch: GossipingPropertyFileSnitch
rpc_address: 
seed_provider:
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
  parameters:
  - seeds: "172.31.55.186,172.31.55.187"

EDIT Using the -v option launching the ssh tunneling I can confirm that the requests are correctly tunneled:

[centos@ip-172-31-55-186 ~]$ debug1: Connection to port 9999 
forwarding to localhost port 8888 requested.
debug1: channel 3: new [direct-tcpip]
debug1: Connection to port 9999 forwarding to localhost port 8888      
requested.
debug1: channel 4: new [direct-tcpip]
debug1: channel 3: free: direct-tcpip: listening port 9999 for    
localhost port 8888, connect from 127.0.0.1 port 43846 to 127.0.0.1     
port 9999, nchannels 5

Solution

  • Finally I managed to access it from my computer. I had to modify the configuration file for the operation center, located in /etc/opscenter/opscenterd.conf (only for package installation):

    [webserver]
    port = 8888
    interface = 127.0.0.1
    

    By default the webserver accepts requests only from the localhost. Probably it won't be the best option, but since the operation center allows to configure users, I set interface = 0.0.0.0, allowing any host to contact it.