Linux下的监控器之一Ganglia详解与部署
来源:互联网 发布:网络攻防实验系统 编辑:程序博客网 时间:2024/05/21 15:48
Ganglia基础详解
Ganglia介绍
Ganglia是一个跨平台可扩展的,高性能计算系统下的分布式监控系统,如集群和网格。它是基于分层设计,它使用广泛的技术,如XML数据代表,便携数据传输,RRDtool用于数据存储和可视化。它利用精心设计的数据结构和算法实现每节点间并发非常低的。它已移植到广泛的操作系统和处理器架构上,目前在世界各地成千上万的集群正在使用。
Ganglia特点
- 具有良好的扩展性,分层架构使用与大规模服务器集群的架构
- 负载开销低,支持高并发
- 广泛支持各种操作系统
Ganglia组成
Ganglia框架有gmond,gmated和webfronted进程组成:
gmond:是运行在被监控节点的守护进程,负责采集本节点的上数据,同时也接受替他节点上发送过来的数据,默认监听在8649。
gmated:运行在监控节点上的守护进程,负责定期检查每个gmond进程并从哪里获取数据,然后将数据存储在本地的RRD存储引擎中。
webfronted:使用php写成的web图形化界面,功能从gmetad获取数据并且读出数据库,通过rrdtool工具生成图表,通过http协议显示在终端上。
Ganglia的工作模型
node:监控单个服务器
一台主机运行gmond进程,另一台主机运行gmetad进程进行数据采集。
cluster:监控一个集群
主机A,B,C,D,E模型一: 主机A,B,C,D作为被监控端,运行gmont进程。 主机E作为监控端运行gmetad进程。模型二: 主机A,B,C:被监控端 主机D:运行gmont进程,负责采集A,B,C传送的数据,最终将数据传送给监控节点。 主机E:监控节点模型三: 如见下图:
grid:监控一个网格,由多个集群服务组成
Ganglia之间的通信
gmond<–>gmond:采用UDP通信协议,并以文件格式为XDL的格式进行发送。
gmond<–>gmetad:采用TCP通信协议,并以文件格式为XML的形式进行传送。
gmetad<–>gmetad:采用TCP通信协议,并以文件格式为XML的形式进行传送。
- 通常采用单播和多播进行通信
gmond与gmond之间以多播的方式行通信(默认)。gmond向外发送数据,相邻的gmond主机也会收到数据。
Ganglia的部署
部署结构
主机 IP 作用 Clone1 192.168.80.129 监控 Clone2 192.168.80.130 被监控
监控端部署
gmetad安装:
提前安装confuse,rrdtoolyum源安装: [root@Clone1 ~]# yum install ganglia-gmetad ganglia-web编译安装gmetad: [root@Clone1 ~]# wget https://jaist.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.7.2/ganglia-3.7.2.tar.gz [root@Clone1 ~]# tar -xzf ganglia-3.7.2.tar.gz [root@Clone1 ~]# cd ganglia-3.7.2 [root@Clone1 ganglia-3.7.2]# ./configure --prefix=/usr/local/ganglia --with-static-modules --enable-gexec --enable-status --with-gmetad --with-libexpat --with-libconfuse=/usr/local/confuse --with-libpcre --with-librrd=/usr/local/rrtdool --htmldir=/var/www/html/gangia [root@Clone1 ganglia-3.7.2]# make && make install
gmetad配置:
1. 在安装包文件中找到gmetad.init文件 2. 将此文件复制到/etc/rc.d/init.d/gmetad [root@Clone1 gmetad]# cp gmetad.init /etc/rc.d/init.d/gmetad 3. 编辑/etc/rc.d/init.d/gmetad,设置GMSTA=/usr/local/ganglia/sbin/gmetad 4. 添加多播地址 [root@Clone1 sbin]# ip route add 239.2.11.71 dev eth0 5. 编辑配置文件 data_source "Ganglia" 192.168.80.130 //定义集群的名称,以及集群的节点 gridname "MyGrid" //定义一个网格名称,网格中的服务器集群由data_source定义 xml_port 8651 //定义一个接受数据的端口,默认伪8651 interactive_port 8652 //此参数定义web端获取数据的端口, rrd_rootdir "/var/lib/ganglia/rrds" //rrd数据库的存放路径,默认伪/var/lib/ganglia/rrds
ganglia-web配置:
1. yum源安装: [root@Clone1 ~]# yum install ganglia-web [root@Clone1 ~]# cp /usr/share/ganglia/* /var/www/html/ 2. 编译安装: [root@Clone1 ~]# git clone https://github.com/ganglia/ganglia-web.git [root@Clone1 ~]# cd ganglia-web/ [root@Clone1 ganglia-web]# cp -rv * /var/www/html/ganglia/ [root@Clone1 ganglia]# mv conf_default.php.in conf_default.php 3. 编辑conf_default.php $conf['gmetad_root'] = "/var/lib/ganglia"; //ganglia-gmetad安装目录 $conf['gweb_root'] . "/version.php"; //genglia的web根目录 $conf['rrds'] = "${conf['gmetad_root']}/rrds"; //web读物rrd数据库的路径 $conf['dwoo_compiled_dir'] = "${conf['gweb_confdir']}/dwoo/compiled"; //需要777权限 $conf['dwoo_cache_dir'] = "${conf['gweb_confdir']}/dwoo/cache"; //需要777权限 $conf['rrdtool'] = "/usr/local/rrtdool/bin/rrdtool"; //指定rrdtool的路径 $conf['graphdir']= $conf['gweb_root'] . '/graph.d'; //生成图成模板目录 $conf['ganglia_ip'] = "127.0.0.1"; //gmetad服务器的地址 $conf['ganglia_port'] = 8652; //提供监控数据端口 4. 改变rrd库的权限为777 5. 创建/var/www/html/ganglia/dwoo/下comiled目录和cache目录,并赋予可写权限
被监控端部署
gmond安装:
前提安装confuse 1. yum安装: [root@Clone2 ~]# yum install ganglia-gmond 2. 编译安装: [root@Clone1 ~]# wget https://jaist.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.7.2/ganglia-3.7.2.tar.gz [root@Clone1 ~]# tar -xzf ganglia-3.7.2.tar.gz [root@Clone1 ~]# cd ganglia-3.7.2 [root@Clone2 confuse-2.5]# ./configure --prefix=/usr/local/ganglia --enable-gexec --enable-status --with-libconfuse=/usr/local/confuse --with-expat=/usr --with-libpcre=/usr [root@Clone2 confuse-2.5]# make && make install
gmond配置:
1. cp启动文件 [root@Clone2 gmond]# cp gmond.init /etc/rc.d/init.d/gmond 2. 编译启动文件/etc/rc.d/init.d/gmond: GMSTA=/usr/local/ganglia/sbin/gmond 3. 配置多播地址: [root@Clone2 ganglia-3.7.2]# ip route add 239.2.11.71 dev eth0 4. 生成配置文件: [root@Clone3 gmond]# ./gmond -t > /etc/ganglia/gmond.conf [root@Clone3 gmond]# ./gmond -t > /usr/local/ganglia/etc/gmond.conf
gmond配置文件:
gmond的配置文件分为Gloabl,cluster,host,协议配置四部分组成第一部分:globals { daemonize = yes //是否后台运行 setuid = yes //是否设置用户运行 user = nobody //运行程序的用户 debug_level = 0 //调试级别 max_udp_msg_len = 1472 //最大UDP队列长度 mute = no //是否将采集到的数据广播到其他节点 deaf = no //是否接受其他节点发送过来的数据 allow_extra_data = yes //允许额外数据 host_dmax = 86400 //是否删除一个节点,0表示永不删除,非0表示不响应时间,超过这个时间系统会刷新集群节点,从而删除此节点 host_tmax = 20 // cleanup_threshold = 300 //清理过期数据的时间 gexec = no //是否使用gexec来告知主机是否可用 send_metadata_interval = 0 //在单播通信中,新添加的节点多长时间表示一下自己的存在,0表示启动时通知。}第二部分:定义主机在集群中的信息cluster { name = "my cluster" //集群名称,要与监控端data_source其中一项匹配 owner = "unspecified" //节点拥有者 latlong = "unspecified" //节点的坐标,一般不用指定 url = "unspecified" //节点的URL,一般不用指定} 第三部分:定义主机host { location = "unspecified" //节点的物理位置,一般不用指定}第四部分:协议配置udp_send_channel { //udp发送通道 mcast_join = 239.2.11.71 //指定发送的多播地址,单播模式下,为host_ip,可以定义多个udp_send_channel port = 8649 //监听的端口 ttl = 1}udp_recv_channel { //udp接受通道 mcast_join = 239.2.11.71 //指定接受的多播地址 port = 8649 //监听的端口 bind = 239.2.11.71 //绑定地址 retry_bind = true}tcp_accept_channel { port = 8649 gzip_output = no}
结果
- Linux下的监控器之一Ganglia详解与部署
- Yum下ganglia的安装与配置
- Linux下安装ganglia
- Unbuntu下Ganglia监控安装及部署
- Linux下jdk与tomecat的部署
- Linux下Tuxedo的安装与部署
- Linux下redmine的部署与搭建
- linux下redis的安装与部署
- Linux下Redis的安装与部署
- Linux下Tomcat的安装与部署
- CentOS 5.3 下ganglia的安装、配置与测试
- CentOS 5.3 下ganglia的安装、配置与测试
- linux下SVN安装与部署/读取/密码/用户详解
- Linux下Solr4.10.4搜索引擎的安装与部署图文详解
- Linux下文件夹部署详解
- Ganglia监控Hadoop集群的安装部署
- 用Saltstack部署ganglia的客户端gmond
- Ganglia监控Hadoop集群的安装部署
- Java IO的基础操作书目录
- pooling层是如何反向传播的?
- Layer 弹层插件注意事项
- js中对数组中的数据进行去重操作
- ES6/ES2015核心内容
- Linux下的监控器之一Ganglia详解与部署
- E
- Git[一]:分支(Branch)操作
- 文件输出时,string和字符数组的区别.以及二进制模式和文本模式
- [绍棠_Swift] Swift3.0中如何获取Info.plist文件信息
- 2015.08.17 Ubuntu 14.04+cuda 7.5+caffe安装配置
- openlayers 离线地图 瓦片
- 虚拟现实的技术特点
- 几种常用的排序算法(二)--python实现