文档章节

ganglia监控

lee_ypp
 lee_ypp
发布于 2014/07/21 16:20
字数 898
阅读 1884
收藏 6

ganglia

ganglia 是分布式的监控系统,有两个Daemon, 分别是:客户端Ganglia Monitoring Daemon (gmond)和服务端Ganglia Meta Daemon (gmetad),还有Ganglia PHP Web Frontend(基于web的动态访问方式)组成是一个Linux下图形化监控系统运行性能的软件,界面美观、丰富,功能强大

http://ganglia.sourceforge.net/ 软件下载 

环境:RHEL6  x86-64 disable selinux and iptables

主机:192.168.0.27    server27.example.com

         192.168.0.168    server68.example.com

#下载ganglia-3.6.0.tar.gz  ganglia-web-3.5.2.tar.gz libconfuse-devel-2.6-3.el6.x86_64.rpm  libconfuse-2.7-4.el6.x86_64.rpm

#yum install -y rpm-build libart_lgpl-devel gcc-c++ python-devel libconfuse-devel pcre-devel expat-devel apr-devel    ##安装软件包依赖性

#rpm -ivh libconfuse-* 

#rpmbuild -tb ganglia-3.6.0.tar.gz 

#下载rdtool-devel-1.3.8-6.el6.x86_64.rpm 

#rpm -q rrdtool    ##查看是否安装

#rpm -ivh rrdtool-devel-1.3.8-6.el6.x86_64.rpm 

#rpmbuild -tb ganglia-3.6.0.tar.gz 

#cd /root/rpmbuild/RPMS/x86_64 

#rpm -ivh * 

#rpmbuild -tb ganglia-web-3.5.2.tar.gz 

#cd rpmbuild/RPMS/ noarch/ 

#rpm -ivh ganglia-web-3.5.2-1.noarch.rpm 

#cd /etc/ganglia/ 

#vim gmetad.conf 

name= “my cluster” 

data_source "my cluster" 192.168.0.27(本机ip):86xx

#vim gmond.conf

name=“my cluster” 

修改udp的端口号(3个)

8649-->86xx

#cd /root/rpmbuild/ RPMS/ x86_64/ 

#scp ganglia-gmond-3.6.0-1.x86_64.rpm ganglia-gmond-modules-python-3.6.0-1.x86_64.rpm ibganglia-3.6.0-1.x86_64.rpm 192.168.0.168: (yum install openssh-clients )

在168这台主机上

#下载libconfuse-devel-2.6-3.el6.x86_64.rpm  libconfuse-2.7-4.el6.x86_64.rpm

#yum localinstall *

#cd /etc/ganglia/

#vim gmod.conf

name=”my cluster

修改udp的端口号(3个)

8649-->86xx        (!注意:该端口必须与主机的保持一致)

#service gmond restart

#iptables -F

#service gmond restart

#service gmetad restart

#cd /var/lib/ganglia/rrds/     在该目录下回生成相应的数据文件,可以看到每个主机的度量指标,生成了易于查看的图形.

这时通过web访问192.168.0.27/ganglia就可看见刚建立的集群

ganglia与nagios的整合

注:ganglia与nagios可以部署在不同的主机,因为端口号设置相同,脚本会自动提取内容。

注:check_ganglia.py 命令仅在阈值过高时发出警告。如果希望在阈值过低时发出警告(在disk_free 中是这样),则需要修改代码。我更改了文件的最后部分,如下所示:
#cd /root/ganglia-3.6.0 /contrib/ 

#cp check_ganglia.py /usr/local/nagios/libexec/ 

#cd /usr/local/nagios/libexec/(查看是否复制成功) 

#chown nagios.nagios check_ganglia.py

#/usr/local/nagios/libexec/check_ganglia.py -h server27.example.com -m disk_free_percent_rootfs -w 30 -c 10 -p 86xx

#vim check_ganglia.py (创建脚本)

  except Exception, err: 

    print "CHECKGANGLIA UNKNOWN: Error while getting value \"%s\"" % (err) 

    sys.exit(3) 

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) 

#/usr/local/nagios/libexec/check_ganglia.py -h server27.example.com -m disk_free_percent_rootfs -w 30 -c 10 看运行结果是否报错

#vim check_ganglia.py 

ganglia_port=86xx 

#/usr/local/nagios/libexec/check_ganglia.py -h server27.example.com -m disk_free_percent_rootfs -w 30 -c 10 看运行结果是否报错

#cd /usr/local/nagios/etc/objects/

#vim commands.cfg 

# 'check_ganglia' command definition 

define command{ 

        command_name    check_ganglia 

        command_line    $USER1$/check_ganglia.py -h $HOSTADDRESS$ -m $ARG1$ -w $ARG2$ -c $ARG3$ 

        } 

#vim /usr/local/nagios/etc/objects/templates.cfg 

最后加入

define service { 

use generic-service 

name ganglia-service 

hostgroup_name ganglia-servers 

service_groups ganglia-metrics

register        0     ##不进行注册

}

# vim /usr/local/nagios/etc/objects/hosts.cfg  ##定义主机

最后加入

define hostgroup { 

hostgroup_name ganglia-servers 

alias ganglia-servers 

members server86.example.com 

#vim /usr/local/nagios/etc/objects/services.cfg    ##定义服务器

###############check_ganglia################ 

define servicegroup { 

servicegroup_name ganglia-metrics 

alias Ganglia Metrics 

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 

 } 

#service nagios reload

#web 访问192.168.0.27/nagios

如果一切正常,您应该看到 Ganglia 数据现在已经在 Nagios 的监视之下 ,结合使用 Ganglia 和 Nagios,您可以监视任何内容。 

                                                                                                                                                                ——leeypp@gmail.com


© 著作权归作者所有

共有 人打赏支持
下一篇: Cacti监控
lee_ypp
粉丝 64
博文 46
码字总数 67139
作品 0
程序员
私信 提问
企业运维监控平台架构设计与实现(ganglia篇)

一、Cacti/Nagios/Zabbix/centreon/Ganglia之抉择 1、cacti Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。 简单的说Cacti 就是一个PHP 程序。它通过使用SNMP 协议...

南非蚂蚁
2016/04/06
0
0
云监控 Ganglia 安装步骤 (含python module)

前言 最近在研究云监控的相关工具,感觉ganglia颇有亮点,能从一个集群整体的角度来展现数据. 但是安装过程稍过复杂,相关依赖稍多,故写此文章与大家分享下. 本文不讲解相关原理,若想了解请参考...

一只小逛
2013/12/04
11.9K
4
分布式监控系统ganglia配置文档

一、Ganglia的组件 Ganglia包括如下程序,他们之间通过XML格式传递监控数据,达到监控效果。 Gmetad 这个程序负责收集各个cluster的数据,并更新到rrd数据库中。 Gmond 收集本机的监控数据,...

南非蚂蚁
2014/09/19
720
0
实战ganglia分布式的监控系统(2)——集成nagios报告Ganglia指标

本次实验紧接上次实验,ganglia节点需要开启,且已经安装Nagios,Nagios安装可参考我前面关于nagios的博客:实战Nagios网络监控(1)——监控本机运行状态和Mysq主机 注:ganglia与nagios可以...

willis_sun
2016/10/28
0
0
轻松监控上万台服务器:企业运维监控平台架构设计与实践指南

一、Cacti/Nagios/Zabbix/centreon/Ganglia之抉择 1、cacti Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。 简单的说Cacti 就是一个PHP 程序。它通过使用SNMP ...

yard521
2016/09/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux 设备驱动--- 阻塞型字符设备驱动 --- O_NONBLOCK --- 非阻塞标志

阻塞: 在设计简单字符驱动程序时,要注意一个重要问题. 当一个设备无法立刻满足用户的读写请求时应当如何处理? 例如:调用 read 时没有数据可读,但以后可能会有; 或者一个进程试图向设备写...

天王盖地虎626
7分钟前
0
0
作用域、作用域链精解

首先来几个名词解释: 作用域[scope]:每一个js函数都是一个对象,对象中有些属性我们可以访问,但有些不可以,这些属性仅供js引擎存取,[[scope]]就是对象其中一个属性。[[scope]]指的就是我...

IrisHuang
7分钟前
0
0
etcd集群备份和数据恢复

etcd是一个分布式k-v数据库,在kubernetes中使用其管理集群的元数据。这里介绍etcd集群数据的备份和数据恢复的方法和步骤。 本文来自于:https://www.maideliang.com/index.php/archives/25/...

openthings
21分钟前
1
0
「阿里面试系列」面试加分项,从JVM层面了解线程的启动和停止

文章简介 这一篇主要围绕线程状态控制相关的操作分析线程的原理,比如线程的中断,线程的通信等,内容比较多,可能会分两篇文章 阿里面试系列导读:关注我的技术公众号【架构师修炼宝典】一周...

Java架构资源分享
28分钟前
3
0
centos安装confluence全攻略

https://blog.csdn.net/qwer026/article/details/51439076

happyeveryday32
42分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部