Ganglia分布式监控部署
一、介绍
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收集数据可以工作在单播或多播模式下,默认为多播模式
单播:发送自己收集到的监控数据到特定的一台或几台服务器上,可以跨网段。
多播:发送自己收集到的监控数据到同一网段所有的服务器上,同时收集同一网段的所有服务器发送过来的监控数据。因为是以广播包的形式发送,因此需要在同一网段内,但同一网段内,又可以定义不同的发送通道。
二、ganglia的安装和配置:
在安装之前,首先需要解决的是依赖问题;
[aaa@qq.com ~]# yum -y install rrdtool perl-rrdtool rrdtool-devel
[aaa@qq.com ~]# yum -y install apr-devel
至于其他依赖,遇到报错可百度安装即可,上述依赖是在安装时必须需要提前安装的。
为ganglia下载提供安装的环境,
[aaa@qq.com ~]# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
1.安装httpd服务与php
[aaa@qq.com ~]# yum -y install httpd php
2.安装gmond
[aaa@qq.com ~]# yum install -y ganglia-gmond
3.安装gmond
[aaa@qq.com ~]# yum install -y ganglia-gmetad
4.安装gweb
[aaa@qq.com ~]# yum install -y ganglia-web
三、修改配置文件信息
1.修改ganglia.conf
[aaa@qq.com ~]# 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
[aaa@qq.com ~]# vi /etc/httpd/conf/httpd.conf
<Directory />
Options FollowSymLinks
AllowOverride None
# 添加
Order deny,allow
allow from all
</Directory>
3.修改gmetad.conf
[aaa@qq.com ~]# 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
每台机器上启动
[aaa@qq.com ~]# service httpd start
[aaa@qq.com ~]# service gmetad start
[aaa@qq.com ~]# service gmond start
设置开机自动启动:
[aaa@qq.com ~]# chkconfig httpd on
[aaa@qq.com ~]# chkconfig gmetad on
[aaa@qq.com ~]# 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
六、可能遇到的错误
1.web页面上显示权限不足
如果完成以上操作依然出现权限不足错误,请修改/var/lib/ganglia目录的权限:
$ sudo chmod -R 777 /var/lib/ganglia
上一篇: 设计模式——状态模式
下一篇: 状态模式
推荐阅读
-
springboot 打包部署 共享依赖包(分布式开发集中式部署微服务)
-
springboot 打包部署 共享依赖包(分布式开发集中式部署微服务)
-
mongodb分布式部署(mongodb三种部署方式)
-
mongodb分布式部署(mongodb三种部署方式)
-
Linux工具之Nethogs按进程监控网络带宽的安装部署
-
基于SkyWalking的分布式跟踪系统 - 微服务监控
-
MYSQL 5.6 从库复制的部署和监控的实现
-
详解基于docker 如何部署surging分布式微服务引擎
-
OpenStack与ZStack深度对比:架构、部署、计算存储与网络、运维监控等
-
使用Zookeeper分布式部署PHP应用程序