Dgraph + Vultr Deploy Not Working

I love Dgraph so much! Thank you all on the front lines! :pray:

May I get some help deploying to a Vultr Cloud please?!

Terminal 1) I SSH in and run

curl https://get.dgraph.io -sSf | bash
dgraph
dgraph zero --my=localhost:5080

Terminal 2) SSH in another terminal and run
dgraph alpha --my=localhost:7080 --lru_mb=1024 --zero=localhost:5080

Terminal 3) Locally run
dgraph-ratel

Terminal 1 Output)
Connected: id:1 addr:"localhost:7080"

Vultr shows us IP information

The firewall I have for the server allows me to SSH in & I opened all the dgraph ports just cause I thought maybe it’d help

& when I’m in Ratel and try connecting to port 8080 all the /health endpoints fail

How may I get to a successful /health please?!

Thank you friends!

Are you able to see the endpoint youADRR:8080/health? It should be public in that case. Otherwise, you should do some king of proxying with your machine and the cloud.

you should see something like

1 Like

It will be helpful if you can provide a wireshark trace between Ratel and the Alpha on the machine that runs Ratel. This will help narrow it down.

Other things you can try:

  • A ping test to the Alpha Server IP
  • A telnet test to the Alpha Server IP:8080

I see that you have opened ports 5080, 7080, 8080, 9080 and 8000. But I am thinking it is some firewall / networking issue at this time but need data.

2 Likes

For quick troubleshooting:

  1. Works from localhost?
  2. System Firewall Blocking?
  3. Cloud FireWall Blocking?

1 localhost

ssh into the system, do sanity check:

curl localhost:8080/health

2 local system firewall

Likely this is turned off, but just sanity check. If you have two systems on same subnet, could you try to curl to the local IP address?

Check the distro, e.g.

lsb_release -a
cat /etc/os-release

If you have Ubuntu 18.04, make local firewall is inactive:

sudo ufw status  # should say inactive

3 Cloud Firewall

It looks like your cloud firewall config from the screenshot is configured to allow 8080 and 8000 on that system. If the above steps work out as expected, then we can try

curl <public_ip_address_of_vultr_instance>:8080/health 
1 Like

Thank you @MichelDiz @paras & @joaquin! I really appreciate the support of this mastermind group! I know we’ll find a solution!

I SSH’d in, ran dgraph zero + dgraph alpha & tried

curl localhost:8080/health
[
  {
    "instance":"alpha",
    "address":"localhost:7080",
    "status":"healthy",
    "group":"1",
    "version":"v20.03.1",
    "uptime":28
  }
]

Plus

cat /etc/os-release
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="8"

Wireshark!

While not SSH’d

curl vultr.server.ip.address:8080/health 
curl: (7) Failed to connect to vultr.server.ip.address port 8080: Connection refused

Chris - Thanks for your nice feedback. We’re thrilled that you like Dgraph. We look forward to working with you.

1 Like

Looking at the wireshark trace, it is clearly a networking issue. Your ICMP Pings are not going through to the ip-address.

Did you start dgraph alpha with the --my option. This is the option you need to provide to bind alpha to the ip:port.

I see this in your earlier comment. Replace this with the vultr-server-ip (not localhost).

1 Like

Thank you for your assistance @paras! & thank you for introducing me to Wireshark! Here are the combinations + Wireshark output I’ve done so far

dgraph zero --my=localhost:5080
dgraph alpha --my=vultr.server.ip.address:7080 --lru_mb=1024 --zero=localhost:5080

dgraph zero --my=vultr.server.ip.address:5080
dgraph alpha --my=vultr.server.ip.address:7080 --lru_mb=1024 --zero=vultr.server.ip.address:5080

dgraph zero --my=vultr.server.ip.address:5080
dgraph alpha --my=vultr.server.ip.address:7080 --lru_mb=1024 --zero=localhost:5080

Thank you.

From wireshark, it says “Communication Administratively Filtered”. Per RFC, This generally means an ACL, Firewall or Router on the path from client to server (alpha) is filtering the communication and sending this code

See

Things to do:
1 . You may want to check the Firewall, ACL settings on your client.
2. Maybe try a different client.
3. Take a tracepath/traceroute.

Hope this helps.

2 Likes

Thank you for all the suggestions @paras! After I ran into Firewall + ACL dead ends I switched over to AWS and got a successful /health on the first try! Idk why Vultr didn’t work for me but I appreciate your assistance, I learned a lot from you, thank you!

2 Likes

Congratulations!!! We are happy for your success.

2 Likes