文章目录
分布式监控系统ganglia
1.简介:
ganglia是一款为HPC(高性能计算)集群而设计的可扩展的分布式监控系统,
它可以监控和显示集群中cpu,内存,磁盘利用率,i/o负载,网络流量等情况
优点:良好的扩展性,负载开销低,支持高并发。广泛支持各种操作系统和cpu架构,
支持虚拟机
2.组成:
gmond:用于收集本节点的信息并发送到其他节点,同时也接收其他节点发送过来的数据,
默认端口为8649
gmetad:运行在一个数据汇聚节点,定期检查配置的节点的gmond进程,并从哪里获取数据,
然后将数据 存储在本地rrd引擎中
webfrontend:基于web的图形化监控界面,和gmetad安装在一个节点上,读取数据,
并通过rrdtool生成图表
3.工作原理
node:单台服务器
cluster:一个服务器集群
grid:表示一个网格,由多个集群组成
4.数据走向:
gmond:收集本地的监控数据,发送到其他机器上。他们之间用udp协议通信,
文件格式为xdl,传输方式支持单播点对点和多播传送
gmetad:周期性的到gmond节点或gmetad节点上获取数据。用tcp协议通信,
文件格式为xml,将获取到的数据更新到rrds数据库中
通过web界面,从gmetad取数据,并且读取rrds数据库,生成图片显示出来
5.工作模式:单播和多播,默认采用多播
单播:监控节点发送本机数据到指定的一台或几台机器上,单播可以跨越不同的网段
多播:监控节点发送本机数据到同意网段内的所有机器上,同时也接收同一网段内
所有机器发过来的监控数据。
6. 优势及注意事项
1、可以轻松监控上万台服务器,数据延时在10s 以内。
2、分布式架构,扩展方面,非常适合多地跨机房部署。
3、与centrenon无缝整合,实现监控、报警一体化。
4、数据存储磁盘lO可能成为瓶颈,需要高性能磁盘做支撑。
搭建ganglia
1 防火墙的状态
#关闭防火墙
service iptables stop
chkconfig iptables off
or use
systemctl stop firewalld(关闭)
systemctl disable firealld(开机禁止启动)
#查看状态
service iptables status
or use
systemctl status firewalld
2 关闭selinux
sestatus 查看运行状态
如果是运行状态,编辑 vi /etc/selinux/config
修改该属性 SELINUX=disabled然后重启即可。
上面是永久生效的方法,还有一种是立即生效 运行getenforce 0(我没有运行成功)
3 相关配置文件说明
ganglia 配置文件目录:/etc/ganglia
ganglia-gmond文件目录: /etc/ganglia/gmond.conf
ganglia-gmetad文件目录:/etc/ganglia/gmetad.conf
rrd 数据库存放目录:/var/lib/ganglia/rrds
httpd 主站点目录:/var/www/html
ganglia-web 安装目录:/usr/share/ganglia
ganglia-web 配置目录:/etc/httpd/conf.d/ganglia.conf
4. yum安装
1 检查ganglia相关包是否存在
rpm -qa |grep ganglia
or use
yum list
yum list installed
如果没有,运行下面代码更新资源
安装epel yum源
yum -y install epel-release
或者:
rpm -Uvh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
5. 安装gmond(每个节点都要安装)
在每个需要监控的节点,安装gmond
yum install ganglia-gmond
配置/etc/ganglia/gmond.conf文件
vim /etc/ganglia/gmond.conf
具体修改:
1. global-->user-->ganglia(随便起一个名字)
2. sent_metadata_interval = 10(数据轮询时间)
3. cluster-->name-->"集群的名字"
4. Udp_send_channel区域修改如下,注释掉mcasy_jion(用于组播),
我们这里采用单播, 默认ip替换成机器的名称(ip)--->host = (master ip)
5. Udp_recv_channe修改,注释掉mcast_join以及bind即可
启动gmond
systemctl start gmond.service
6. 安装gmetad(只有主节点需要)
安装 yum install ganglia-gmetad
7. 配置
vim /etc/ganglia/gmetad.conf
找到data_source,第一个参数hadoop-cluster和gmond.conf的cluster的name必须一样,
第二个参数和 upd_send_channel中的host 一样,当然可以有很多个,这里配置了一个,
结合配置的环境。
启动:gmetad
systemctl start gmetad.service
8. 安装gweb(只需要主节点)
安装yum install ganglia-web
修改ganglia-web 的访问权限(注释掉其他)
加入Allow from all
Require all granted
vim /etc/httpd/conf.d/ganglia.conf
9. 安装apache服务器以及php(下面只需主节点安装)
1)安装 apache以及php
yum install httpd php
10. 修改文件所属组,以及链接数据
(1)将ganglia-web 安装目录链接到httpd 主站点目录(apache服务器访问的根目录)
ln -s /usr/share/ganglia /var/www/html
(2)修改httpd 主站点目录下ganglia 站点目录的访问权限
将ganglia 站点目录访问权限改为apache:apache,否则会报错
chown -R apache:apache /var/www/html/ganglia
chmod -R 755 /var/www/html/ganglia
(3)修改rrd 数据库存放目录访问权限
(如果gmond.conf中的user属性设置为其他的,则将nobody换成相应的username)
将rrd 数据库存放目录访问权限改为nobody:nobody,否则会报错
chown -R nobody:nobody /var/lib/ganglia/rrds
11. 启动访问
依次启动gmond,gmetad,httpd
访问hostname/ganglia即可(这里的hostname是安装gweb以及gmetad的主机名或者ip)
弦外之音:
(1)ganglia的配置文件十分重要,不能够随便更改配置,你觉得的无关紧要,可能就会导致整个集群不能被监控
(2)而且主要,在输入系统命令的时候,一定注意自己的命令不要敲错,就像单词的顺序等等。有时错误的命令会得到 像配置错误
一样的错误,这样会产生严重的误导。
(3)注意Linux–>centos系统版本
centos6.x操作服务的命令一般为 service start firewalld 格式
centos7.x操作服务的命令一般为 systemctl start httpd.service