扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Ganglia 是UC Berkeley发起的一个开源监视项目,设计用于测量数以千计的节点。每台计算机都运行一个收集和发送度量数据(如处理器速度、内存使用量等)的名为gmond
的守护进程。它将从操作系统和指定主机中收集。接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次结构模式,才使得Ganglia 可以实现良好的扩展。gmond
带来的系统负载非常少,这使得它成为在集群中各台计算机上运行的一段代码,而不会影响用户性能。
所有这些数据收集会多次影响节点性能。网络中的 “抖动(Jitter)” 发生在大量小消息同时出现时。我们发现通过将节点时钟保持一致,就可以避免这个问题。
RRDTool 表示:轮循数据库工具(Round Robin Database Tool)。它是由Tobias Oetiker创建的,并且为许多高性能监视工具提供了引擎。Ganglia是其中之一,但是Cacti 和Zenoss 是另外两个。
要安装 Ganglia,首先需要让RRDTool 运行在监视服务器上。RRDTool将提供其他程序使用的两个非常优秀的功能:
它将在轮循数据库中存储数据。随着捕捉的数据变得越来越旧,解析的精确性将变得越来越低。这将占用很少的内存并且在大多数情况下仍然有用。
它可以通过使用命令行实参根据捕捉的数据生成图形。
工作原理图
Ganglia的核心包含gmetad、gmond以及一个Web前端。主要是用来监控系统性能,如:cpu、mem、硬盘利用率,I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
gmetad可以部署在集群内任一台节点或者通过网络连接到集群的独立主机,它通过单播路由的方式与gmond通信,收集区域内节点的状态信息,并以XML数据的形式,保存在数据库中。
每台计算机都运行一个收集和发送度量数据的名为gmond(带来的系统负载非常少)的守护进程。
由RRDTool工具处理数据,并生成相应的的图形显示,以Web方式直观的提供给客户端。
安装软件包依赖性
yum install -y libart_lgpl_devel gcc gcc-c++ python-devel pcre-devel expat-devel rrdtool-devel apr-devel rpm-build
rpm -ivh libconfuse-2.6-3.el6.x86_64.rpm libconfuse-devel-2.6-3.el6.x86_64.rpm
rpmbuild -tb ganglia-3.3.7.tar.gz cd /root/rpmbuild/RPMS/x86_64 //放有ganglia源码包rpmbuild的包5个 ganglia-devel-3.6.0-1.x86_64.rpm ganglia-gmetad-3.6.0-1.x86_64.rpm ganglia-gmond-3.6.0-1.x86_64.rpm ganglia-gmond-modules-python-3.6.0-1.x86_64.rpm libganglia-3.6.0-1.x86_64.rpm
rpm -ivh *
vi /etc/ganglia/gmond.conf cluster { name = "my cluster" owner = "unspecified" latlong = "unspecified" url = "unspecified" }
service gmetad start
service gmond start
rpmbuild -tb ganglia-web-3.4.2.tar.gz
cd /root/rpmbuild/RPMS/noarch
ganglia-web-3.5.10-1.noarch.rpm
yum localinstall ganglia-web-3.5.10-1.noarch.rpm (默认安装路径是/var/www/html/ganglia)
/etc/init.d/httpd restart //现在就可以用打开ganglia-web(http://ip/ganglia)查看本机检测信息
此时本机是server+client,若想再监测其他主机,须在其上安装以下包:
ganglia-gmond-3.6.0-1.x86_64.rpm
ganglia-gmond-modules-python-3.6.0-1.x86_64.rpm
libganglia-3.6.0-1.x86_64.rpm
libconfuse-2.6-3.el6.x86_64.rpm
vi /etc/ganglia/gmond.conf //和上边修改一样
/etc/init.d/gmond start
现在可以重新启动 gmetad,刷新Web 浏览器,然后应当会看到节点现在出现在列表中
进入/var/lib/ganglia/rrds目录,可以看到每个主机的度量指标,生成了易于查看的图形.
-------------------------------------------------------------
ganglia+nagios整合:
Ganglia 和Nagios,这是两个用于监视数据中心的工具。这两个工具被大量用于高性能计算(HPC)环境中,但是它们对于其他环境也具有很大的吸引力(例如云、呈 现集群和托管中心)。此外,两者对监视的定义也采取了不同的侧重点。Ganglia更多地与收集度量数据并随时跟踪这些数据有关,而Nagios 一直致力于成为一种报警机制。
tar zxf ganglia-3.6.0.tar.gz
cd ganglia-3.6.0/contrib
./check_ganglia.py -h ip -m disk_free -w 20 -c 10 //-h后根检测主机的ip或hostname,-m后跟要监测的对象,-w、-c指定警告和紧急的阀值
cp /ganglia-3.1.7/contrib/check_ganglia.py /usr/local/nagios/libexec 注:ganglia与nagios可以部署在不同的主机
vi /usr/local/nagios/libexec/check_ganglia.py //注意此处格式要求严格 if critical > warning: if value >= critical: print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric,value) sys.exit(2) elif value >= warning: print "CHECKGANGLIA WARNING: %s is %.2f" % (metric,value) sys.exit(1) else: print "CHECKGANGLIA OK: %s is %.2f" % (metric,value) sys.exit(0) else: if critical >= value: print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric,value) sys.exit(2) elif warning >= value: print "CHECKGANGLIA WARNING: %s is %.2f" % (metric,value) sys.exit(1) else: print "CHECKGANGLIA OK: %s is %.2f" % (metric,value) sys.exit(0)
chown nagios.nagios check_ganglia.py
配置nagios:
vi /usr/local/nagios/etc/objects/commands.cfg
define command {
command_name check_ganglia
command_line $USER1$/check_ganglia.py -h $HOSTNAME$ -m $ARG1$ -w $ARG2$ -c $ARG3$
}
vi /usr/local/nagios/etc/objects/templates.cfg
define service {
use generic-service
name ganglia-service
hostgroup_name ganglia-servers
service_groups ganglia-metrics
}
vi /usr/local/nagios/etc/objects/hosts.cfg
define host {
use linux-server
host_name ty2.org
address 192.168.0.21
}
define hostgroup {
hostgroup_name ganglia-servers
alias ganglia-servers
members ty2.org //hostgroup中的members必须要有host定义匹配
}
vi services.cfg
define service{
use ganglia-service
service_description 根分区
check_command check_ganglia!disk_free_percent_rootfs!20!10
}
define service{
use ganglia-service
service_description 系统负载
check_command check_ganglia!load_one!4!5
}
define service{
use ganglia-service
service_description 内存空闲
check_command check_ganglia!mem_free!50000!30000
}
define servicegroup {
servicegroup_name ganglia-metrics
alias Ganglia Metrics
}
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
/etc/init.d/nagios reload
监控成功,nagios下就可以看见ganglia监测主机的信息
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流