2009年12月16日星期三

Ganglia & Nagios



ganglia.info


术语:
XDR : eXternal Data Representation.外部数据表示法.独立于机器架构,在异种机器间传送数据.XDR定义了如下数据类型: boolean, char(8bits),int(32bits),hyper(64bits),float,double,quadruple,enumeration, structure,string,fixed length array, variable length array, union, opaque data, optional data(类似C指针,但还有一个"存在与否"的标记), 参考RFC 1014, RFC 1832, RFC 4506

分成如下模块:

监控:
gmond : ganglia monitoring daemon, 是一个轻量的服务.在每台你希望监控的机器上安装.采用简单的监听/发布协议,通过XDR收集监控状态并 通过TCP上的XML来共享这些信息.gmond是可移植的,收集几十种系统数据,如CPU,内存,磁盘,网络,进程数据.

gmetad : ganglia meta daemon,一个服务从其它的gmetad和gmond来源存贮它们的状态到磁盘中多个索引过的round-robin数据库.gmetad提供了简单的查询机制来收集特定的一组机器的信息.gmetad支持层次化的委托方式来建立可管理的监控域.

gmetric : ganglia metric tool是一人命令行工具,你可以用来加入定制的检测值到ganglia的主机.可以用来伪造gmond信息,使它看起来象一个不同的主机.

gstat : ganglia stat tool是一个命令行工具来直接查询gmond的检测值

web : ganglia web frontend 图形化的web介面展现保存在gmetad上的检测数据,用PHP写的.

执行:
Ganglia 执行环境:
GEXEC是一个可扩展的集群远程执行工具.提供了快速,RSA鉴权的并行的分布工作.提供了透明的标准输入输出,出错和信号.提供了本地环境的复制.能够健壮的扩展到系统到几千个节点
可以利用authd (from RocketCalc)来获得更好的性能和易维护性.

还有embedded metrics, 用这个可以发送gmetric兼容的数据包,支持了多种语言,如C++, python, perl...



Hadoop有集成的钩子在ganglia上
http://wiki.apache.org/hadoop/GangliaMetrics
可以在Hadoop配置文件中配置,向指定的ganglia服务器发送数据.这个实现些已经在Hadoop的代码中(hadoop-core)了.实现是直接用UDP发数据包到ganglia服务器,还是比较简单的.

jmxetric
集成JMX,将MBean属性报告到Ganglia.
http://code.google.com/p/jmxetric


Nagios主要功能:
  • 监控网络服务(SMTP,POP3,HTTP,NNTP,PING...)
  • 监控主机资源(CPU,磁盘使用...)
  • 简单插件设计可以让用户容易开发他们的服务检查
  • 并行的服务检查
  • 可以定义网络主机层次结构,可以检测和区分下线的主机和不可达的主机
  • 在服务或主机发生问题和解决时,通过email,呼机,或用户定义的方法来发送通知
  • 自动log文件轮替
  • 支持实现冗余监控主机
  • 可选的Web接口.
查看ganglia的内容,可以telnet到主机(gmond)的tcp端口(默认8649)来读取


Nagios相对功能比较完整:
开源source forge
有通知功能
多用户,多角色的dashboard和控制接口
超过200社区提供了插件, 如下两大类
  • 输入源
  • 通知机制
扩展到监控超过100000节点
支持ganglia作为输入源

集成nagios时,注意将节点的cfg文件(在/usr/local/nagios/etc/及子目录中)中,定义host 名字的时候与ganglia汇报的相一致

define host {
use desktop-server
host_name NJ-ZHENTAOHUANG.WORKGROUP
address NJ-ZHENTAOHUANG.WORKGROUP
}

从ganglia中TCP端口中读到的是:
NAME="NJ-HZT-VM2.WORKGROUP" IP="10.64.38.211" REPORTED="1262598648" TN="9" TMAX="20" DMAX="0" LOCATION="n ...





没有评论:

发表评论