저번엔 쉽게쉽게 됐었는데 이번엔 apt-get으로 설치하는데 많이 애를 먹었다 = =)
설치 해봅시당!

OS : Ubuntu 13.04 / 3.8.0-33-generic
       CentOS 6.4 / 2.6.32

1. Introduction

  Ganglia는 모니터링 툴로 해당 노드의 CPU, Memory, Network등의 사용량을 그래프로 나타내 준다.
  총 3개로 나눠볼 수 있다.

- gmond : 상태를 직접 모니터링하는 데몬, 각 노드에 설치해서 gmetad가 설치된 곳으로 현재 상태를 전송한다.

- gmetad : gmond에서 보내온 데이터를 모아 볼 수 있게 수집한다.

- gnaglia-webfrontend : gmetad를 설치한 곳에서 gmond를 통해 수집한 데이터를 웹을 통해 볼 수 있게 한다.


2. Base

1) Ubuntu
- apache + php
(아래는 apt-get과 yum으로 ganglia설치 할 때 의존성에 의해 같이 설치되므로 생략 가능)
- rrdtool
- libganglia1

3. Ganglia

1) Install

Ganglia meta daemon을 둘 노드 한곳과 나머지 노드를 구분하여 설치한다.
모니터링만 할 노드에는 ganglia-monitor(ganglia, gmond)만 설치하면 된다

- Ubuntu
$ apt-get install ganglia-monitor, gmetad, ganglia-webfrontend

- CentOS
 rpmforge repository 추가
$ rpm -ivh http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.i686.rpm
$ yum install ganglia ganglia-gmetad ganglia-gmond ganglia-web

설치 중 아파치 재시작을 물어온다. 재시작 두번~
자동으로 실행된 서비스들을 내리자. 나는 스크립트가 뭔가 이상한지 start/stop이 안된다. 일단 내리자.

$ service ganglia-monitor(gmond) stop
$ service gmetad stop

2) Configuration

(1) Ganglia Meta Daemon

$ vi /etc/ganglia/gmetad.conf

data_source "Cluster" node1:8649 node2:8649 ....
....

gridname "Hadoop"
...

Ganglia는 rrdtool을 사용해서 각종 metrics를 표현해준다. 따라서 gmetad가 설치된 노드에 rrdtool을 저장할 곳의 권한이 있어야 한다.
기본값은 /var/lib/ganglia/rrdtool 인듯

(2) Ganglia Monitoring Daemon

$ vi /etc/ganglia/gmond.conf

globals {
...

user = input_user_who_use_ganglia"
...

}

cluster {
    name = "Hadoop"
    ownder = "input_user_who_use_ganglia"

}

udp_send_channel {
    host = node1
    port = 8649
    ttl = 1
}

udp_recv_channel {
    port = 8649
}

...

/* 이 아래에는 각 metric에 대해 time threshold를 수정하는 변수값들이 있다. */

- CentOS를 위한 자동 실행 설정
$ chkconfig gmond on
chkconfig gmetad on

(3) Firewall

$ vi /etc/sysconfig/iptables
    -A INPUT -m udp -p udp --dport 8649 -j ACCEPT
    -A INPUT -m udp -p tcp --dport 8649 -j ACCEPT
$ service iptables restart

(4) Hadoop-Ganglia 

hadoop관련 metrics설정 (for hadoop-2.2.0)
$ vi  /where_hadoop_located/etc/hadoop-metrics2.properties

*.sink.file.class=org.apache.hadoop.metrics2.sink.FileSink
*.sink.ganglia.class=org.apache.hadoop.metrics2.sink.ganglia.GangliaSink31
*.sink.ganglia.period=10

namenode.sink.ganglia.servers=name.mdms:8649
datanode.sink.ganglia.servers=name.mdms:8649
jobtracker.sink.ganglia.servers=name.mdms:8649
tasktracker.sink.ganglia.servers=name.mdms:8649
maptask.sink.ganglia.servers=name.mdms:8649
reducetask.sink.ganglia.servers=name.mdms:8649  


+ Recent posts