Ganglia分布式监控部署1、Ganglia介绍2、Ganglia安装和配置3、修改相应的配置文件4、结果展示5、权限问题解决方法

一、介绍

Ganglia是由UC Berkeley发起的一个开源监控项目,设计用于监控数以千几的节点。每台服务器都运行一个收集和发送监控数据名为gmond的守护进程。它将从操作系统和指定主机中收集。接收所有监控数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中。正因为有这种层次架构模式,使ganglia可以实现良好的扩展。Gmond带来的系统负载非常小,这使得它成为集群中各个服务器上运行一段代码而不会影响用户性能。

Ganglia主要用来监控系统性能的软件,通过曲线很容易见到每个节点的工作状态,对合理调整,分配系统资源,提高系统整体性能起到重要作用,支持浏览器方式访问,但不能监控节点硬件技术指标。Ganglia是分布式的监控系统。

Ganglia的组件:
Ganglia包括如下程序,它们之间通过xml格式传递监控数据。
服务端ganglia meta daemon(gmetad):负责收集各个cluster的数据,并更新到rrd数据库中
客户端ganglia monitoring daemon(gmond):收集本机的监控数据,发送到其他服务器上,收集其他服务器的监控数据,供gmetad读取。
基于web的动态访问方式ganglia PHP web Frontend:一个基于web的监控界面,需要和gmetad安装在同一个节点上,从gmetad取数据,并且读取rrd数据库,生成图片显示。

Ganglia工作模式:

Ganglia收集数据可以工作在单播或多播模式下,默认为多播模式

单播:发送自己收集到的监控数据到特定的一台或几台服务器上,可以跨网段。

多播:发送自己收集到的监控数据到同一网段所有的服务器上,同时收集同一网段的所有服务器发送过来的监控数据。因为是以广播包的形式发送,因此需要在同一网段内,但同一网段内,又可以定义不同的发送通道。

Sensu监控部署_ci

二、ganglia的安装和配置:

在安装之前,首先需要解决的是依赖问题;

[root@admin01 ~]#  yum -y install rrdtool perl-rrdtool rrdtool-devel
[root@admin01 ~]#  yum -y install apr-devel

至于其他依赖,遇到报错可百度安装即可,上述依赖是在安装时必须需要提前安装的。
为ganglia下载提供安装的环境,

[root@admin01 ~]#  rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
1.安装httpd服务与php
[root@admin01 ~]#  yum -y install httpd php
2.安装gmond
[root@admin01 ~]# yum install -y ganglia-gmond
3.安装gmond
[root@admin01 ~]# yum install -y ganglia-gmetad
4.安装gweb
[root@admin01 ~]# yum  install -y ganglia-web
三、修改配置文件信息
1.修改ganglia.conf
[root@admin01 ~]#  vi /etc/httpd/conf.d/ganglia.conf
## 修改为:
#
# Ganglia monitoring system php web frontend
#
Alias /ganglia /usr/share/ganglia
<Location /ganglia>
 Order deny,allow
 Deny from all
 Allow from all
 # Allow from 127.0.0.1
 # Allow from ::1
 # Allow from .example.com
</Location>
2.修改httpd.conf
[root@admin01 ~]# vi /etc/httpd/conf/httpd.conf

<Directory />
    Options FollowSymLinks
    AllowOverride None
    # 添加
    Order deny,allow
    allow from all
</Directory>
3.修改gmetad.conf
[root@admin01 ~]# vi /etc/ganglia/gmetad.conf
## 主节点为
data_source "admin01" 192.168.47.101
data_source "admin02" 192.168.47.102
data_source "admin03" 192.168.47.103
gridname "admin"
##从节点1
data_source "admin02" 192.168.47.102
## 从节点2
data_source "admin03" 192.168.47.103

即 data_source “主机名” ip

4.修改gmond.conf
# vi /etc/ganglia/gmond.conf
修改为:
cluster {
 name = "admin01"  # 修改为节点的主机名
 owner = "unspecified"
 latlong = "unspecified"
 url = "unspecified"
}
udp_send_channel {
 #bind_hostname = yes # Highly recommended, soon to be default.
 # This option tells gmond to use a source address
 # that resolves to the machine's hostname. Without
 # this, the metrics may appear to come from any
 # interface and the DNS names associated with
 # those IPs will be used to create the RRDs.
 # mcast_join = 239.2.11.71 # 注释原文件
 host = 192.168.47.101  #修改为每个节点的ip
 port = 8649
 ttl = 1
}
udp_recv_channel {
 # mcast_join = 239.2.11.71  # 注释原文件
 port = 8649
 bind = 192.168.47.101 #修改为每个节点的ip
 retry_bind = true
 # Size of the UDP buffer. If you are handling lots of metrics you really
 # should bump it up to e.g. 10MB or even higher.
 # buffer = 10485760
}
5.启动ganglia

每台机器上启动

[root@admin01 ~]#  service httpd start
[root@admin01 ~]#  service gmetad start
[root@admin01 ~]#  service gmond start

设置开机自动启动:

[root@admin01 ~]#  chkconfig httpd on
[root@admin01 ~]#  chkconfig gmetad on
[root@admin01 ~]#  chkconfig  gmond on
6.修改config
# vi /etc/selinux/config
修改为:
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled #此处修改为
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

selinux本次生效关闭必须重启,如果此时不想重启,可以临时生效之:

$ sudo setenforce 0
四、结果如下所示:

访问方式为:http://ip/ganglia

Sensu监控部署_ci_02


Sensu监控部署_Ganglia监控_03


Sensu监控部署_数据_04

五、可能遇到的错误
1.web页面上显示权限不足

如果完成以上操作依然出现权限不足错误,请修改/var/lib/ganglia目录的权限:

$ sudo chmod -R 777 /var/lib/ganglia