Ganglia Ŭ·¯½ºÅÍ ¸ð´ÏÅ͸µ Åø ¼³Ä¡

ÀÛ¼ºÀÚ: ±è»ó¿Ï(sangwan@kisti.re.kr)
ÃÖÃÊ ÀÛ¼ºÀÏ: 2002-10-22

ÀÌ ¹®¼­´Â Ŭ·¯½ºÅÍ ¸ð´ÏÅ͸µ Åø·Î ¹öŬ¸®¿¡¼­ °³¹ßµÈ ganglia¸¦ ¼³Ä¡ÇÏ´Â ¹æ¹ýÀ»
¼³¸íÇÑ´Ù. ¼³Ä¡¿¡ »ç¿ëµÈ ¿î¿µÃ¼Á¦´Â RedHat 7.3À̰í, ÀÌ ¹®¼­¿¡¼­ ¼³Ä¡µÈ
ganglia ¹öÀüÀº 2.4.1ÀÌ´Ù. Âü°í·Î 2.4.1Àº 2002³â 10¿ù ÇöÀç ÃֽйöÀüÀÌ ¾Æ´Ï´Ù.
ÃֽŹöÀüÀº 2.5.0ÀÌ´Ù.

¹®¼­ ¾÷µ¥ÀÌÆ®

¸ñÂ÷
1. Ganglia ¼³Ä¡Çϱâ
  1.1. ¼Ò°³
    1) ´Ù¿î·Îµå
    2) ¸ðµâÀÇ ¿ªÇÒ
  1.2. Gmond (monitoring daemon) ¼³Ä¡
    1) ù ¹øÂ° ³ëµå¿¡ ¼³Ä¡Çϱâ
    2) gmond ¼³Ä¡È®ÀÎ
    3) ´Ù¸¥ ³ëµå·Î º¹»çÇϱâ
    4) Ganglia Cluster Status Tool (gstat) »ç¿ëÇϱâ
  1.3. Ganglia Meta Daemon (gmetad) ¼³Ä¡Çϱâ
  1.4. Ganglia Gmetad Web Frontend ¼³Ä¡
Âü°íÀÚ·á

1. Ganglia ¼³Ä¡Çϱâ [[¸ñÂ÷]] 1.1. ¼Ò°³ [[¸ñÂ÷]] Ganglia(ganglionÀÇ º¹¼ö)´Â »ý¸íüÀÇ ½Å°æÀý(ï½)À» ÀǹÌÇÏ´Â ¿µ¾î´Ü¾î·Î, Ŭ·¯½ºÅÍÀÇ »ç¿ë »óŸ¦ ¸ð´ÏÅ͸µÇØ ÁÖ´Â µµ±¸ÀÌ´Ù. UC BerkerleyÀÇ Millennium Project(http://www.millennium.berkeley.edu/)¿¡¼­ °³¹ßµÇ¾úÀ¸¸ç, Àü¼¼°èÀÇ ¿ÀÇ ¼Ò½º °øµ¿Ã¼ÀÎ SourceForge.net (http://ganglia.sourceforge.net/)¸¦ ÅëÇØ ¼Ò½ºÄڵ尡 °ø°³µÇ¾î ÀÚÀ¯·Ó°Ô »ç¿ëÇÒ ¼ö ÀÖ´Â ¼ÒÇÁÆ®¿þ¾îÀÌ´Ù. 2001³â¿¡ ÃÖÃÊ ¹öÀüÀÌ ¸±¸®Áî µÈÀÌÈÄ·Î Áö¼ÓÀûÀ¸·Î ¾÷±×·¹ÀÌµå µÇ°í ÀÖÀ¸¸ç, 2002³â 10¿ù ÇöÀç ÃֽйöÀüÀº 2.5.0 ±îÁö ¹ßÇ¥µÇ¾ú´Ù. http://ganglia.sourceforge.net/demo/ ¸¦ ¹æ¹®Çϸé Ganglia °¡ ¼³Ä¡µÇ¾î ¸ð´ÏÅ͸µ Çϰí Àִ Ŭ·¯½ºÅÍÀÇ »óŸ¦ º¼ ¼ö ÀÖ´Ù. 1) ´Ù¿î·Îµå http://ganglia.sourceforge.net/downloads.php ·Î ºÎÅÍ ÇÊ¿äÇÑ È­ÀÏÀ» ´Ù¿î ¹Þ´Â´Ù. Âü°í>> 2.5.0 ÀÌÀü ¹öÀüÀÇ °æ¿ì ganglia-monitor-core-x.x.x.tar.gz gmetad-x.x.x.tar.gz gmetad-webfrontend-x.x.x.tar.gz 3°³ÀÇ È­ÀÏ·Î ³ª´µ¾îÁ® ÀÖ¾úÀ¸³ª, 2.5.0 ¹öÀü¿¡¼­´Â ganglia-monitor-core-x.x.x.tar.gz galglia-webfrontend-x.x.x.tar.gz 2°³¸¸ ¹ÞÀ¸¸é µÈ´Ù. gmeta µ¥¸óÀÌ monitor-core ÆÐŰÁö¿¡ Æ÷ÇԵǾî ÀÖ´Ù. 2) ¸ðµâÀÇ ¿ªÇÒ Ganglia´Â ´ÙÀ½ÀÇ ¼­·Î´Ù¸¥ ±â´ÉÀ» ÇÏ´Â 3°¡Áö ¼ÒÇÁÆ®¿þ¾î·Î ±¸¼ºµÈ´Ù. - Ganglia Monitor Daemon (gmond) ¸ð´ÏÅ͸µÇϱ⸦ ¿øÇÏ´Â ¸ðµç ³ëµå¿¡ ¼³Ä¡µÇ¾î¾ß ÇÑ´Ù. ´Ù¸¥ È£½ºÆ®ÀÇ gmond µ¥¸ó¿¡ ¸ÖƼij½ºÆ® ¸Þ½ÃÁö¸¦ º¸³»¾î ÀÚ½ÅÀÇ »óŸ¦ ¾Ë¸®¸ç, ´Ù¸¥ È£½ºÆ®ÀÇ Á¤º¸¸¦ ¼öÁýÇÏ¿© ÀڽŰú ´Ù¸¥ ³ëµåÀÇ ½Ã½ºÅÛ »óŸ¦ XMLÇü½ÄÀ¸·Î ¾Ë·ÁÁØ´Ù. - Ganglia Meta Daemon (gmetad) gmond´Â °°Àº ³×Æ®¿÷»óÀÇ È£½ºÆ®¿¡°Ô¸¸ È£½ºÆ®Á¤º¸¸¦ Àü´ÞÇϱ⠶§¹®¿¡ WAN(Wide Area Network)¿¡¼­´Â ¸ÖƼij½ºÆÃÀÌ µÇÁö ¾Ê´Â´Ù. gmetad´Â WAN¿¡¼­ ¿©·¯ gmond µ¥¸óÀ¸·Î ºÎÅÍ ¼öÁýµÈ È£½ºÆ® Á¤º¸¸¦ RRD(round-robin database)¿¡ ÀúÀåÇÑ´Ù. gmetad´Â Ganglia Web Interface°¡ ¼³Ä¡µÉ À¥¼­¹ö¿¡¸¸ µ¿ÀÛÇÏ¸é µÈ´Ù. - Ganglia Web Interface À¥ ÀÎÅÍÆäÀ̽º ¸ðµâÀº PHP¾ð¾î·Î ÀÛ¼ºµÇ¾î ÀÖÀ¸¸ç PHP°¡ Áö¿øµÇ´Â À¥¼­¹ö»ó¿¡¼­ µ¿ÀÛÇÑ´Ù. gmetad¿¡ ÀÇÇØ ¼öÁýµÇ¾î RRD¿¡ ÀúÀåµÈ ½Ã½ºÅÛ Á¤º¸¸¦ ºñÁê¾óÇÏ°Ô º¸¿©ÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù. 1.2. Gmond (monitoring daemon) ¼³Ä¡ [[¸ñÂ÷]] gmond µ¥¸óÀº ½Ã½ºÅÛÀÇ »óŸ¦ ¸ð´ÏÅ͸µÇϱâ À§ÇÑ µ¥¸óÀ¸·Î Æ÷Æ®¹øÈ£ 8649¹øÀ» »ç¿ëÇϸç, ÀÌ Æ÷Æ®¸¦ ÅëÇØ Á¢¼ÓÇÏ¸é ½Ã½ºÅÛÀÇ »óŸ¦ XMLÇü½ÄÀ¸·Î Ãâ·ÂÇÏ¿© ÁØ´Ù. gmond µ¥¸óÀº ¸ð´ÏÅ͸µ ÇÏ·Á´Â ¸ðµç ³ëµå¿¡ ¼³Ä¡µÇ¾î¾ß ÇÑ´Ù. 1) ù ¹øÂ° ³ëµå¿¡ ¼³Ä¡Çϱâ gmond¸¦ óÀ½ ÇÑ °³ÀÇ ³ëµå¿¡ ¼³Ä¡ÇÏ´Â °úÁ¤Àº ´ÙÀ½°ú °°´Ù. $ tar zxvf ganglia-monitor-core-2.4.1.tar.gz $ cd ganglia-monitor-core-2.4.1 $ ./configure --help $ ./configure --prefix=/usr/local/ganglia $ make $ su root # ´ÙÀ½ °úÁ¤Àº root ±ÇÇÑÀÌ ÇÊ¿äÇÏ´Ù. # make install ½ÃÀÛ½ºÅ©¸³Æ®¸¦ µî·ÏÇÑ´Ù. # cp gmond.init /etc/rc.d/init.d/gmond # vi /etc/rc.d/init.d/gmond ... GMOND=/usr/local/ganglia/sbin/gmond ... :wq # /sbin/chkconfig --add gmond # /sbin/chkconfig --list gmond µ¥¸óÀ» ½ÃÀÛÇÑ´Ù. # /etc/rc.d/init.d/gmond start # exit 2) gmond ¼³Ä¡È®ÀÎ gmond°¡ ¼³Ä¡µÈ È£½ºÆ®¿¡ 8649 Æ÷Æ®·Î Á¢¼ÓÇÏ¸é ½Ã½ºÅÛÀÇ »óŰ¡ XML Çü½ÄÀÇ ¹®¼­·Î Ãâ·ÂµÈ´Ù. $ telnet localhost 8649 Trying 127.0.0.1... Connected to localhost.localdomain. Escape character is '^]'. <!DOCTYPE GANGLIA_XML [ <!ELEMENT GANGLIA_XML (CLUSTER)+> <!ATTLIST GANGLIA_XML VERSION CDATA #REQUIRED SOURCE CDATA #REQUIRED> <!ELEMENT CLUSTER (HOST)+> <!ATTLIST CLUSTER NAME CDATA #REQUIRED LOCALTIME CDATA #REQUIRED> <!ELEMENT HOST (METRIC)+> <!ATTLIST HOST NAME CDATA #REQUIRED IP CDATA #REQUIRED REPORTED CDATA #REQUIRED GMOND_STARTED CDATA #REQUIRED> <!ELEMENT METRIC EMPTY> <!ATTLIST METRIC NAME CDATA #REQUIRED VAL CDATA #REQUIRED TYPE (string|int8|uint8|int16|uint16| int32|uint32|float|double) #REQUIRED UNITS CDATA #IMPLIED SOURCE (gmond|gmetric) #REQUIRED> ]> <GANGLIA_XML VERSION="2.4.1" SOURCE="gmond"> <CLUSTER NAME="unspecified" LOCALTIME="1029744023"> <HOST NAME="node1001.foo.bar.com" IP="10.0.0.1" REPORTED="1029744015 " GMOND_STARTED="1029743791"> <METRIC NAME="mem_free" VAL="9740" TYPE="uint32" UNITS="KBs" SOURCE="gmond"/> <METRIC NAME="mem_cached" VAL="144300" TYPE="uint32" UNITS="KBs" SOURCE="gmond"/ > <METRIC NAME="proc_total" VAL="154" TYPE="uint32" UNITS="procs" SOURCE="gmond"/> <METRIC NAME="cpu_num" VAL="1" TYPE="uint16" UNITS="CPUs" SOURCE="gmond"/> ... <METRIC NAME="os_name" VAL="Linux" TYPE="string" UNITS="" SOURCE="gmond"/> <METRIC NAME="load_five" VAL="1.17" TYPE="float" UNITS="" SOURCE="gmond"/> <METRIC NAME="cpu_idle" VAL="0.0" TYPE="float" UNITS="%" SOURCE="gmond"/> <METRIC NAME="mem_total" VAL="255832" TYPE="uint32" UNITS="KBs" SOURCE="gmond"/> <METRIC NAME="boottime" VAL="1028607062" TYPE="uint32" UNITS="" SOURCE="gmond"/> <METRIC NAME="os_release" VAL="2.4.18-5" TYPE="string" UNITS="" SOURCE="gmond"/> </HOST> </CLUSTER> </GANGLIA_XML> Connection closed by foreign host. 3) ´Ù¸¥ ³ëµå·Î º¹»çÇϱâ ù ¹øÂ° ³ëµå¿¡ ¼³Ä¡µÈ gmond °ü·Ã ÆÄÀϵéÀ» ´Ù¸¥ Ŭ·¯½ºÅÍ ³ëµå·Î º¹»çÇÑ´Ù. $ su root # /etc/rc.d/init.d/gmond stop # µ¥¸óÀ» ÁßÁö½ÃŲ´Ù. ¼³Ä¡µÈ gmond°ü·Ã ÆÄÀϵéÀ» tar·Î ¹­´Â´Ù. # cd / # tar cvf ganglia.tar usr/local/ganglia/ etc/rc.d/init.d/gmond ¸ðµç ³ëµå¿¡ ´ëÇØ ´ÙÀ½ °úÁ¤À» ¹Ýº¹ÇÑ´Ù. # rlogin node_A # cd / # rcp node1001:/ganglia.tar . # node1001Àº À§¿¡¼­ ganglia¸¦ ¼³Ä¡ÇÑ ³ëµåÀÇ À̸§ # /etc/rc.d/init.d/gmond stop # ±âÁ¸¿¡ gmond°¡ ½ÇÇàµÇ°í ÀÖÀ» °æ¿ì µ¥¸óÀ» ¸ØÃá´Ù # tar xvf ganglia.tar # rm -f ganglia.tar # /sbin/chkconfig --add gmond # /etc/rc.d/init.d/gmond start 4) Ganglia Cluster Status Tool (gstat) »ç¿ëÇϱâ gstat´Â Ŭ·¯½ºÅÍÀÇ »óŸ¦ Äĸǵå¶óÀλ󿡼­ º¸±â À§ÇÑ µµ±¸ÀÌ´Ù. # /usr/local/ganglia/bin/gstat --help # /usr/local/ganglia/bin/gstat -a # ¸ðµç ³ëµåÀÇ »óŸ¦ Ãâ·ÂÇÑ´Ù CLUSTER INFORMATION Name: unspecified Hosts: 2 Gexec Hosts: 1 Dead Hosts: 0 Localtime: Mon Aug 19 17:20:09 2002 CLUSTER HOSTS Hostname LOAD CPU Gexec CPUs (Procs/Total) [ 1, 5, 15min] [ User, Nice, System, Idle] node1002.foo.bar.com 1 ( 1/ 60) [ 0.88, 0.00, 0.00] [ 38.8, 0.0, 61.2, 0.0] OFF node1001.foo.bar.com 1 ( 2/ 154) [ 0.94, 0.76, 0.80] [ 36.8, 0.0, 63.2, 0.0] ON 1.3. Ganglia Meta Daemon (gmetad) ¼³Ä¡Çϱâ [[¸ñÂ÷]] gmetad´Â À¥ÇÁ·ÐÆ®¿£µå¸¦ ¼³Ä¡ÇϱâÀ§ÇØ ÇÊ¿äÇϸç expat, rrdtool, XML-Parser ÆÞ¿ë ¸ðµâÀÌ Æ÷ÇԵǾî ÀÖ´Ù. µû¶ó¼­ À¥¼­¹ö°¡ ¼³Ä¡µÉ ÇÑ °³ÀÇ ³ëµå¿¡¸¸ ¼³Ä¡ÇØ ÁÖ¸é µÈ´Ù. gmetad¶ó´Â µ¥¸óÀ¸·Î µ¿ÀÛÇϸç 8651 Æ÷Æ®¸¦ »ç¿ëÇϸç perl·Î ÀÛ¼ºµÇ¾î ÀÖ´Ù. Âü°í>> ¹öÀü 2.5.0¿¡¼­ gmetad°¡ monitor-core·Î Æ÷ÇԵǸ鼭 ÀÛ¼º ¾ð¾î°¡ perl¿¡¼­ C·Î ¹Ù²î¾ú´Ù. monitoring-core ¼³Ä¡½Ã ´ÙÀ½°ú °°ÀÌ --with-gmetad ¿É¼ÇÀ» ÁÖ¾î configure Çϸé gmetad µ¥¸óÀÌ »ý¼ºµÈ´Ù. CFLAGS=-I/usr/local/rrdtool/include LDFLAGS=-L/usr/local/rrdtool/lib \ ./configure --prefix=/usr/local/ganglia --with-gmetad # tar zxvf gmetad-0.1.1.tar.gz # cd gmetad-0.1.1 # ./configure --prefix=/usr/local/gmetad # make # make install # vi /usr/local/gmetad/etc/gmetad_sources node1001 node1001.foo.bar.com 8649 node1002 node1002.foo.bar.com 8649 ... :wq µ¥¸óÀ» ½ÃÀÛÇÑ´Ù. # /usr/local/gmetad/sbin/gmetad These hosts are being trusted... 127.0.0.1 # ps -ax | grep gmetad 25540 ? S 0:00 /usr/bin/perl -Tw /usr/local/gmetad/sbin/gmetad 25542 ? S 0:46 /usr/bin/perl -Tw /usr/local/gmetad/sbin/gmetad # telnet localhost 8651 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <!DOCTYPE GANGLIA_XML [ <!ELEMENT GANGLIA_XML (CLUSTER)+> <!ATTLIST GANGLIA_XML VERSION CDATA #REQUIRED SOURCE CDATA #REQUIRED> <!ELEMENT CLUSTER (HOST)+> <!ATTLIST CLUSTER NAME CDATA #REQUIRED LOCALTIME CDATA #REQUIRED> <!ELEMENT HOST (METRIC)+> <!ATTLIST HOST NAME CDATA #REQUIRED IP CDATA #REQUIRED REPORTED CDATA #REQUIRED GMOND_STARTED CDATA #REQUIRED> <!ELEMENT METRIC EMPTY> <!ATTLIST METRIC NAME CDATA #REQUIRED VAL CDATA #REQUIRED TYPE (string|int8|uint8|int16|uint16| int32|uint32|float|double) #REQUIRED UNITS CDATA #IMPLIED SOURCE (gmond|gmetric) #REQUIRED> ]> <GANGLIA_XML VERSION="0.1.1" SOURCE="gmetad"> <CLUSTER NAME="unspecified" LOCALTIME="1029821383"> <HOST NAME="node1001.foo.bar.com" IP="10.0.0.1" REPORTED="1029821378 " GMOND_STARTED="1029745034"> <METRIC NAME="cpu_speed" VAL="2000" TYPE="uint32" UNITS="MHz" SOURCE="gmond"/> <METRIC NAME="cpu_user" VAL="37.0" TYPE="float" UNITS="%" SOURCE="gmond"/> ... <METRIC NAME="cpu_system" VAL="63.0" TYPE="float" UNITS="%" SOURCE="gmond"/> <METRIC NAME="swap_free" VAL="995184" TYPE="uint32" UNITS="KBs" SOURCE="gmond"/> </HOST> <HOST NAME="node1002.foo.bar.com" IP="10.0.0.2" REPORTED="1029821375 " GMOND_STARTED="1029744366"> <METRIC NAME="cpu_speed" VAL="2000" TYPE="uint32" UNITS="MHz" SOURCE="gmond"/> <METRIC NAME="cpu_user" VAL="39.8" TYPE="float" UNITS="%" SOURCE="gmond"/> ... <METRIC NAME="swap_free" VAL="1052248" TYPE="uint32" UNITS="KBs" SOURCE="gmond"/ > </HOST> </CLUSTER> </GANGLIA_XML> Connection closed by foreign host. 1.4. Ganglia Gmetad Web Frontend ¼³Ä¡ [[¸ñÂ÷]] À¥ ÇÁ·ÐÆ®¿£µå´Â PHP¾ð¾î·Î ÀÛ¼ºµÇ¾î ÀÖÀ¸¹Ç·Î PHP°¡ Áö¿øµÇ´Â À¥¼­¹ö¿¡ ¼³Ä¡µÇ¾î¾ß ÇÑ´Ù. À¥¹®¼­ µð·ºÅ丮¿¡ Ç®¾îÁÖ°í, ¸î°¡Áö ¼³Á¤¸¸ ÇÏ¸é µÇ¹Ç·Î ¼³Ä¡°¡ °£´ÜÇÏ´Ù. # cd /usr/local/apache/htdocs # tar zxvf gmetad-webfrontend-0.1.1.tar.gz # mv gmetad-webfrontend ganglia # cd ganglia # vi conf.php ... $gmetad_root = "/usr/local/gmetad"; ... define("RRDTOOL", "/usr/local/rrdtool/bin/rrdtool"); ... :wq Âü°íÀÚ·á [[¸ñÂ÷]] 1. Ganglia Toolkit Documentation http://ganglia.sourceforge.net/ganglia_docs/single_page.html -EOF- Ganglia Ŭ·¯½ºÅÍ ¸ð´ÏÅ͸µ Åø ¼³Ä¡ [[TOP]]