Ganglia是一款优秀的监控软件,能够监控节点级别以及组件级别的监控,并且与Nagios配合可以做到监控提示的发送通知功能。

Ganliga安装

预先安装配置

## 服务器端
yum install -y rrdtool epel-release ganglia-devel ganglia-gmetad ganglia-gmond ganglia-web httpd php
## 客户端
yum install -y ganglia-gmond epel-release

Ganglia配置

  1. Gmetad配置
  2. Gmond配置
  3. Httpd相关配置

启动服务

### Server端
service gmond start
service gmetad start 
service httpd start

## Client端
service gmond start

Ganglia-Hadoop配置

  默认Hadoop支持Ganglia元数据收集,所以只需要配置起来,即可使用Ganglia查看Hadoop集群的相关数据。

## 在hadoop-metrics2.properties中添加一下配置
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=10
datanode.sink.ganglia.servers=ganglia-server:8649

Ganglia-Spark编译使用

  因为需要通过Ganglia监控Spark的相关数据,而Spark的licence与Ganglia用到的组件不同,所以在原生的Spark中,不支持Ganglia监控的支持。所以好多公开资料,都是自行编译带有Ganglia的版本。
  因此,本文作者自行编译Spark版本的Spark软件。

./make-distribution.sh \
--tgz \
-Psparkr \
-Pyarn \
-Phadoop-2.6 \
-Dhadoop.version=2.6.0-cdh5.12.1 \
-Phive \
-DskipTests \
-Phive-thriftserver \
-Pspark-ganglia-lgpl \
-Dscala-2.10.7 \
clean package

编译过程可能会遇到未预期错误,具体问题具体分析。

Ganglia-Kafka安装使用

  Ganglia针对Kafka的支持是基于Ganglia API的实现:(https://github.com/Xinshiyou/kafka-ganglia)。

一般配置步骤如下

  1. 编译开源软件kafka-ganglia
  2. 将JAR包:kafka-ganglia-1.0.0.jar, metrics-ganglia-2.2.0.jar复制到Kafka响应的kafka libs下
  3. 针对Kafka添加配置,在kafka.properties中
    kafka.metrics.reporters=com.criteo.kafka.KafkaGangliaMetricsReporter,kafka.metrics.KafkaCSVMetricsReporter
    kafka.ganglia.metrics.reporter.enabled=true
  4. 重启Kafka服务,使之生效。

  这样操作可能会是CDH-Kafka中,失去controller角色引起其他问题[未做详细测试]。