分布式監控工具Ganglia 介紹 與 集群部署

2022-05-22 00:54:09 字數 3625 閱讀 2614

如果你目的很明確就是衝著標題來的,不愛看我嘮叨,請直接進入第二個分割線之後的內容。

其實之前就是有做swift監控平台的打算的,但是因為沒什麼硬性需求麼,也不要緊的,就一直擱置了。最近實驗室來了個大二公升大三的小mm體驗生活,老大就讓我們帶著她一起做這個東西,主要好處就是可以多學些實用的技術,了解雲儲存的基本架構,同時也不需要深入細節,難以理解。

好吧,我就是個愛說廢話和鋪陳的妞,這樣才體現「原創」不是?o(∩_∩)o哈哈~ 進入正題。。。

******************************==被38°杭州烤化掉的分割線******************************==

機器效能相關的監控:這個比較泛化,也比較成熟,主要是對cpu、記憶體、網路、磁碟i/o等資訊的監控,我們沒必要重複造輪子,可以選擇比較方便強大的開源工具來搭建,這裡我們選擇ganglia;

系統執行狀態的監控:這個與不同的檔案系統相關,雖然不同dfs也有一些共性的內容,比如賬戶、日誌、請求量等,但是具體到每乙個dfs的實現其實還是有很大不同的,因此需要特別的定製。考慮到swift中ring的概念、rest介面、賬戶建立等資訊,這乙個部分我們打算自己來開發,同時可以提供ring建立,賬戶新增等基本的管理員工具;

整合:提供統一入口、統一風格,這就要求我們需要對ganglia做一定的二次開發,從而與swift-related 監控部分整合,考慮到ganglia web front使用的是php語言開發的,執行環境為apache2。而我們打算用jsp對swift-related部分進行開發,執行在tomcat中,因此需要整合php + jsp環境,這個再之後再介紹。

好了,以上就是整體的思路了,step by step,本篇主要介紹ganglia。

***********************************==ganglia***********************************==

ganglia是乙個集群監控工具,由uc berkeley建立並開源。ganglia的中文意思是神經中樞,現在支援多部分作業系統(包括linux、unix、windows),可支援2000個節點的網路監控(當然這不是上限,只是乙個大集群使用的範例)。

基本結構

ganglia底層使用rrdtool獲得資料,ganglia主要分為兩個程序元件:

其中,gmond執行在集群每個節點上,收集rrdtool產生的資料;gmetad執行在監控伺服器上,收集每個gmond的資料。ganglia還提供了乙個php實現的web front end,一般使用apache2作為其執行環境,通過web front可以看到直觀的各種集群資料圖表。

ganglia的層次化結構做的非常好,由小到大可以分為node -> cluster -> grid,這三個層次。

顯然,這種方式非常靈活,可以實現多種結構的資料監控。由下圖,我們可以清晰的看出這種層次化的結構,和不同的部署方式。

集群部署

在這裡,僅介紹ubuntu上的部署方式,因為很簡單!只需要安裝兩個包:ganglia-monitor和ganglia-webfrontend。其中ganglia-webfrontend只需要安裝在提供頁面展示的伺服器上,並且如果你的ubuntu沒有php和apache2環境的話,它也會自動幫你安裝。

在這裡我直接介紹多播(ganglia預設的方式,此外還支援單播)方式的集群部署,至於單機的方式,其實只要把ganglia-monitor和ganglia-webfrontend裝在一台機器上就可以了。

1)集群環境

gmond:4臺(192.168.1.101、192.168.1.102、192.168.1.103、192.168.1.104)

gmetad + ganglia web:1臺(192.168.1.104)

作業系統:ubuntu 11.04

2)部署過程

在192.168.1.101、192.168.1.102、192.168.1.103這三颱僅執行gmond的節點上安裝ganglia-monitor:

sudo apt-get install ganglia-monitor
在192.168.1.104這台包含所有ganglia服務的節點上安裝ganglia-monitor和ganglia-webfrontend,這個過程會預設為沒有apache和php的環境的系統安裝apache2和php:

sudo apt-get install ganglia-webfrontend ganglia-monitor
在ganglia-webfrontend安裝完畢後,ganglia-webfrontend這個包缺省會將web相關的**安裝在」/usr/share/ganglia-webfrontend/」路徑下,這樣apache訪問不到。因此,可以使用軟鏈結,或者直接將目錄移到」/var/www/」目錄下。

sudo

ln -s /usr/share/ganglia-webfrontend/ /var/www/ganglia

或者: 

sudo

mv /usr/share/ganglia-webfrontend/ /var/www/ganglia

3)配置在我們的監控系統中,將cluster命名為swift,grid命名為mygrid,並採用組播的方式。

配置gmond:開啟/etc/ganglia/gmond.conf 修改 cluster name :

cluster
配置gmetad:開啟/etc/ganglia/gmetad.conf 新增資料來源 和 網格名稱:

data_source "

swift

"localhost

gridname

"mygrid

"

4)啟動重啟192.168.1.104的gmated:

service gmated restart
重啟每個節點的gmond(注意服務名是ganglia-monitor,不是gmond!):

service ganglia-monitor restart
5)頁面完成以上工作後,ganglia的部署就完成了,現在你可以在192.168.1.104上直接開啟瀏覽器訪問 http://localhost/ganglia,就能看到圖形介面啦!或者你可以通過ip直接訪問,如果修改了埠記得加上新埠訪問。

這裡給出一張單機部署的web front end截圖,示意示意 ^_^~ 這個單機的服務,我將其cluster命名為「yuki-cluster」,哈哈

至此,部署的工作就完成啦!=d

注意點

參考文章

ganglia 體系結構及功能介紹

ubuntu10.04 ganglia安裝配置

ganglia監控hadoop及hbase集群效能(安裝配置)

分布式監控ganglia

1,簡介 ganglia是一款為hpc 高效能計算 集群而設計的可擴充套件性的分布式監控系統 監視和顯示集群中節點的個各種狀態資訊 由執行在各個節點上的gmond守護程序採集cpu 記憶體 硬碟利用率 i o負載 網路流量情況,然後彙總到gmetad守護程序 使用rrdtool儲存資料 將歷史資料以...

lnmp監控 ganglia分布式監控

這裡我們要先把乙個原始碼包製作成rpm包,方便以後的批量部署 所以需要rpmbuild yum install rpm build 4.8.0 27.el6.x86 64 y 將ganglia製作成rpm包 rpmbuild tb ganglia 3.4.0.tar.gz 在製作過程中可能需要的包 ...

分布式監控部署之Ganglia

ganglia分布式監控部署 1 ganglia介紹 2 ganglia安裝和配置 3 修改相應的配置檔案 4 結果展示 5 許可權問題解決方法 一 介紹 ganglia是由uc berkeley發起的乙個開源監控專案,設計用於監控數以千幾的節點。每台伺服器都執行乙個收集和傳送監控資料名為gmond...