開源監控軟體ganglia安裝手冊

thamsyangsw發表於2014-03-28

Ganglia是一個監控伺服器,叢集的開源軟體,能夠用曲線圖表現最近一個小時,最近一天,最近一週,最近一月,最近一年的伺服器或者叢集的cpu負載,記憶體,網路,硬碟等指標。

Ganglia的強大在於:ganglia服務端能夠通過一臺客戶端收集到同一個網段的所有客戶端的資料,ganglia叢集服務端能夠通過一臺服務端收集到它下屬的所有客戶端資料。這個體系設計表示一臺伺服器能夠通過不同的分層能夠管理上萬臺機器。這個功能是其他mrtg,nagios,cacti所不能比擬。

Ganglia的擴充套件外掛非常好寫,無論用何種語言(shell,php,pyton)都可以寫,只要把最終結果傳給gmetric就可以,這樣在web上就可以看到對應的資料。

0.           準備

最新的ganglia版本為3.2.0,但是我推薦安裝ganglia3.0.3,因為這個版本安裝比較簡單,依賴包只有rrdtool。而新版本依賴包太多。

官方網站:http://ganglia.info

ganglia的下載地址 http://sourceforge.net/projects/ganglia

windows版windows客戶端版和ganglia 源包:

:http://www.sajinet.com.pe/ganglia/

 

http://sourceforge.net/project/showfiles.php?group_id=43021&package_id=35280
ganglia的安裝分為服務端和客戶端和web端安裝

文件幫助: http://ganglia.sourceforge.net/docs/

1)     服務端依賴包

Ganglia裡的gmetad

Rrdtool(這個依賴很多包,ganglia對於rrdtool的版本不敏感,最好選擇比較好安裝的版本安裝)

2)     客戶端
ganglia裡的gmond

3)     Web端:

Apache,php,rrdtool,php-gd(可不用裝,不裝的話只是看不到一張餅圖,不影響使用)

 1.服務端安裝 gmetad)

   服務端的服務為gmetad,安裝前需要先安裝RRDTool(資料庫和繪圖工具,服務端收集的客戶端資訊由其來儲存),因為要繪製曲線圖,所以安裝RRDTool前,還必須安裝好libpng,freetype,zlib這些庫(也是php的gd庫需要的),下載地址http://www.rrdtool.org/ 。

安裝完了RRDTool,就可以安裝gmetad了


點選(此處)摺疊或開啟

  1. tar –zxvf ganglia3.0.3.tar.gz
  2. cd ganglia3.0.3

  3. ./configure CFLAGS="-I/usr/local/rrdtool-1.0.50/include" CPPFLAGS="-I/usr/local/rrdtool-1.0.50/include" LDFLAGS="-L/usr/local/rrdtool-1.0.50/lib" --with-gmetad --enable-gexec
  4. make

  5. make install
將gmetad.init檔案拷貝到 /etc/init.d/:


點選(此處)摺疊或開啟

  1. cd ganglia-3.0.3/gmetad
  2. cp gmetad.init /etc/init.d/gmetad #若是ganglia安裝在別的目錄,則修改gmetad.init裡的gmetad路徑
  3. cp gmetad.conf /etc/gmetad.conf
  4. chkconfig gmetad on
  5. chkconfig --list gmetad
  6. GMETAD 0:off 1:off 2:on 3:on 4:on 5:on 6:off
建立rrd資料儲存的資料夾修改屬性擁有者為: "nobody"


點選(此處)摺疊或開啟

  1. mkdir /var/lib/ganglia/rrds
  2. chown nobody:nobody /var/lib/ganglia/rrds
啟動gmetad:


點選(此處)摺疊或開啟

  1. service gmetad start
  2. Starting GANGLIA gmetad: [ OK ]
修改 /etc/gmetad.conf檔案:


點選(此處)摺疊或開啟

  1. data_source "taskcenter" 1.2.3.4 #所要監控的客戶端 可以寫多個
  2. setuid_username "root" #可改為其他安全使用者
  3. # default: "/var/lib/ganglia/rrds" #定義該客戶端的資料儲存的路徑
  4. # rrd_rootdir "/some/other/place"
  5. rrd_rootdir "/var/lib/ganglia/rrds"
重新啟動gmetad:


點選(此處)摺疊或開啟

  1. service gmetad start
  2. Starting GANGLIA gmetad: [ OK ]
驗證gmetad正常工作:


點選(此處)摺疊或開啟

  1. telnet localhost 8651

就可以得到監控的各個主機的狀態。

 

2.安裝客戶端gmond2.1 linux

 在每臺需要監控的機器上,安裝gmond

安裝ganglia:


點選(此處)摺疊或開啟

  1. tar zxvf ganglia-3.0.3.tar.gz
  2. cd ganglia-3.0.3
  3. ./configure --prefix=/usr/local/ganglia
  4. make;
  5. make install
  6. cd gmond
  7. ./gmond –t > /etc/gmond.conf

點選(此處)摺疊或開啟

  1. vi gmond.init
  2. 修改裡面的GMOND 改為GMOND=/usr/local/ganglia/sbin/gmond
  3. # cp gmond.init /etc/init.d/gmond
  4. # chkconfig --add gmond
  5. # chkconfig --list gmond
  6. gmond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
  7. # service gmond start
  8. Starting GANGLIA gmond: [ OK ] #若不成功的話,就用/usr/local/ganglia/sbin/gmond手動啟動
啟動失敗有可能是因為多播地址沒有路由


點選(此處)摺疊或開啟

  1. route add -host 239.2.11.71 dev eth0
驗證gmond正常工作:


點選(此處)摺疊或開啟

  1. telnet localhost 8649

就可以獲取機群內執行gmond的主機的資訊

vi /etc/gmond.conf
配置gmond.conf:


點選(此處)摺疊或開啟

  1. /etc/gmond.conf:
  2. globals
  3. {
  4. setuid = no
  5. user = nobody
  6. cleanup_threshold = 300 /*secs */
  7. }
  8. #修改監控組名稱
  9. cluster
  10. {
  11. name = "taskcenter"
  12. .......}

配置完成後重新啟動gmond

 

2.2 window

下載:http://www.sajinet.com.pe/ganglia/ganglia-3.1.0-bin.zip

解壓後,執行gmond.bat

測試:telnet 127.0.0.1 8649

安裝自啟動:把gmond.bat加到啟動項中

3.web端安裝

web端用於通過web來檢視監控狀態。
因為web端程式是php寫的,所以需要安裝apache。同時需要編譯php的gd庫。web端需要和伺服器端在一塊。

 

# cp -a ganglia-3.0.3/web /var/www/html/ganglia

確定web server支援PHP4

對apache來說,php模組mod_php的狀態應該是enabled,貌似預設就是的^_^

配製檔案是/var/www/html/ganglia/conf.php


點選(此處)摺疊或開啟

  1. # Where gmetad stores the rrd archives.
  2. $gmetad_root = "/var/lib/ganglia";
  3. $rrds = "/usr/local/rrdtool-1.0.50/"; #資料來源路徑

  4. # Leave this alone if rrdtool is installed in $gmetad_root,
  5. # otherwise, change it if it is installed elsewhere (like /usr/bin)
  6. define("RRDTOOL", "/usr/local/rrdtool-1.0.50/bin/rrdtool"); # rrdtool執行路徑

  7. #
  8. # If you want to grab data from a different ganglia source specify it here.
  9. # Although, it would be strange to alter the IP since the Round-Robin
  10. # databases need to be local to be read.
  11. #
  12. $ganglia_ip = "localhost";
  13. $ganglia_port = 8652;
  14. #$ganglia_port = 8649;

 

在瀏覽器位址列輸入http://localhost/ganglia/應該可以看到有頁面顯示了。

 

演示地址 伯克利大學的叢集監控(1000多臺伺服器):

http://monitor.millennium.berkeley.edu/

訪問web出現圖片畫不出來的原因:

1)     rrdtool沒有安裝,或者conf.php裡沒有配置

2)     gemtad沒有啟動

3)     沒有客戶端資料

4)     Selinux限制apache執行rrdtool

 另外ganglia還有很多外掛可以監控更多的指標

其中有一個外掛,安裝後可以檢視任意時間的曲線圖

原文地址: http://blog.chinaunix.net/uid-11121450-id-3147002.html

相關文章