声明:我的文章都是在实际工作中遇到并解决问题后撰写的,可能你早就一清二楚了,也可能对你没有任何帮助,喜欢就请顶一下,不喜也请勿喷。就像足球一样,不喜欢中国足球的就请不要关注,你可以去看乒乓球、羽毛球,甚至,冰壶!但不要去骂他们,毕竟还有很多人痴心地喜欢国足,我就是其中之一。
===正文===
环境: 4台CentOS机器,IP为192.168.1.197---192.168.1.200, 每台机器都装了Gmond.
192.168.1.200作为主节点,上面还装了Gmetad和Web Frontend。 Ganglia版本为3.3.1
遇到的问题:Ganglia安装完成后,在浏览器里查看服务器情况时,Node名只显示了一个localhost,正常情况下应该显示四台机器的IP。从Ganglia上画的图来看,这个localhost的内存容量是4台机器的总和,也就是说,数据正常发过来,但却合并了。
下图是我最后解决问题后截的图:
如果你没遇到过类似问题,说明你很幸福,如果遇到了,可能像我一样最开始很头疼,还以为Ganglia的配置不对。
产生问题原因:DNS反向解析出错,把4个不同IP地址都反向解析成了localhost。 可以使用nslookup命令来验证:nslookup 192.168.1.197。如果提示** server can't find 197.1.168.192.xxxxxx: NXDOMAIN 那就对了。但在我的Server上提示的却是 name = localhost,这就是不对的。
解决方案:修改nameserver的配置。vim /etc/resolv.conf,将nameserver修改成正确的DNS Server。这个正确的DNS Server你可以问问机房的管理员,或者索性改成8.8.8.8 (nameserver 8.8.8.8),或者是其他的Server。总之,根据你的机房情况来定 。 修改完成后,重启Gmond,所有机器都得设置和重启Gmond。 大功告成!
===小技巧===
修改nameserver的配置需要小心点。我目前在本机装了dnsmasq,用于缓存域名解析结果,并且/etc/resolv.conf的第一条设置为nameserver 127.0.0.1。这样的话,当我的Server需要访问其他网站的服务时就不会每次都去解析域名,直接用本地缓存的就行了,提升了速度。
还有一个小技巧,可以用dig命令查看DNS解析的耗时,命令eg: dig www.baidu.com