260 likes | 431 Views
Da 话 xi 游 之 HPC. ganglia 监控利器. 分布式文件系统监控技术 ———ganglia. INTRODUCTION. 单一主机之监控. 分布式监控系统. Ganglia. INTRODUCTION. Why monitoring?. 系统状态之监控 解决系统之问题 系统升级时之依据 ……. How monitoring?. 单一主机之监控 分布式监控系统. 单一主机之监控. 要监控那些信息?. 系统. CPU Loading ? 记忆体使用量 硬盘空间 网络 …….
E N D
Da 话 xi 游 之 HPC ganglia 监控利器
分布式文件系统监控技术 ———ganglia
INTRODUCTION • 单一主机之监控 • 分布式监控系统 • Ganglia
INTRODUCTION • Why monitoring? • 系统状态之监控 • 解决系统之问题 • 系统升级时之依据 • …… • How monitoring? • 单一主机之监控 • 分布式监控系统
单一主机之监控 • 要监控那些信息? • 系统 • CPU Loading? • 记忆体使用量 • 硬盘空间 • 网络 • …… • 硬件状况 • 电压 • 温度 • ……
单一主机之监控 • 咨询的来源? • /proc pseudo file-system • 系统核心(kernel)资料 • 可供kernel组能调校的参数 • Basic OS commands • ps, free, top, df, dh, …… • Log files • /var/log ……
单一主机之监控 • CPU资讯? • /proc/cpuinfo • /proc/loadavg • 系统平均负载 • uptime
单一主机之监控 • 记忆体资讯? • /proc/meminfo • free • 硬盘使用状态 • df -h • 磁盘空间资讯 • du • 目录
单一主机之监控 • 硬件监控 • LM sensor • sensors-detect • sensor s • IPMI • OpenIPMI • OpenIPMI-tools
单一主机之监控 • 如可处理资讯? • 自行编写Shell Scripts • 使用现有的工具 • MRTG • RRDTool
分布式监控系统 • 构成元件 • 在集群节点上的守护进程 • 能提供从节点收集集群状态信息的服务 • 有基于GUI的前端来提供系统动态初始化 • 最有效的集群文件系统是Ganglia、Supermon和Hawkeye.
Ganglia Ganglia一种可扩展的分布式监控系统,用来对Grid和Cluster上面的节点进行监控,利用它提供的web界面可以看到每个节点状态,并且可以输出图形化的表示。 • Ganglia Monitoring Daemon(gmond) • Ganglia Meta Daemon(gmetad) • Ganglia PHP Web Frontend
用来对Grid和Cluster上面的节点进行监控 • Multicast-based Listen/An6nounce protocol • Depends on open standards • XML • XDR compact portable data transport • RRDTool - Round Robin Database • APR – Apache Portable Runtime • Apache HTTPD Server • PHP based web interface • http://ganglia.sourceforge.net or http://www.ganglia.info
Ganglia Monitoring Daemon(gmond) gmond运行于所有需要被监视的节点上,负责收集本节点的CPU负载,内存用量,磁盘空间等系统信息。- 这些信息被称作"metric"- Linux的系统信息收集功能代码在这里:ganglia/srclib/libmetrics/linux/gmond监听8649端口 (电话键盘上UNIX所对应的数字),响应来自gmetad的请求,发送XML格式的系统信息。- (try it) telnet localhost 8649 (将能看到XML格式的系统信息输出)现在看来,gmond和snmp似乎没什么不同。gmond同时还进行多播,收集集群其他节点的状态,同时发布自己的状态信息。- 多播地址是 239.2.11.71:8649gmond给gmetad发送的XML系统信息中包括了其所收集的其他节点状态信息。- 这样集群中一个节点死掉也不影响gmetad从其他节点获得信息。
Ganglia Meta Daemon(gmetad) 因为gmond无法永久存储状态信息,而且只能收集一个集群的信息,所以需要一个gmetad。gmetad监听8651和8652端口,向管理客户端(比如web)提供系统信息。8651和8652提供的信息差不多,只是一个是交互式的,一个是直接输出所有的XML格式系统信息。- (try it) telnet localhost 8651- (try it) telnet localhost 8652 gmetad访问gmond所监听的8649端口,获得集群系统信息。 gmetad可以指定多个数据源,可以是gmond或其他gmetad。- 正因为如此,gmetad才可以获得更高的可用性。- 集群中的一个数据源死了,还可以访问其他数据源。 gmetad本身并不产生新的数据,只是对收集来的数据进行加工,然后提供给管理客户端。gmetad把数据存储成RRD格式的数据库文件,供管理客户端使用。- 数据库文件在这里:/var/lib/ganglia/rrds/
ganglia安装 Ganglia依赖以下包: zlib-1.2.2-4libpng-1.2.1-6freetype-2-2.1.7-2libart_lgpl-2.3.16-1perl
1 server端的安装 A. 安装ganglia的依赖包: apr-1.2.8.tar.gz; apr-util-1.2.8.tar.gz; confuse-2.6.tar.gz; expat-2.0.1.tar.gz 安装gmetad之前需要先安装RRDTool,默认的安装路径:/usr/local/rrdtool-<VERSION> tar zxvf rrdtool-*.tar.gz cd rrdtool-*./configure --prefix=/usr #使用/usr会减少很多麻烦,头文件会放到/usr/include,库文件放到/usr/libmake; make install
B. gmetad的安装gmetad不是默认安装的,安装时需要加参数 --with-gmetad 。即rrdtool库及其头文件必须存在,默认的路径是/usr/include/rrd.h和 /usr/lib/librrd.a,如果在安装rrdtool时安在了不同的路径下,这里需要指明它们的路径。 tar –zxvf ganglia-3.0.3.tar.gz cd ganglia-*./configure --prefix=/usr/local/ganglia CFLAGS="-I/rrd/header/path" \ CPPFLAGS="- I/rrd/header/path" LDFLAGS="-L/rrd/library/path" --with-gmetad (./configure CFLAGS="-I/usr/local/rrdtool-1.0.50/include" CPPFLAGS="-I/usr/local/rrdtool-1.0.50/include" LDFLAGS="-L/usr/local/rrdtool-1.0.50/lib" --with-gmetad --enable-gexec)make; make install
将gmetad.init文件拷贝到 /etc/init.d/: cd ganglia-3.0.3/gmetadcp gmetad.init /etc/init.d/gmetad将配置文件拷贝到/etc目录下:cp gmetad.conf /etc/gmetad.confchkconfig gmetad onchkconfig --list gmetadGMETAD 0:off 1:off 2:on 3:on 4:on 5:on 6:off 创建rrd数据存储的文件夹, 修改属性拥有者为: "nobody": mkdir /var/lib/ganglia/rrds chown nobody:nobody /var/lib/ganglia/rrds 启动gmetad:service gmetad startStarting GANGLIA gmetad: [ OK ]验证gmetad正常工作:telnet localhost 8651就可以得到监控的各个主机的状态。
修改gmetad.conf的配置# data_source "another source" 1.3.4.7:8655 1.3.4.8data_source "SERVER" 10 node1 node2data_source是最重要的参量,在GMOND的Cluser name配置必须与data_source的相同,这个参量被设置为群的名字,被监测以便能监测那群状态。如果有二个或更多监测对象,当有一对象不能被监测,将读取data_source 配置的下一个对象 data_source "taskcenter" 1.2.3.4 #所要监控的客户端 可以写多个 setuid_username "root" #可改为其他安全用户 # default: "/var/lib/ganglia/rrds" #定义该客户端的数据保存的路径 # rrd_rootdir "/some/other/place" rrd_rootdir "/var/lib/ganglia/rrds"
2 client端gmond的安装和配置安装ganglia:tar zxvf ganglia-3.0.3.tar.gzcd ganglia-3.0.3./configure --prefix=/usr/local/gangliamake; make installcd ganglia-3.0.3/gmondgmond –t > /etc/gmond.confcp gmond.init /etc/init.d/gmondchkconfig gmond onchkconfig --list gmondgmond 0:off 1:off 2:on 3:on 4:on 5:on 6:offservice gmond startStarting GANGLIA gmond: [ OK ]
验证gmond正常工作:telnet localhost 8649就可以获取机群内运行gmond的主机的信息配置gmond.conf:/etc/gmond.conf:globals { setuid = no user = nobody cleanup_threshold = 300 /*secs */ } 配置完成后重新启动gmond.
3)安装web前端 cp -a ganglia-3.0.3/web /var/www/html/ganglia 确定web server支持PHP4 对apache来说,php模块mod_php的状态应该是enabled,貌似默认就是的^_^ 配制文件是/var/www/html/ganglia/conf.php
Thanks! Rocks cluter QQ群:130653201