基本介绍
Ganglia:Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
Nagios:Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
架构
Ganglia的优势在于实时监控集群中的机器的各项指标,比如cpu,内存,磁盘,温度等数据,汇总成成各种图形化界面,并提供接口可供调用数据。而在出现问题的时候报警提示功能,相对较弱。
Nagios的优势在于出现问题之时可以提供强大的报警提示功能,但是在实时监控上,功能较弱,即使使用NRPE本地插件也不能提供强大的机器监控。
在集群运维中,有两种方式,第一种,当问题出现的时候能够得到报警提示,运维人员能够迅速出击解决问题,将损失减少到最少。第二种,在问题出现之前,找到可能出现的问题,解决问题,避免问题出现。
因此Nagios适合第一种场景,Ganglia适合第二种场景,两者结合能有效的解决各种场景。当然还有其他的监控报警软件,比如Monitorix,NetXMS,cacti,Zabbix等。
这里,我们选择最成熟的Ganglia和Nagios。
环境介绍
1. 集群中已经安装了Ganglia(安装过程可以参考我的上一篇博客http://blog.csdn.net/shifenglov/article/details/40587527)
2. 集群中已经安装了Nagios(安装过程可以参考这篇博客http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html)
安装思路
通过Nagios调用Ganglia的接口,获取整个集群的监控指标,如果超过设定的报警阀值,则予以报警提示。
安装过程
1. 复制check_ganglia.py脚本到nagios的执行目录中
如果有源码,则check_gangl