close

因為專案的需要,前陣子開始研究Ganglia這套監控系統,對於各主機即時狀態的呈現,幫助管理者可以快速地瞭解各主機的健康狀況。由於各os環境的不同,在網路上找不到完全詳細的安裝與設定資訊,花了不少時間在看錯誤訊息,試著靠這些訊息來一個一個除錯,讓Ganglia可以正常監控基本主機資訊。關於Ganglia的介紹與原理網路上已經有很多資訊,在這就只記錄完整安裝與設定Ganglia的步驟。

1. 安裝環境準備

  本文所採用的安裝環境如下:

  • Ubuntu 10.10
  • Ganglia 3.3.1

2. 主節點Gmond安裝與設定

  • 到Ganglia官方網站http://ganglia.sourceforge.net/ 下載Ganglia套件,目前最新穩定版本為3.3.1。
  • 下載後的壓縮檔,解壓縮到磁碟目錄中,本文假設解壓縮到/opt/。解壓縮後資料夾階層如下:

$ cd /opt

~/opt $ ls

ganglia-3.3.1

  • 安裝需要的套件(如有套件無法取得,請逐一個別安裝)

$sudo apt-get install build-essential libapr1-dev libconfuse-dev libexpat1-dev python-dev

  • 編譯

~/opt$ cd ganglia-3.3.1

~/ganglia-3.3.1 $ sudo ./configure --with-libpcre=no

 

編譯成功後的畫面

  • 安裝

~/ganglia-3.3.1 $ sudo make

~/ganglia-3.3.1 $ sudo make install

  • 修改ganglia-3.3.1資料夾擁有者(本範例所使用之帳戶與群組皆為hadoop)

$ sudo chown –R hadoop:hadoop /opt/ganglia-3.3.1/

  • 產生gmond設定檔至家目錄(ex: /home/hadoop)

~/ganglia-3.3.1$ gmond/gmond --default_config > /home/hadoop/gmond.conf

  • 修改所產生之gmond.conf設定

globals {

setuid = yes //限定下列user才可執行使用,否則設為no

user = hadoop //預設為nobody,在此以目前所使用之帳戶hadoop
              

}

cluster{

name = “hadoop” //所屬叢集名稱,gmetadgmond之設定須一致,
                
才可順利收集指標資訊

}

udp_send_channel{

#mcast_join = 239.2.11.71 //本範例以單播模式為例,因此不使用多播
                        
模式設定,在前面加’#’字號註解起來

host = {負責接收指標的節點ip} //新增加此行,指定接收指標之節
                                
點位址

}

udp_recv_channel{

#mcast_join = 239.2.11.71 //在前面加’#’字號註解起來

port = 8649

#bind = 239.2.11.71 //在前面加’#’字號註解起來

}

  • 將修改好之設定檔移至/usr/local/etc/資料夾下

~/ganglia-3.3.1$ sudo mv /home/hadoop/gmond.conf /usr/local/etc/

  • 複製執行所需的python模組至預設路徑下

~/ganglia-3.3.1$ sudo cp –r /opt/ganglia-3.3.1/gmond/python_modules/ /usr/local/lib/ganglia/

  • 啟動gmond

ü   背景執行

~/ganglia-3.3.1$ gmond/gmond

ü   前景執行(Debug模式),可監看執行狀態是否出錯

~/ganglia-3.3.1$ gmond/gmond –d 2

  • 停止gmond

ü   停止背景執行的gmond

$ pgrep gmond

1597        process id

$ sudo kill 1597

ü   停止前景執行的gmond: 於鍵盤執行ctrl+c即可。

3. 其餘子節點Gmond安裝與設定

  • 安裝與執行的步驟同上述主節點描述
  • gmond.conf同上述主節點設定外,須再修改下列參數設定

globals {

deaf = yes //此設定表示不接收任何資訊,因為子節點只負責將本機資
          
訊傳送至主節點,所以須將其設yes

}

4. 主節點Gmetad安裝與設定

  • 延續前面gmond所建置好的ganglia-3.3.1資料夾
  • 安裝需要的套件(如有套件無法取得,請逐一個別安裝)

$sudo apt-get install build-essential libapr1-dev libconfuse-dev libexpat1-dev python-dev librrd2-dev

  • 新增rrds資料夾以供ganglia儲存指標資料,並修改資料夾擁有者,於gmetad執行期間才有權限存取此資料夾

$ sudo mkdir /var/lib/ganglia

$ sudo mkdir /var/lib/ganglia/rrds/

$ sudo chown -R hadoop:hadoop /var/lib/ganglia/ 修改擁有者帳戶與
                                            
群組

  • gmetad執行檔的建立與安裝

$ cd /opt/ganglia-3.3.1/gmetad

~/gmetad$ sudo make

~/gmetad$ sudo make install

  • 修改gmetad資料夾擁有者

$ sudo chown –R hadoop:hadoop /opt/ganglia-3.3.1/gmetad

  • 完成上述步驟後,/usr/local/etc資料夾內已產生gmetad.conf設定檔,編輯並修改其設定,如下所示

data_source “hadoop” localhost //hadoop為叢集名稱,localhost為主
                              
節點位址,可依需求改為其他ip
                               hostname

setuid_username     “hadoop” //將此行開頭之”#”字號刪除,預設為
                           nobody
,在此以目前所使用之帳戶
                           hadoop
為例

下列設定可視需求修改

all_trusted       on //如果希望任一主機都可連至gmetad節點取得資料,
                
則須設為on開啟此功能

setuid      off //是否限制僅設定之帳戶可執行gmetad

  • 啟動gmetad

ü   背景執行

~/ganglia-3.3.1$ gmetad/gmetad

ü   前景執行(Debug模式),可監看執行狀態是否出錯

~/ganglia-3.3.1$ gmetad/gmetad –d 2

  • 停止gmetad

ü   停止背景執行的gmetad

$ pgrep gmetad

8640        process id

$ sudo kill 8640

ü   停止前景執行的gmetad: 於鍵盤執行ctrl+c即可。

5. 主節點前端PHP網頁安裝與設定

  • 安裝Apache與PHP套件(如有套件無法取得,請逐一個別安裝)

$ sudo apt-get install rrdtool apache2 php5-mysql libapache2-mod-php5 php5-gd

  • 移至ganglia3.3.1之web資料夾

$ cd /opt/ganglia-3.3.1/web

  • 編譯與設定

~/ganglia-3.3.1/web $ make

  • 修改Makefile

DESTDIR = /var/www/ganglia //修改此路徑以指定網頁建置之資料夾
                          
位址

APACHE_USER = hadoop //修改執行apache之使用者為本範例所使用
                        
之帳戶hadoop

  • 安裝並配置所須檔案

~/ganglia-3.3.1/web $ make install

  • 修改存取權限

$ sudo chmod 777 /var/lib/ganglia/dwoo/compiled/

$ sudo chmod 777 /var/lib/ganglia/dwoo/cache/

  • 開啟瀏覽器並於網址列鍵入http://{主節點ip}/ganglia,即可觀看目前所監控之所有節點狀態
arrow
arrow
    全站熱搜

    ciner945 發表在 痞客邦 留言(0) 人氣()