ganglia 一站式部署
1 ganglia集群监测系统简介
1.1 ganglia简介
ganglia是一款为HPC(高性能计算) 集群设计的可扩展性 的分布式监控系统,它可以监视和显示集群中节点的各种状态信息,他由运行在各个节点上的gmond守护进程来采集 CPU、内存、磁盘利用率、I/O负载、网络流量情况等方面的数据。然后汇总到gmetad守护进程下,使用rrdtool存储数据,然后将历史数据以曲线方式通过PHP页面呈现。(如下图)
Ganglia 核心组件由 gmond ;gmetad;gweb三个组成
Gmond:类似于传统监控系统中的代理,需要安装在每台主机上,负责和操作系统交互以获得需要关注的指标数据。
Gmetad:主要作用就是整合所有信息。
Gweb:可视化工具。显示ganglia收集的主机各项指标。
1.2 Ganglia系统运作原理说明
集群数据拓扑图
说明:
1:一个gmetad 可以会收集到下节点的gmond所采集的各个节点信息【绿色部分】。(单集群多节点原理)
2:单个gmond也满足收集下节点的gmond所采集的各个节点信息【浅蓝色部分】,那么一个gmetad也可以同时获取多个集群环境数据信息了。(多集群多节点原理)
2 ganglia系统安装部署
2.1 环境配置及说明
2.1.1 部署系统版本:centos7.3.1611 x86_64
镜像文件名称:
镜像文件下载地址:
http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso
2.1.2 防火墙配置
查看系统当前防火墙状态 systemctl status firewalld.service
这里我们需要将防火墙关闭
关闭当前防火墙 systemctl stop firewalld.service
查看一下当前防火墙状态systemctl status firewalld.service
禁止防火墙开机启动 systemctl disable firewalld.service
查看一下当前防火墙状态systemctl status firewalld.service
2.1.3
Selinux配置
禁止selinux 服务
[root@localhost
~]# vim /etc/selinux/config
这里需要重启才能生效,
临时关闭方法:
[root@localhost
~]# setenforce 0
#无需重启关闭selinux
2.2
主节点部署
2.2.1
在线安装依赖软件组包(推荐)
由于gmetad , gmond 组件依赖很多软件,缺失或版本对应不上会导致各类问题,比较头疼。所以强烈建议在线安装相关依赖软件的最新版本。
依赖包组在线下载
[root@localhost
~]#yum -y install apr-devel apr-util check-devel cairo-devel pango-devel
libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel
gcc gcc-c++ expat-devel python-devel libXrender-devel
[root@localhost
~]# yum install -y libart_lgpl-devel pcre-devel libtool
[root@localhost
~]# yum install -y libart_lgpl-devel pcre-devel libtool
2.2.2
安装gmetad,gmond
先要制作一个最简单的epel第三方yum安装配置:
[root@localhost
~]# vi /etc/yum.repos.d/epel.repo
加入以下信息 保存退出
[epel]
name=CentOS-$releasever - Epel
baseurl=http://dl.fedoraproject.org/pub/epel/$releasever/$basearch/
gpgcheck=0
保存退出
[root@localhost
~]#yum install libconfuse libconfuse-devel –y
下载最新ganglia组件安装包
[root@localhost
~]# cd /mnt/
[root@localhostmnt]#wget
https://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/3.7.2/ganglia-3.7.2.tar.gz
查看当前目录
[root@localhost
mnt]# tar zxf ganglia-3.7.2.tar.gz
[root@localhost
mnt]# cd ganglia-3.7.2/
[root@localhost
ganglia-3.7.2]# rpmbuild -tb
/mnt/ganglia-3.7.2.tar.gz
# -tb表示从tar包中build二进制文件
[root@localhost
ganglia-3.7.2]# cd /root/rpmbuild/RPMS/x86_64/
[root@localhost
ganglia-3.7.2]# ll
[root@localhost
x86_64]# rpm -ivh /root/rpmbuild/RPMS/x86_64/*
2.2.3
安装gweb
[root@localhost
x86_64]# yum install httpd httpd-devel php –y
[root@localhost
x86_64]# yum -y install rsync
[root@localhost
x86_64]# cd /mnt/
[root@localhostmnt]#wget
https://sourceforge.net/projects/ganglia/files/ganglia-web/3.7.2/ganglia-web-3.7.2.tar.gz
[root@localhost
mnt]# tar zxf /mnt/ganglia-web-3.7.2.tar.gz -C /var/www/html/
[root@localhost
mnt]# cd /var/www/html/
[root@localhost
html]# mv ganglia-web-3.7.2 ganglia
[root@localhost
html]# cd /var/www/html/ganglia /
[root@localhost
ganglia-web-3.7.2]# make install
2.2.4 启动各个服务调试主节点
启动gmond 服务
[root@localhost
ganglia-web-3.7.2]# systemctl restart gmond.service
[root@localhost
ganglia-web-3.7.2]# systemctl status gmond.service
启动gmetad 服务
[root@localhost
ganglia-web-3.7.2]# systemctl restart gmetad.service
[root@localhost
ganglia-web-3.7.2]# systemctl status gmetad.service
启动gweb 服务
[root@localhost
ganglia-web-3.7.2]# systemctl restart httpd.service
[root@localhost
ganglia-web-3.7.2]# systemctl status httpd.service
这里提示未正确配置
解决方法如下:
一、将ganglia-web 生成一个软链接
[root@localhost
~]# ln -s /var/lib/ganglia
/var/lib/ganglia-web
二、将软链接目录下创建 compiled ; cache 两个目录
[root@localhost
~]# mkdir -p /var/lib/ganglia-web/ /{compiled,cache} –p
三、赋予ganglia目录 apache 用户权限,保证httpd服务可以访问ganglia
[root@localhost
~]# chown -R apache:apache /var/lib/ganglia
四、赋予ganglia-web目录
apache 用户权限,保证httpd服务可以访问ganglia
[root@localhost
ganglia]# chown -R apache:apache /var/lib/ganglia-web/*
五、修改gmetad.conf配置文件
由于gmetad默认配置文件访问本地路径为localhost ;经查阅发现, gmetad服务启动后会无法识别localhost 或者 127.0.0.1 ,且默认用户为nobaby ;这里我们需要做下更改配置。
[root@localhost
default]# vi /etc/ganglia/gmetad.conf
将“localhost” 修改为 本地机的IP 如:192.168.1.25
将默认用户取消注释,“nobaby” 用户统一修改为“apache”
保存退出
六、重启各个服务
systemctl
restart gmond.service
systemctl
restart gmetad.service
systemctl
restart httpd.service
再次访问http://192.168.1.25/ganglia
这里我们就可以看到主节点对本机的图形化监测数据了。
2.3
子节点部署
子节点同样需关闭系统防火墙及selinux服务;具体操作参考 环境配置及说明
2.3.1
在线安装依赖软件组包(推荐)
gmond依赖软件下载
[root@localhost
~]# yum -y install apr-devel apr-util check-devel cairo-devel pango-devel
libxml2-devel rpm-build glib2-devel dbus-devel freetype-devel fontconfig-devel
gcc gcc-c++ expat-devel python-devel libXrender-devel
制作一个最简单的epel第三方yum安装配置:
[root@localhost
~]# vi /etc/yum.repos.d/epel.repo
加入以下信息 保存退出
[epel]
name=CentOS-$releasever - Epel
baseurl=http://dl.fedoraproject.org/pub/epel/$releasever/$basearch/
gpgcheck=0
[root@localhost
~]# yum install libconfuse libconfuse-devel –y
2.3.2
客户端安装包一键安装
节点软件目录:
将节点部署包上传至节点系统上 /root/jiedian 目录下
创建存放目录
[root@localhost
~]# mkdir -p /root/jiedian
上传安装包
客户端安装包一键全部安装
[root@localhost
jiedian]# rpm -ivh *.rpm
节点安装部署就已经完成,我们进入下一步的配置工作
3
Ganglia系统配置
3.1
Ganglia配置说明
Ganglia的收集数据工作可以工作在单播(unicast)或多播(multicast)模式下,默认为多播模式。
单播:发送自己收集到的监控数据到特定的一台或几台机器上,可以跨网段。
多播:发送自己收集到的监控数据到同一网段内所有的机器上,同时收集同一网段内的所有机器发送过来的监控数据。因为是以广播包的形式发送,因此需要同一网段内。但同一网段内,又可以定义不同的发送通道。
3.2
单播配置
单播模式下,Ganglia需要向每台服务器均发送一次轮询请求,这样的话,集群数量多了,主服务器光发送就会占用不小的带宽。但是单播模式也有其好处,在服务器分组,或跨网段的情况下,必须用单播模式。
3.2.1
单个集群多节点配置
网络拓扑图
ü 主节点配置
主节点gmetad服务配置
[root@localhost
default]# vi /etc/ganglia/gmetad.conf
在启动各个服务调试主节点 章节中我们已经做了一些配置:
1 : data_source "my
cluster" 192.168.1.25 //localhost 改了部署主节点服务的IP
2: setuid_username
"apache" // 取消了改行注释;将默认的nobaby 用户改为apache 便于httpd服务访问ganglia
这里重点讲解一下 data_source "my cluster"
192.168.1.25
data_source属性是gmetad配置的核心。每一行data_source描述一个gmetad收集信息的gmond集群或gmetad网格。
"my cluster"为唯一标识,指定所属集群名称
192.168.1.25主节点IP; 为去哪个节点的哪个端口去收集这个集群的gmond汇聚数据,多主机间用空格隔开。定义多主机的话,如果第一个从第一个主机上没有收集到数据就会去第二个主机上收集。如:data_source "my cluster" 192.168.1.20 192.168.1.25
端口号未自定义时默认为8649;这里未填写默认就是8649。
这里我们配置一套 集群名为 test 的单集群多节点,同时检测192.168.1.20;192.168.1.169;192.168.1.160;192.168.1.71 等子节点
data_source
"test" 192.168.1.20
主节点gmond服务配置
[root@localhost
default]# vi /etc/ganglia/ gmond.conf
ü 子节点配置
子节点服务配置gmetad服务配置;如192.168.1.169
[root@localhost
default]# vi /etc/ganglia/ gmond.conf
同样的方法配置其他子节点gmond 服务
ü 启动服务调试
启动各个子节点gmond服务
systemctl
restart gmond.service
启动主节点gmond;gmetad.;httpd服务
systemctl restart gmond.service
systemctl restart
gmetad.service
systemctl restart
httpd.service
访问 主节点IP/ganglia
3.2.2
多个集群多节点配置
ü 网络拓扑图
ü 主节点配置
vi
/etc/ganglia/gmetad.conf
同时检测两个集群 test ; zheng2
这里我们可以看到监测来源 一个是 192.168.1.20 ;另一个是 192.168.1.25
ü 子集群配置
根据前面的配置,我们只需要配置单个子集节点zheng2集群192.168.1.25,将192.168.1.25上的数据统一传给192.168.1.20即可,这样在192.168.1.20上也可以看到192.168.1.25集群上的所有数据。
进入192.168.1.25服务器配置gmond.conf文件
[root@localhost
default]# vi /etc/ganglia/ gmond.conf
ü 启动服务调试
启动子集群主节点IP:192.168.1.25 gmond服务
systemctl
restart gmond.service
启动主节点IP:192.168.1.20 gmond;gmetad.;httpd服务
systemctl
restart gmond.service
systemctl
restart gmetad.service
systemctl
restart httpd.service
分别查看各个集群内子节点
Test集群
Zheng2集群
3.3
组(多,广)播配置
Ganglia默认采用组播模式(多播模式)进行数据请求。gmetad发送一个请求到一个组播地址(239.2.11.71),由于是组播地址,所以gmetad只需发送一次请求包即可完成对所有gmond的轮询。gmond收到请求后将采集到的数据返回给gmetad。
由于ganglia默认安装时就是组播状态;主节点与子节点配置起来也相对比较简单
默认安装后gmond.conf文件
网络拓扑图
ü 主节点配置
主节点IP:192.168.1.20
[root@localhost
ganglia]# vi /etc/ganglia/gmetad.conf
[root@localhost
default]# vi /etc/ganglia/gmetad.conf
这里有最重要的一步:将239.2.11.71加到主节点组播的本地路由上,便可以采集到所有的节点信息
查看一下当前使用的网卡
[root@localhost
ganglia]# ifconfig
执行
[root@localhost
ganglia]# ip route add 239.2.11.71 dev ens32
ü 子节点配置
子节点IP:192.168.1.25
[root@localhost
default]# vi /etc/ganglia/gmetad.conf
ü 启动服务调试
启动192.168.1.25子节点gmond服务
systemctl
restart gmond.service
启动192.168.1.20主节点gmond;gmetad.;httpd服务
systemctl restart
gmond.service
systemctl restart
gmetad.service
systemctl restart
httpd.service
访问 主节点192.168.1.20/ganglia
这里发现广播配置下集群名称未能有效区分。这里将192.168.1.25子节点也归类到了主节点所定义的集群中
4
Ganglia系统设置开机自启
4.1
主节点配置
[root@localhost
jiedian]# vi /etc/rc.d/rc.local
加入以下信息
systemctl
restart gmond.service >> /root/jiedian/gmond.log
systemctl
restart gmetad.service >> /root/jiedian/gmetad.log
systemctl
restart httpd.service >> /root/jiedian/httpd.log
保存退出
4.2
子节点或集群主节点配置
[root@localhost
jiedian]# vi /etc/rc.d/rc.local
加入以下信息
systemctl
restart gmond.service >> /root/jiedian/gmond.log
保存退出
5
FAQ
5.1
Ganglia-web访问,目标节点采集不到信息
查看目标监测节点防火墙,selinux服务是否已关闭
解决方法参考 防火墙配置
ganglia 一站式部署的更多相关文章
- 高可用Hadoop平台-Ganglia安装部署
1.概述 最近,有朋友私密我,Hadoop有什么好的监控工具,其实,Hadoop的监控工具还是蛮多的.今天给大家分享一个老牌监控工具Ganglia,这个在企业用的也算是比较多的,Hadoop对它的兼容 ...
- 基于Ubuntu18.04一站式部署(python-mysql-redis-nginx)
基于Ubuntu18.04一站式部署 Python3.6.8的安装 1. 安装依赖 ~$ sudo apt install openssl* zlib* 2. 安装python3.6.8(个人建议从官 ...
- ganglia监控部署
1.ganglia组件 ganglia 相比于falcon和zabbix主要在于集群的状态集中显示,可以很便捷的对比各主机的性能状态. gmond:相当于是agent端,主要用于收集各node的性能状 ...
- CentOS下ganglia监控部署
第一步:CentOS环境准备 1.yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel ...
- Rio手把手教学:如何打造容器化应用程序的一站式部署体验
11月19日,业界应用最为广泛的Kubernetes管理平台创建者Rancher Labs(以下简称Rancher)宣布Rio发布了beta版本,这是基于Kubernetes的应用程序部署引擎.它于今 ...
- ganglia 客户端部署
#!/bin/bash #配置参数 #serverIP=192.168.1.16 #network=ens32 #关闭selinux #setenforce #sed -i 's/SELINUX=en ...
- Github+Hexo一站式部署个人博客(原创)
写在前面 注:博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 本文源链接:https://www.cnblogs.com/chloneda/p/hexo.ht ...
- iNeuOS工业互联网操作系统部署在华为欧拉(openEuler)国产系统,vmware、openEuler、postgresql、netcore、nginx、ineuos一站式部署
目 录 1. 概述... 3 2. 创建虚拟机&安装华为欧拉(openEuler)系统... 4 2.1 创建新的虚拟机... 4 2.2 ...
- Docker:Swarm + Stack 一站式部署容器集群
参考1 参考2 1.注意docker的版本,yum默认安装的版本比较低,可能出现 unsupported Compose file version: 3.7 docker版本升级 2.docker-c ...
随机推荐
- FRP代理及其在数据库安全上的实践
1 代理 现如今的互联网世界里,代理服务已经十分常见,它通常作为一个第三方或者说中转站角色替代用户取得信息或者服务. 根据代理对象的不同,代理服务可以分为正向代理和反向代理. 1.1 正向代理 我们通 ...
- Okhttp 请求流程梳理
最近在看 Okhttp 的源码.不得不说源码设计的很巧妙,从中能学到很多.其实网上关于 Okhttp 的文章已经很多了,自己也看了很多.但是俗话说得好,好记性不如烂笔头,当你动手的时候,你会发现你在看 ...
- 【C#多线程】2.线程池简述+两种传统的异步模式
线程池简述+两种传统的异步编程模式 1.线程池简述 首先我们要明确一点,编程中讲的线程与平时我们形容CPU几核几线程中的线程是不一样的,CPU线程是指逻辑处理器,比如4核8线程,讲的是这个cpu有8个 ...
- .NET项目中实现多工程文件共用的方法
一处开发,多处同步编辑使用,并且发布时各个项目均可独立 一.直接编辑项目工程文件 .csproj 具体实现为:编辑 .csproj 文件,在<ItemGroup>中添加新的 <Con ...
- Jenkins 2.60.x 2种发送邮件方式
1.1 默认发邮件的配置方式 1.1.1 系统级别 邮件配置 1.1.2 项目级别 邮件配置 测试构建失败是否会发邮件: 控制台输出:提示已发送邮件给项目配置指定的两个邮箱地址. 1.1.2.1 查 ...
- C++学习笔记6_字符串
1. C语言的字符串,char * s = "aaaa"; #include<string> class Test{ public : Test(int a, char ...
- 真正的打包scrapy单文件(不包含cfg)
前置:https://www.cnblogs.com/luocodes/p/11827850.html 解决最后一个问题,如何将scrapy真正的打包成单文件 耗了一晚上时间,今天突然有灵感了 错误分 ...
- 使用Typescript重构axios(三十)——添加axios.getUri方法
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
- 基于c/s架构的远程登陆服务的步骤。
1:上/下位机安装相应的服务程序.(确保内核支持该服务)2:上位机(作为服务器端)配置能够给下位机访问目录的所在地,及其读写权限.3:在/dev目录下创建该服务其所需要使用的虚拟文件设备,同时按照该服 ...
- win10 visual studio 2017环境中安装CUDA8
从https://developer.nvidia.com/cuda-toolkit-archive下载CUDA 8 安装 从https://developer.nvidia.com/gamework ...