開源監控軟件ganglia安裝手冊

Ganglia是一個監控服務器,集羣的開源軟件,可以用曲線圖表現最近一個小時,最近一天,最近一週,最近一月,最近一年的服務器或者集羣的cpu負載,內存,網絡,硬盤等指標。php

Ganglia的強大在於:ganglia服務端可以經過一臺客戶端收集到同一個網段的全部客戶端的數據,ganglia集羣服務端可以經過一臺服務端收集到它下屬的全部客戶端數據。這個體系設計表示一臺服務器可以經過不一樣的分層可以管理上萬臺機器。這個功能是其餘mrtg,nagios,cacti所不能比擬。html

Ganglia的擴展插件很是好寫,不管用何種語言(shell,php,pyton)均可以寫,只要把最終結果傳給gmetric就能夠,這樣在web上就能夠看到對應的數據。linux

 

0.  準備ios

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

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

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

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

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

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還有不少插件能夠監控更多的指標

其中有一個插件,安裝後能夠查看任意時間的曲線圖

相關文章
相關標籤/搜索