ganglia的官方文档没找到,试了很多教程,终于配置成功,不过还有一点小问题没有解决
安装依赖软件apache,php,rrdtool
ganglia需要使用apache服务,rrd服务,php服务,这里安装的是最新的php7.0
sudo apt-get install rrdtool apache2 php
注意:此时是无法解析PHP网页的,因为没有安装apache php module
安装apache2 php7 module
sudo apt-get install libapache2-mod-php7.0
安装ganglia
//安装过程中会重启apache,选择yes
sudo apt-get install ganglia-monitor gmetad ganglia-webfrontend
ganglia组件介绍
ganglia 监控套件包括三个主要部分:gmond,gmetad,和网页接口,通常被称为ganglia-web。
gmond :是一个守护进程,他运行在每一个需要监测的节点上,收集监测统计,发送和接受在同一个组播或单播通道上的统计信息 如果他是一个发送者(mute=no)他会收集基本指标,比如系统负载(load_one),CPU利用率。如果他是一个接收者,他会聚合所有从别的主机上发来的指标,并把它们都保存在内存缓冲区中。
gmetad:也是一个守护进程,他定期检查gmonds,从那里拉取数据,并将他们的指标存储在RRD存储引擎中。他可以查询多个集群并聚合指标,他也被用于生成用户界面的web前端。
ganglia-web :安装在有gmetad运行的机器上,以便读取RRD文件。集群是主机和度量数据的逻辑分组,比如数据库服务器,网页服务器,生产,测试,QA等,他们都是完全分开的,你需要为每个集群运行单独的gmond实例。一般来说每个集群需要一个接收的gmond,每个网站需要一个gmetad。
修改配置文件/etc/ganglia/gmetad.conf和gmond.conf
配置gmetad.conf
找到下列配置项,并修改
data_source “hadoop-cluster” fang-acer
gridname “Fang”
case_sensitive_hostnames 1
data_source 中”hadooop-cluster”为集群名称,后面跟着集群节点ip或主机名,默认host端口为8649
data_source后多个节点使用空格分隔
gridname为网格名称,一个网格包含多个集群
设置对主机名大小写不敏感,如果不设置可能遇到大写的主机名出现访问错误配置gmond.conf(每个节点配置一样)
在配置文件中找到下列配置项,并修改
cluster {
name = “fang-cluster”//为gmetad.conf中设置的集群名称
owner = “unspecified”
latlong = “unspecified”
url = “unspecified”
}
/* Feel free to specify as many udp_send_channels as you like. Gmond used to only support having a single channel */
udp_send_channel {
#mcast_join = 239.2.11.71
host = fang-acer//gmetad服务的节点
port = 8649
ttl = 1
}/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
#mcast_join = 239.2.11.71
port = 8649
bind = fang-acer//gmetad服务的节点
retry_bind = true
}配置apache web服务
需要将ganglia的web配置复制到apache配置中,以便能够访问ganglia web页面
sudo cp /etc/ganglia-webfrontend/apache.conf /etc/apache2/sites-enabled/ganglia.conf
启动ganglia
//启动gmond
sudo service ganglia-monitor start
//启动gmetad
sudo service gmetad start
//重启apache
sudo service apache2 restart
或者
sudo /etc/init.d/ganglia-monitor start
sudo /etc/init.d/gmetad start
sudo /etc/init.d/apache2 restart
监控界面
此时监控cpu,disk,memeory,network等
监控hadoop
需要修改安装目录hadoop-2.7.2/etc/hadoop下的配置文件 hadoop-metrics2.properties
添加如下内容(每个节点配置一样):
namenode.sink.ganglia.servers=fang-acer:8649
resourcemanager.sink.ganglia.servers=fang-acer:8649
datanode.sink.ganglia.servers=fang-acer:8649
nodemanager.sink.ganglia.servers=fang-acer:8649
mrappmaster.sink.ganglia.servers=fang-acer:8649
监控内容多出dfs,yarn等内容
监控HBase
需要修改HBase安装目录conf下的hadoop-metrics2-hbase.properties
添加如下内容(每个节点配置一样):
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=10
hbase.sink.ganglia.period=10
hbase.sink.ganglia.servers=fang-acer:8649
监控内容多出master,regionsever等内容
监控Spark
需要修改Spark安装目录下conf中的metrics.properties
添加如下内容(每个节点配置一样):
master.source.jvm.class=org.apache.spark.metrics.source.JvmSource
worker.source.jvm.class=org.apache.spark.metrics.source.JvmSource
driver.source.jvm.class=org.apache.spark.metrics.source.JvmSource
executor.source.jvm.class=org.apache.spark.metrics.source.JvmSource
*.sink.ganglia.class=org.apache.spark.metrics.sink.GangliaSink
*.sink.ganglia.host=fang-acer
*.sink.ganglia.port=8649
*.sink.ganglia.period=10
*.sink.ganglia.unit=seconds
*.sink.ganglia.ttl=1
*.sink.ganglia.mode=unicase
*.sink.ganglia.name=unspecified
安装过程中遇到的问题
- 无法访问ganglia web服务
有可能是apache无法解析php页面,检查apache能不能正常访问和解析php
有可能apache找不到ganglia web应用,尝试将ganglia的文件链接到apache的默认目录下
sudo ln -s /usr/share/ganglia-webfrontend /var/www/ganglia
然后再 - 根目录空间不足,页面加载异常
由于web监控信息默认保存在文件夹在/var/lib/ganglia/rrds中,可能撑爆根目录,可以定期清理或者转移 ganglia web页面中job页面加载异常,未能发现原因
ganglia 主页面加载异常,节点数异常,可能是无法监控到节点,重启节点中的gmond服务
注:配置hadoop,hbase,spark之后需要重启服务
the end