使用ganglia做集群监控(单播,组播双实例)

前言:Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。


规划

使用一台ganglia机器监控两个集群

ganglia-server(gmetad):10.64.8.10 centos6.5

ganglia-agent(gmond):xdhadoop、sjselk

集群xdhadoop:

master1、master2、slave1、slave2、slave3

集群sjselk:

es-master1、es-master2、es-master3、es-master4、es-master5



一:准备工作

(1)修改主机名,并将监控机名写入hosts

  • 10.10.1.10
#hostname ganglia && echo ganglia >/etc/hostname
#cat >> /etc/hosts << EOF
10.10.1.1 master1
10.10.1.2 master2
10.10.1.3 slave1
10.10.1.4 slave2
10.10.1.5 slave3
10.10.0.1 es-master1
10.10.0.2 es-master2
10.10.0.3 es-master3
10.10.0.4 es-master4
10.10.0.5 es-master5
10.10.1.10 ganglia
EOF

(2)关闭selinux和防火墙

#setenforce 0&& service iptables stop &&chkconfig iptables off


二:ganglia-server环境安装

  • ganglia

(1)web环境

安装apache

#yum install httpd
#vim /etc/httpd/conf/httpd.conf 
User nobody
Group nobody

安装php,并编辑测试页面。

#yum install php  
#vim /var/www/html/info.php 
<?php
phpinfo();
?>

启动httpd

#service httpd restart

打开浏览器访问10.64.8.10/info.php测试,出现下图说明apache与php联动成功。

(2)安装依赖

# yum install -y apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel

(3)安装libconfuse

#wget http://download.savannah.gnu.org/releases/confuse/confuse-2.7.tar.gz
#tar confuse-2.7.tar.gz
#cd confuse-2.7
# ./configure CFLAGS=-fPIC --disable-nls
# make&&make install

(4)安装pcre

#tar xf pcre-8.12.tar.bz2
#cd pcre-8.12
#./configure && make && make install
#echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig


(5)安装rrdTool

1:下载tar包,编译安装rrdTool

#cd /opt
#wget  http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3.1.tar.gz
#tar xf rrdtool-1.3.1.tar.gz
#cd rrdtool-1.3.1
#./configure --prefix=/usr/local
#make && make install

rrd安装后:lib库文件 /usr/local/lib  bin可执行文件 /usr/local/bin/rrdtool

2:将rrdtool 所以拷到/usr/bin下(方便后面ganglia调用),并加入库文件。

#cp /usr/local/bin/rrdtool  /usr/bin/rrdtool
#echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig

3:验证rrdtool是否安装成功,利用examples下的示例,渲染一个示例图

#rrdtool -V
#cd /usr/local/share/rrdtool/examples/
#./stripes.pl
#cp stripes.png /var/www/html/

在浏览器访问http://ganglia/stripes.png,,如下图说明rrd安装正常。



三:ganglia-server(gmetad)安装

  • ganglia

(1)编译安装ganglia

#wget http://120.52.73.45/jaist.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.7.2/ganglia-3.7.2.tar.gz
#tar xf  ganglia-3.7.2.tar.gz
#cd  ganglia-3.7.2
# ./configure --prefix=/usr/local/ganglia --with-gmetad --with-librrd=/usr/local/lib --sysconfdir=/etc/ganglia --with-libpcre=no
#make && make install


(2)cpoy启动脚本

# cp gmond/gmond.init /etc/rc.d/init.d/gmond
# cp gmetad/gmetad.init /etc/rc.d/init.d/gmetad
# chkconfig --add gmond && chkconfig gmond on
# chkconfig --add gmetad && chkconfig gmetad on
#vim /etc/init.d/gmetad
改
GMETAD=/usr/sbin/gmetad
为
GMETAD=/usr/local/ganglia/sbin/gmetad
#vim /etc/init.d/gmond
改
GMETAD=/usr/sbin/gmond
为
GMETAD=/usr/local/ganglia/sbin/gmond

复制python_modules

#mkdir /usr/local/ganglia/lib64/ganglia/python_modules
#cp ./gmond/python_modules/*/*.py  /usr/local/ganglia/lib64/ganglia/python_modules

(3)安装ganglia前端

#wget http://120.52.73.47/jaist.dl.sourceforge.net/project/ganglia/ganglia-web/3.7.1/ganglia-web-3.7.1.tar.gz
#tar xf ganglia-web-3.7.1.tar.gz
#cd ganglia-web-3.7.1
#vim Makefile
#改成实际的目录
##########################################################
# User configurables:
##########################################################
# Location where gweb should be installed to (excluding conf, dwoo dirs).
#ganglia的web发布目录
GDESTDIR = /var/www/html/ganglia    

# Location where default apache configuration should be installed to.
#ganglia-web的配置文件目录
GCONFDIR = /etc/ganglia-web         

# Gweb statedir (where conf dir and Dwoo templates dir are stored)
GWEB_STATEDIR = /var/lib/ganglia-web

# Gmetad rootdir (parent location of rrd folder)
GMETAD_ROOTDIR = /usr/local/ganglia
#httpd的用户
APACHE_USER = nobody

#make install

(4)启动server端gmetad

# service gmetad start

Starting GANGLIA gmetad:                                   [  OK  ]

浏览器访问:http://ganglia/ganglia 如下图,gmetad正常,但是还没有加入机器,所以是空白的。

四:ganglia-agent(gmond)安装

  • xdhadoop所有机器、sjselk所有机器

(1)安装依赖

# yum install -y apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel

(2)安装libconfuse

#wget http://download.savannah.gnu.org/releases/confuse/confuse-2.7.tar.gz
#tar confuse-2.7.tar.gz
#cd confuse-2.7
# ./configure CFLAGS=-fPIC --disable-nls
# make&&make install

(3)安装pcre

#tar xf pcre-8.12.tar.bz2
#cd pcre-8.12
#./configure && make && make install
#echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig

(4)安装

#tar xf  ganglia-3.7.2.tar.gz
#cd  ganglia-3.7.2
# ./configure --prefix=/usr/local/ganglia --sysconfdir=/etc/ganglia
#make && make install
启动脚本
#cp gmond/gmond.init /etc/rc.d/init.d/gmond
#chkconfig --add gmond && chkconfig gmond on
#vim /etc/init.d/gmond
改
GMETAD=/usr/sbin/gmond
为
GMETAD=/usr/local/ganglia/sbin/gmond

复制python_modules

#mkdir /usr/local/ganglia/lib64/ganglia/python_modules
#cp ./gmond/python_modules/*/*.py  /usr/local/ganglia/lib64/ganglia/python_modules

安装完毕,其实agent安装和server安装几乎一样,只是server端我们用的是gmetad(也会安装gmond),agent端,我们只用gmond就行了。


五:配置gmetad和gmond

(1)配置gmond.conf(sjselk集群,组播)

  • sjselk
#vim  /etc/ganglia/gmond.conf
cluster {
  name = "sjselk"               #集群名
  owner = "nobody"              #运行gmond用户名
  latlong = "unspecified"
  url = "unspecified"
}

host {
  location = "unspecified"
}

udp_send_channel {
  mcast_join = 239.2.11.71      #默认组播地址
  port = 8649                   #gmond端口
  ttl = 1
}

udp_recv_channel {
  mcast_join = 239.2.11.71
  port = 8649
  bind = 239.2.11.71
  retry_bind = true
}

tcp_accept_channel {
  port = 8649
  gzip_output = no
}

添加路由到组播地址

# ip route add 239.2.11.71 dev eth0

(2)配置gmond.conf(xdhadoop集群,单播)

  • xdhadoop
#vim  /etc/ganglia/gmond.conf
cluster {
  name = "xdhadoop"      #集群名
  owner = "nobody"       #运行gmond的用户
  latlong = "unspecified"
  url = "unspecified"
}

host {
  location = "unspecified"
}

udp_send_channel {
#  mcast_join = 239.2.11.71   #使用单播,注释组播地址      
  host = 10.10.1.10           #使用单播,写gmond的IP   
  port = 8653                 #设置端口
  ttl = 1
}

udp_recv_channel {
#  mcast_join = 239.2.11.71    #使用单播,注释组播地址 
  port = 8653                  #设置端口
#  bind = 239.2.11.71          #使用单播,注释组播地址 
bind = 10.10.0.1               #写自己的IP
  retry_bind = true
}

tcp_accept_channel {
  port = 8653
  gzip_output = no
}


(3)配置gmetad.conf

  • ganglia
#vim /etc/gmetad.conf
 #组播只写一个ip即可,可以写两个,防止一台机器挂了后,收不到数据。单播需要写上所有机器。
data_source "sjselk" es-master1:8649  es-master2:8649 
data_source "xdhadoop" master1:8653 master2:8653 slave1:8653  slave2:8653 slave3:8653

添加路由到组播地址

# ip route add 239.2.11.71 dev eth0


五:启动gmetad和gmond

  • ganglia
[[email protected] ~]# service gmetad start
Starting GANGLIA gmetad:                                    [  OK  ]
  • sjselk、xdhadoop
[[email protected] ~]# service gmond start
Starting GANGLIA gmond:                                     [  OK  ]

访问http://ganglia/ganglia

时间: 2024-12-24 03:51:33

使用ganglia做集群监控(单播,组播双实例)的相关文章

Ganglia集群监控

简介 Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点.Ganglia的核心包含gmond.gmetad以及一个Web前端.主要是用来监控系统性能,如:cpu .mem.硬盘利用率, I/O负载.网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整.分配系统资源,提高系统整体性能起到重要作用. 每台计算机都运行一个收集和发送度量数据的名为 gmond 的守护进程.接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结

完美集群监控组合ganglia和nagios

Ganglia是伯克利开发的一个集群监控软件.可以监视和显示集群中的节点的各种状态信息,比如如:cpu .mem.硬盘利用率, I/O负载.网络流量情况等,同时可以将历史数据以曲线方式通过php页面呈现. 而ganglia又依赖于一个web服务器用来显示集群状态,用rrdtool来存储数据和生成曲线图,需要xml解析因此需要expat,配置文件解析需要libconfuse.安装apche的httpd还需要支持php4以上,同时还有一些依赖软件. ganglia作为一款最常用的Linux环境中的监

部署AlwaysOn第三步:集群的资源组

资源组是由一个或多个资源组成的组,WSFC的故障转移是以资源组为单位的,资源组中的资源是相互依赖的,相互关联.一个资源所依赖的其他资源必须和该资源处于同一个资源组,跨资源组的依赖关系是不存在的.在任何时候,每个资源组都仅属于集群中的一个结点,该结点就是资源组的活跃结点,由活跃结点为应用程序提供服务.AlwaysOn的故障转移特性建立在WSFC的健康检测和故障转移的特性之上,因此,AlwaysOn和故障转移集群有了不可分割的关系,理解他们的关系,有助于维护更好的维护AlwaysOn. 一,可用性组

断路器Hystrix与Turbine集群监控-Spring Cloud学习第三天

文章大纲 一.Hystrix基础介绍二.断路器Hystrix简单使用三.自定义Hystrix请求命令四.Hystrix的服务降级与异常处理五.Hystrix的请求缓存与请求合并六.Hystrix仪表盘与Turbine集群监控七.项目源码与参考资料下载八.参考文章 一.Hystrix基础介绍 1. Hystrix简介   一个用户管理项目,里边就三个功能:用户注册.用户登录.用户详情浏览.按照传统的软件开发方式直接创建一个Web项目,分分钟就把这三个功能开发出来了,但是我现在想使用微服务+服务治理

K8S集群监控—cAdvisor+Heapster+InfluxDB+Grafana

容器的监控方案有多种,如单台docker主机的监控,可以使用docker stats或者cAdvisor web页面进行监控.但针对于Kubernetes这种容器编排工具而言docker单主机的监控已经不足以满足需求,在Kubernetes的生态圈中也诞生了一个个监控方案,如常用的dashboard,部署cAdvisor+Heapster+InfluxDB+Grafana监控方案,部署Prometheus和Grafana监控方案等.在这里主要讲述一下cAdvisor+Heapster监控方案.

有个想法,想吧LNMP和NGINX和HAPROXY都放到docker里做集群,大家觉得怎么样?

有个想法,想把LNMP和NGINX和HAPROXY都放到docker里做集群 顶层HAPROXY+KERPALIVE 第二层NGINX+KERPALIVE 第三层APACHE集群+MYSQL集群 第四层docker 第五层LINUX内核 有想法的可以一起讨论下哈

集群监控

集群监控 大型互联网企业的背后,依靠的是成千上万台服务器日夜不停的运转,以支撑其业务的运转.宕机对于互联网企业来说,代价是沉重的,轻则影响用户体验,重则直接影响交易,导致交易下跌,并且给企业声誉造成不可挽回的损失.对于这些机器对应的开发和运维人员来说,即便是每台机器登陆一次,登陆那么多台机器也够呛,何况还需要进行系统指标的检查.因此,依靠人力是不可能完成24小时不间断监控服务器的任务的. 如今,互联网已经深入到人们生活的每个角落,可以想象一下,假如哪一天Google或者Baidu不能搜索,抑或是

Redis集群监控RedisClusterManager

RedisClusterManager监控Redis集群 环境要求:Java8+ jdk配置这里略过 RedisClusterManager 下载地址:  附件:systemMonitor-release.tar.gz 收集系统状态包  附件: RedisManager-Web-1.0.0-SNAPSHOT-beta.tar.gz redis集群管理包      1.安装systemMonitor    # tar -zxvf systemMonitor-release.tar.gz   # v

Zookeeper实现分布式集群监控

Zookeeepr实现分布式集群监控 Zookeeper中节点有两种:临时节点和永久节点 从类型上看节点又可以分为四种节点类型:PERSIST,PERSIST_SEQUENTIAL,EPHEMERAL,EPHEMERAL_SEQUENTIAL 临时节点有一个特点:当创建临时节点的程序停掉之后,这个临时节点就会消失. 监视器的特点:可以给zk中的节点注册监视器,见识这个节点的变化情况. 监视器注册一次,只能使用一次,多次使用就要多次注册. 我们利用这个Zookeeper的临时节点特性+监视器(Wa