3.1 Ganglia
▪ UC Berkerley의 millennium projects에서 개발
▪ "SourceForge.net"을 통해 소스코드가 공개되어 자유롭게 사용할 수 있는 소프트웨어
▪ 산 모니터링 시스템 또는 클러스터의 상태를 모니터링할 수 있는 소프트웨어
: 메모리, CPU, 디스크, 네트워크 사용량을 포함하여 약 200여개 이상의 메트릭 정보를 모니터링할 수 있음.
클러스터의 사용상태를 모니터해주는 도구로써, 클래스터 내의 노드들로부터 여러가지 성능지표들을 모니터링하여 종합관제할 수 있는 기능들을 제공한다.
3.1.0 기본적인 Ganglia의 구조 및 구성 요소
(a) Ganglia의 구조
(b) Ganglia의 구성 요소: Gmond, gmetad, ganglia web interfaces
Ganglia Monitor Daemon (gmond) |
▪ 모니터링을 원하는 노드에 설치 ▪ gmond 데몬은 노드의 정보를 수집 후, 수집된 노드의 정보를 gmetad에게 XML 형식으로 전송함 ▪ 일반적으로 포트번호 8649를 사용함 |
Ganglia Meta Daemon (gmetad) |
▪ gmetad는 ganglia web interface가 설치될 웹서버에 설치 ▪ 여러 gmond 데몬들으로부터 수집된 정보를 RRD*(round-robin-database)에 저장함 ▪ 일반적으로 포트번호 8651을 사용함 ▪ gmetad가 작성된 언어는 perl이지만, v. 2.5.0. 이후부터는 C로 사용함 |
Ganglia web interfaces | ▪ gmetad로부터 수집되어 RRD에 저장된 데이터를 PHP가 지원되는 웹서버에서 보여주는 역할을 함 |
* RRD: Ganglia에서 시계열에 따른 데이터를 저장하거나 시각화 시키는 것에 사용되는 툴로써, 마스터 서버에 설치된다
3.1.1. 마스터 서버-Ganglia 설치
$ apt-get install ganglia-monitor -y
$ apt-get install rrdtool -y
$ apt-get install gmetad -y
$ apt-get install ganglia-webfrontend -y
3.1.2. 마스터 서버-Ganglia를 위한 환경설정
$ cp /etc/ganglia-webfrontend/apache.conf /etc/apache2/sites-enabled/ganglia.conf
$ vim /etc/ganglia/gmetad.conf
…
data_source “my cluster” localhost
…
$ vim /etc/ganglia/gmond.conf
...
udp_send_channel {
host = 192.168.0.1 // put into IP address of master server
port = 8649 // basic port of ganglia
ttl = 1
}
/* You can specify as many udp_recv_channels as you like as well. */
udp_recv_channel {
port = 8649
}
...
3.1.3. 마스터 서버-Ganglia 서버 재시작
$ service ganglia-monitor restart
$ service gmetad restart
$ service apache2 restart
여기까지 하면, 외부 컴퓨터로 http://<마스터서버의 ip주소>/ganglia
를 입력하면 CMT Cluster의 마스터 서버의 Cpu load등을 알 수 있다. 하지만, 계산 노드들은 ganglia가 설치되지 않은 상태이므로, 계산노드들에 대한 정보는 아직 나오지 않는다.
3.1.4. 계산 노드-ganglia-monitor 설치
Masquerade가 정상적으로 작동되는 경우, ssh로 계산노드에 접속하여 계산 노드에서도 설치가 가능하지만, 그것보다는 chroot를 이용하여 설치하는 것이 더 간편하다. 마스터 서버 상에서 chroot 명령어를 이용하여, 작업하는 마스터 서버의 루트디렉토리를 /computation_node/nfsroot
로 변경하자. 그 후, 계산노드를 위한 ganglia-monitor를 설치한다
$ chroot /computation_node/nfsroot
$ apt-get install ganglia-monitor -y
3.1.5. 계산 노드-Ganglia 환경설정
$ exit
$ vim /computation_node/nfsroot/etc/ganglia/gmond.conf
…
cluster {
name = "my cluster"
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 {
host = 192.168.0.1
port = 8649
ttl = 1
}
…
3.1.6 계산노드-Ganglia 재시작 (ssh로 계산노드 접속 후)
$ service ganglia-monitor restart
여기까지하면, http://<마스터서버의 ip주소>/ganglia
에서 계산노드들의 정보를 확인할 수 있다
a) Ganglia와 관련된 이슈 1: ganglia 웹 페이지 비밀번호 설정
만약 ganglia 웹페이지에 ID/passwd를 설정하고자 한다면 아래와 같이 하면 된다.
/etc/apache2/site-enables/ganglia.conf
을 아래와 같이 수정한다.
$vim /etc/apache2/site-enables/ganglia.conf
Alias /ganglia /usr/share/ganglia-webfrontend
<Directory "/usr/share/ganglia-webfrontend">
AllowOverride All
AuthType basic
AuthName "Gangila web UI"
AuthBasicProvider file
AuthUserFile "/etc/apache2/site-enables/auth.basic"
Require user admin_ganglia
</Directory>
- 여기에서 나는 해당 웹페이지로 접근하고자 하는 ID를 admin_ganglia로 설정하였다.
그 후, 아래와 같은 명령어를 입력하므로써, admin_ganglia의 비밀번호를 지정한다.
$htpasswd -c /etc/apach2/site-enables/auth.basic cmt_admin_ganglia
그 후, ganglia 웹 페이지에 접속할 때에, Passwd 및 ID를 묻게 된다.
a) Ganglia와 관련된 이슈 2: default overview가 보이지 않을 때
간혹, ganglia를 정상적으로 설치를 했는데도 ganglia의 첫페이지의 cluster의 overview가 보이지 않을 때가 있다. 이럴 경우, 아래와 같이 /usr/share/ganglia-webfrontend/cluster_view.php
파일을 수정하면 된다 [1].
함수 get_picker_metrics()
의 $context_metrics = "";
을 $context_metrics = array();
로 대체한다.
c) Ganglia와 관련된 이슈 3: gmod 데몬이 CPU를 100% 잡아먹을 경우
계산 서버의 /etc/ganglia/gmod.conf 파일에서 deaf=no를 deaf=yes로 변경한다 [2].
[1] aws.amazon.com/premiumsupport/knowledge-center/ganglia-overview-page-blank-emr/
[2] https://adamo.wordpress.com/2015/05/27/gmond-occupying-100-of-the-cpu/
'컴퓨터 & IT (Computer & IT) > Beowulf Cluster (Diskless Cluster)' 카테고리의 다른 글
[Diskless Cluster] 5. 기타 (0) | 2020.06.02 |
---|---|
[Diskless Cluster] 3.2 클러스터 운영과 관련된 필수 유틸리티들 - Torque/Slurm (0) | 2020.06.02 |
[Diskless Cluster] 2.2 계산 서버 – 계산서버의 네트워크 문제 (0) | 2020.06.02 |
[Diskless Cluster] 2.1 계산 서버 – 계산서버의 루트디렉토리 만들기 (3) | 2020.06.02 |
[Diskless Cluster] 1.3. 마스터 서버 – NFS 서버 설정 (0) | 2020.06.02 |
댓글