1. Ganglia란?
Ganglia는 클러스터의 사용 상태를 모니터해 주는 도구입니다. Hadoop Cluster 모니터링에 매우 유용한 오픈 소스 모니터링 툴 중에 하나이며, Cluster내 노드들로 부터 성능지표들을 모니터링하고 종합 관제 할 수 있는 기능을 제공합니다. 메모리, CPU, 디스크, 네트워크 사용량 뿐만 아니라 몇 가지 설치/설정만으로 Hadoop에서 dfs, mapred 와 관련된 200여개 이상의 Hadoop 성능지표를 제공하여 줍니다.
Ganglia는 모니터링하는 gmond(Ganglia Monitor Daemon)과 모니터링 웹 UI를 제공하는 데몬인 gmetad (Ganglia Meta Daemon)이 있습니다. 2.5버전 이전에는 해당 데몬들을 따로 설치했어야 했으나, 2.5 버전 이후에 ganglia monitoring core로 합쳐지면서 같이 설치할 수 있게 되었습니다. 웹 모니터링의 경우 php를 4.0 이상 버전을 설치를 해주셔야 페이지를 확인 할 수 있습니다.
설치는 CentOS 7, Apache 2.4, PHP 7.0, ganglia 3.7 버전에서 진행하였습니다.
2. Ganglia 설치
2–1. 필요 라이브러리 설치
yum install -y epel-release libpng-devel libpng libart_lgpl-devel python-devel libconfuse-devel pcre-devel expat-devel rrdtool-devel rrdtool
2–2. ganglia 설치
wget https://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/3.7.2/ganglia-3.7.2.tar.gz tar zxvf ganglia-3.7.2.tar.gz cd /usr/local/ganglia/sbin chkconfig gmond on |
위 명령어들을 통해 설치를 완료하게 되면 기본 포트인 8649포트를 열어주고 gmond와 gmetad를 실행해주면 되겠습니다.
설치 후 데몬이 잘 작동 되는지 확인할 수 있는 방법은 telnet으로 8649 포트로 접근해보는 것이다. 접근하여 성공하게 되면 xml 형식의 모니터링을 받아볼 수 있다.
2–3. ganglia web 설치
웹 상에서 모니터링 페이지를 띄우기 위해선 ganglia-web이라는 페이지 소스가 필요합니다. 해당 소스 역시 sourceforge에서 ganglia-monitoring-core와 같이 지속적으로 갱신 되고 있습니다.
wget https://sourceforge.net/projects/ganglia/files/ganglia-web/3.7.2/ganglia-web-3.7.2.tar.gz tar zxvf ganglia-web-3.7.2.tar.gz |
압축 해제 후 나오는 ganglia-web-3.7.2 디렉토리를 모니터링이 보이기 원하는 위치에 넣어 웹페이지를 띄우시면 되겠습니다. 저는 apache 소스 설치 후 기본 root 디렉토리인 /usr/local/apache/htdocs에 넣어서 진행하도록 하겠습니다.
mv ganglia-web-3.7.2 /usr/local/apache/htdocs/ganglia-web |
우선 여기까지만 진행 후 웹페이지를 띄워보도록 하겠습니다.
띄우게 되면 해당 에러메세지를 마주하게 될 것입니다. 내용을 보면 /usr/local/ganglia/rrds 디렉토리를 읽을수가 없고, /usr/local/apache/htdocs/ganglia-web/dwoo/compiled 및 cache 디렉토리에 쓸 수가 없다 라고 나오고 있습니다. 해당 문제 해결을 위해 rrds 디렉토리는 해당 경로에 생성, compiled 및 cache 디렉토리는 해당 위치에 생성 후 쓰기권한까지 주도록 합시다. 참고로 dwoo 디렉토리는 아래 내용이 있으나 디렉토리 하단에 compiled 및 cache 디렉토리가 없으므로 두 디렉토리 모두 생성 후 권한을 주는 것이 좋습니다.
mv ganglia-web-3.7.2 /usr/local/apache/htdocs/ganglia-web |
위 작업 이후 다시 웹페이지를 보면,
위와 같이 정상적인 페이지가 보이게 됩니다.