文档章节

ganglia监控

lee_ypp
 lee_ypp
发布于 2014/07/21 16:20
字数 898
阅读 1871
收藏 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


© 著作权归作者所有

共有 人打赏支持
lee_ypp
粉丝 64
博文 45
码字总数 58692
作品 0
程序员
企业运维监控平台架构设计与实现(ganglia篇)

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

南非蚂蚁
2016/04/06
0
0
轻松监控上万台服务器:企业运维监控平台架构设计与实践指南

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

yard521
2016/09/19
0
0
分布式监控系统ganglia配置文档

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

南非蚂蚁
2014/09/19
690
0
云监控 Ganglia 安装步骤 (含python module)

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

一只小逛
2013/12/04
11.9K
4
实战ganglia分布式的监控系统(2)——集成nagios报告Ganglia指标

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

willis_sun
2016/10/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周日乱弹 —— 种族不同,禁止交往

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小小编辑:推荐歌曲《苏菲小姐》- 鱼果 《苏菲小姐》- 鱼果 手机党少年们想听歌,请使劲儿戳(这里) @貓夏:下大雨 正是睡觉的好时候 临睡前...

小小编辑
今天
199
6
Python 搭建简单服务器

Python动态服务器网页(需要使用WSGI接口),基本实现步骤如下: 1.等待客户端的链接,服务器会收到一个http协议的请求数据报 2.利用正则表达式对这个请求数据报进行解析(请求方式、提取出文...

代码打碟手
今天
1
0
Confluence 6 删除垃圾内容

属性(profile)垃圾 属性垃圾的定义为,一个垃圾用户在 Confluence 创建了用户,但是这个用户在自己的属性页面中添加了垃圾 URL。 如果你有很多垃圾用户在你的系统中创建了属性,你可以使用...

honeymose
今天
0
0
qduoj~前端~二次开发~打包docker镜像并上传到阿里云容器镜像仓库

上一篇文章https://my.oschina.net/finchxu/blog/1930017记录了怎么在本地修改前端,现在我要把我的修改添加到部署到本地的前端的docker容器中,然后打包这个容器成为一个本地镜像,然后把这...

虚拟世界的懒猫
今天
1
0
UML中 的各种符号含义

Class Notation A class notation consists of three parts: Class Name The name of the class appears in the first partition. Class Attributes Attributes are shown in the second par......

hutaishi
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部