Hi,

I've got a working Ganglia 3.1.7 deployment, but have run into some issues with 
configuring the front-end.  To paint a picture of my fairly complex setup, I 
have a top-level gmetad/apache instance with ldap authentication (top-level 
view) which uses several independent gmetad instances (production site tier) as 
its data_source.  Those gmetad instances also talk to another subset of gmetad 
instances (application tier), which talk to another set of gmetad instances 
(cluster tier), which talk to another set of gmetad instances (co-location 
tier), which finally talk to various gmond aggregators (host tier) that receive 
data (unicast) from hosts.  Everything is working perfectly in a private 
network, using internal ip addresses for the http authority value in the 
gmetad.conf files.

My problems started when I decided to take this one-step further and make it 
accessible from outside of the private network.  I set up a standard tcp http 
vip on an F5 BigIP that points to the top-level apache server.  I am also 
handling ssl certificates for this vip on the BigIP.  I am able to access the 
Ganglia server's index.php through the vip.  I also had to go to all of my 
gmetad.conf files and modify the http authority values to use the vip name 
rather than the internal ip addresses.  However, I noticed when I select a grid 
from the "Choose a Source" drop-down, I am presented with the "Cannot find any 
metrics for selected cluster...Check ganglia XML tree."  My first thought was 
that Ganglia assumed I was attempting to access a cluster rather than a grid, 
which is incorrect.  The web server logs showed this error - "PHP Notice:  
Undefined index: XXX in /usr/share/ganglia/meta_view.php on line 71."

I then went to compare the url I was taken to (where I received the error) with 
the url I get when everything worked before (with the internal network) and 
noticed a significant difference.  Using the drop-down internally gave me 
"http://ganglia.internal.com/ganglia/gridname/?gw=fwd&gs=Techops%20Ganglia%40http%3A%2F%2Fganglia.internal.com%2Fganglia,";
 while using the drop-down through the vip gave me 
"https://ganglia.external.com/ganglia/gridname/?r=hour&s=descending&c=https%3A%2F%2Fganglia.external.com%2Fganglia%2Fgridname%2Fother_grid_name%2F.";
  A huge difference in the arguments that are passed to the server.  In the 
working internal example, the url knows that I am attempting to access a grid.  
In the non-working external example, the url thinks that I am trying to access 
a cluster.

I am trying to understand why fronting the web server with a physical 
load-balancer and changing the http authority can have such damaging effects.  
I tried looking at the php code a little and can only assume that Ganglia is 
comparing some value it's receiving from the web server connection (via 
headers, etc) and is getting the $context confused.  Has anyone seen this 
before or have any insight on how to debug?  More specific config details can 
be provided.

Thanks,
Scott

------------------------------------------------------------------------------
Beautiful is writing same markup. Internet Explorer 9 supports
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 & L3.
Spend less time writing and  rewriting code and more time creating great
experiences on the web. Be a part of the beta today.
http://p.sf.net/sfu/beautyoftheweb
_______________________________________________
Ganglia-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ganglia-general

Reply via email to