0%

Ganglia PHP Web Frontend 简要分析

经过几天的研究,总结把Ganglia的结构弄清楚了。 Ganglia分为三部分: gmond,客户端守护进程,安装在所有需要监控的机器上,用于收集客户端的信息 gmetad,服务端守护进程,安装在监控主服务器端,收集从客户端传过来的数据,使用rrdtool,把数据保存在/var/lib/ganglia/rrds/目录下。 PHP Web frontend: 与gmetad装在同一台服务器,就是一个普通的php程序,不需要特殊的扩展,apache+php就可以了,也不需要数据库。因为登录验证是通过Apache,读报表数据是直接从rrdtool里读。 PHP Web frontend最关键的部分在于,读取Grid,Cluster,Host信息(节点分组,客户端列表),以及画图(表)两部分。 读取分组及客户端信息,是在ganglia.php中的Gmetad()方法,使用socket连接到gmetad(一般就是本机)的8652端口,与gmetad交互,返回的是xml格式的数据. 画图则更简单,在graph.php中,通过传入的参数,组合生成rrdtool的画图命令,使用passthru方法执行该命令并输出,输出前先把Content-type设为image/png. 可以得出结论,PHP Web frontend其实只是用于展示gmetad数据的数据,而且交互的数据都是标准的XML,我们完全可以用其他语言如Java,.Net之类的开发自己的前端。