Dashboard shows 'No nodes running!'


#1

Having set up Tyk Gateway for the first time (deploying using Docker containers onto Mesosphere DC/OS) and configured a Redis master/slave setup for the Gateway + Dashboard to use, I can login to the Dashboard after running the bootstrap shell script to create the initial admin user, but the ‘Nodes and Licenses’ section shows ‘No nodes running’

From my reading, this often happens when Redis is not available from either the Gateway or the Dashboard, but both seem to be the case here - e.g. here’s the whole list of keys from the Redis:

10.102.3.40:6380> keys *
 1) "apikey-09dc8033"
 2) "apikey-8636560f"
 3) "tyk-admin-api-f20b42d46ffe446e647d3f9aeb5b1804"
 4) "host-checker:PollerActiveInstanceID"
 5) "apikey-1f130c5d"
 6) "apikey-f69ccd6e"
 7) "tyk-admin-api-16087a42d45448066722ce649c27e2a2"
 8) "tyk-admin-api-4b24e055-30b1-462a-7033-8e0ebe2da0f3"
 9) "apikey-852fbde7"
10) "apikey-71e1f4f8"

Does that look OK? What else should I be looking at?

There is no Nginx here - the containers are hosting the HTTP directly.

Cheers,
Gavin.


#2

Hi, are you running both gateway and dashboard in the same host?

How did you run the bootstrap script?


#3

Hullo :slight_smile:

Nope - everything is running across the Mesos cluster manager. Almost everything is working now - e.g. I can see the Pump moving Redis records to both ElasticSearch and MongoDB.

The Dashboard is still elusive. Do I need to tell the Tyk Gateway that the Dashboard exists in order to ‘register’ with it? I thought it was enough for both the Gateway and Dashboard to use the same Redis instance (i.e. discovery by proxy)

If I want to deploy API’s using .json files, can I still use the Dashboard to manage users / permissions / quotas?

The bootstrap was run against the public AWS ELB hostname of the Dashboard, and that came back with the default user/pass test123 which worked fine.

Gavin.


#4

I noticed that ‘node_secret’ was not set on the Tyk Gateway node, so I added it, rebuilt and then saw the following network traffic… the Gateway is still failing to register…

..H>..5lGET /register/node HTTP/1.1
Host: tyk-dashboard.marathon.l4lb.thisdcos.directory
User-Agent: Go-http-client/1.1
Authorization: 352d20xxxxxxxxxxxxxxxxxx44b7
Accept-Encoding: gzip


15:57:38.476821 IP 172.17.0.3.41532 > 10.102.3.40.6380: Flags [P.], seq 4063:4261, ack 655, win 229, options [nop,nop,TS val 365840629 ecr 361575606], length 198
[email protected]@.1$....
f.(.<..-....W.............
..H...4.*1
$5
MULTI
*4
$13
ZRANGEBYSCORE
$25
tyk-nodeid-prefixnode-ids
$4
-inf
$10
1472572628
*4
$16
ZREMRANGEBYSCORE
$25
tyk-nodeid-prefixnode-ids
$4
-inf
$10
1472572628
*1
$4
EXEC

15:57:38.477155 IP 10.102.3.40.6380 > 172.17.0.3.41532: Flags [P.], seq 655:690, ack 4261, win 369, options [nop,nop,TS val 361580607 ecr 365840629], length 35
[email protected]?.V.
f.(.......<.W..-......qj......
..H?..H.+OK
+QUEUED
+QUEUED
*2
*0
:0

15:57:38.477175 IP 172.17.0.3.41532 > 10.102.3.40.6380: Flags [.], ack 690, win 229, options [nop,nop,TS val 365840629 ecr 361580607], length 0
[email protected]@.1.....
f.(.<..-....W.............
..H...H?
15:57:38.477308 IP 172.17.0.3.3000 > 10.102.3.40.40562: Flags [P.], seq 3943:4162, ack 3592, win 386, options [nop,nop,TS val 365840629 ecr 361580606], length 219
[email protected]@..`....
f.(...rk	O_...0...........
..H...H>HTTP/1.1 404 Not Found
Content-Type: text/plain; charset=utf-8
X-Content-Type-Options: nosniff
Date: Tue, 30 Aug 2016 15:57:38 GMT
Content-Length: 62

{"Status":"Error","Message":"No nodes available","Meta":null}

There is a valid 1-node License on the Dashboard and the node_secret on the Gateway matches the ‘shared_node_secret’ on the Dashboard conf :confused:

Can you suggest what else I can look at?

Cheers,
Gavin.


#5

Hi Gavin,

If you ran the dashboard bootstrap against the public hostname and set a hostname for the dashboard, then it will have bound to that and the gateway will need to use that hostname to access the gateway.

Can you share your tyk_analytics.conf? Specifically the bit about the dashboard hostname.

M.