分佈式監控系統ganglia配置文檔

1、Ganglia的組件php

Ganglia包括以下程序,他們之間經過XML格式傳遞監控數據,達到監控效果。 
Gmetad 這個程序負責收集各個cluster的數據,並更新到rrd數據庫中。 
Gmond 收集本機的監控數據,發送到其餘機器上。收集其餘機器的監控數據,供Gmetad讀取。默認監聽端口8649 
web front-end 一個基於web的監控界面,須要和Gmetad安裝在同一個節點上,從Gmetad取數據,而且讀取rrd數據庫,生成圖片,顯示出來。 
2、Ganglia的工做模式
Ganglia的收集數據工做能夠工做在單播(unicast)或多播(multicast)模式下,默認爲多播模式。 
單播:發送本身收集到的監控數據到特定的一臺或幾臺機器上,能夠跨網段 
多播:發送本身收集到的監控數據到同一網段內全部的機器上,同時收集同一網段內的全部機器發送過來的監控數據。由於是以廣播包的形式發送,所以須要同一網段內。但同一網段內,又能夠定義不一樣的發送通道。
3、Ganglia的安裝
Ganglia的安裝很是簡單,分爲監控管理端(Gmetad)和客戶端(Gmond)安裝兩部分,已經寫成安裝腳本,這裏不在描述。
推薦安裝版本是ganglia-3.4.0,能夠在http://sourceforge.net/projects/ganglia/files/下載安裝。
4、Ganglia的配置
這裏介紹一個簡單的Ganglia配置構架,即一個監控管理端和多個客戶端,咱們假定gmond工做在多播模式,而且有一個Cluster1的集羣,裏面有10臺服務器(從host1到host10),在同一個網段內。
 
一、監控管理端配置
監控管理端的配置文件是gmetad.conf,在安裝Ganglia的etc目錄下能夠找到,這個文件配置很是簡單,介紹以下:
data_source "Cluster1" host1 host2
xml_port 8651
interactive_port 8652
rrd_rootdir "/var/lib/ganglia/rrds"
data_source參數定義了集羣名字,以及集羣中的節點。因爲採用multicast模式,每臺gmond節點都有本Cluster1內節點機器的全部監控數據,所以不須要把全部節點寫入data_source中。建議寫入不低於2個,在host1節點死機的時候,會自動找host2節點取數據。
xml_port定義了一個收集數據彙總的交互端口,若是不指定,默認是8651,能夠經過telnet這個端口獲得監控管理端收集到的客戶端的全部數據。
interactive_port 定義了Web端獲取數據的端口,這個端口在配置Ganglia的web監控界面時須要指定。
rrd_rootdir參數定義了rrd數據庫的存放路徑,gmetad收集到監控數據後,會更新到該目錄下的對應的rrd數據庫中。
上面經過data_source參數定義了一個監控集羣,若是要監控多個應用系統,能夠經過以下方式定義:
data_source "my cluster" 10 localhost  my.machine.edu:8649  1.2.3.5:8655
data_source "my grid" 50 1.3.4.7:8655 grid.org:8651 grid-backup.org:8651
data_source "another source" 1.3.4.7:8655  1.3.4.8
在定義集羣節點的時候,能夠採用主機名、IP地址等形式,也能夠加端口,若是不加端口的話,默認是8649端口,同時能夠設定採集數據的頻率,如上面的「10 localhost、50 1.3.4.7:8655」等,分別表示每隔10秒鐘、50秒鐘採集一次數據。
 
二、客戶端配置
客戶端監控安裝完成後,配置文件位於安裝Ganglia的etc目錄下,名稱爲gmond.conf,這個配置文件稍微複雜,介紹以下:
globals {
  daemonize = yes        #之後臺的方式運行
  setuid = yes
  user = nobody          #運行gmond的用戶
  debug_level = 0        #調試級別
  max_udp_msg_len = 1472
  mute = no            #啞吧,本節點將不會再廣播任何本身收集到的數據到網絡上
  deaf = no             #聾子,本節點將再也不接收任何其餘節點廣播的數據包
  allow_extra_data = yes
  host_dmax = 0 /*secs */
  cleanup_threshold = 300 /*secs */
  gexec = no             #是否使用gexec
  send_metadata_interval = 0
}
 
 
cluster {
  name = "Cluster1"     #本節點屬於哪一個cluster
  owner = "junfeng"     #誰是該節點的全部者
  latlong = "unspecified"   #在地球上的座標,經度、緯度?
  url = "unspecified"
}
 
host {
  location = "unspecified"  
 }
 
udp_send_channel {       #udp包的發送通道
  mcast_join = 239.2.11.71   #多播,工做在239.2.11.71通道下。若是使用單播模式,則要寫host = host1,單播模式下也能夠配置多個udp_send_channel
  port = 8649            #監聽端口
  ttl = 1
}
 
udp_recv_channel {           #接收udp包配置
  mcast_join = 239.2.11.71   #一樣工做在239.2.11.71通道下
  port = 8649                #監聽端口
  bind = 239.2.11.71         #綁定
}
 
 
tcp_accept_channel {
  port = 8649               #經過tcp協議監聽的端口,遠端能夠經過連接8649端口獲得監控數據
}
 
三、Ganglia之Web端配置
 
Ganglia的web監控界面是基於PHP的,所以須要安裝PHP環境,PHP環境的安裝不在介紹,能夠在http://sourceforge.net/projects/ganglia/files/下載ganglia-web,而後放到web根目錄便可,推薦下載ganglia-web-3.5.7版本。
配置ganglia的web界面比較簡單,只須要修改幾個php文件便可,首先第一個是conf_default.php,能夠將conf_default.php重命名爲conf.php,也能夠保持不變,ganglia的web默認先找conf.php,找不到會繼續找conf_default.php,須要修改的內容以下:
$conf['gmetad_root'] = "/var/lib/ganglia"; # ganglia web根目錄
$conf['rrds'] = "${conf['gmetad_root']}/rrds"; #ganglia web讀取rrds數據庫的路徑
$conf['dwoo_compiled_dir'] = "${conf['gmetad_root']}/dwoo/compiled"; #須要777權限
$conf['dwoo_cache_dir'] = "${conf['gmetad_root']}/dwoo/cache"; #須要777權限
$conf['rrdtool'] = "/opt/rrdtool/bin/rrdtool"; #指定rrdtool的路徑
$conf['graphdir']= $conf['gweb_root'] . '/graph.d'; #生成圖形模板目錄
$conf['ganglia_ip'] = "127.0.0.1"; #gmetad服務器的地址
$conf['ganglia_port'] = 8652; #gmetad服務器的交互式提供監控數據端口發佈
 
5、管理ganglia
 
全部配置操做完成後,便可啓動ganglia服務了,首先在監控管理端啓動gmetad服務:
/etc/init.d/gmetad start
接着啓動apache的web服務:
/usr/local/apache2/bin/apachectl start
最後在每一個客戶端啓動gmond服務:
/etc/init.d/gmond start
相關文章
相關標籤/搜索