【昊鼎王五】如何在centos7上安裝ganglia之寫在前面的話?

【昊鼎王五】如何在centos7上安裝ganglia之寫在前面的話?

引子:

有讀者來信諮詢關於監控軟件,問那款好?這個問題曾經也讓我糾結了一段時間,但是本人現在從迷霧中走出。世界上沒有最好,只有某款更適合你。那麼哪款更適合你呢?請基於你自身的需求來尋找。
對於IT業者,我的建議是,先去做,做完了就有體會了。做完了,歸納總結了,就是你自己的東西了。個人職場的沉澱總結非常重要,這個關係到你未來的生存問題。

今天就來分享一款優秀的監控軟件ganglia。那它到底優秀在哪裏呢?
如下:

1.ganglia介紹

ganglia是一款爲HPC(高性能計算) 集羣設計的可擴展性 的分佈式監控系統,它可以監視和顯示集羣中節點的各種狀態信息,他由運行在各個節點上的gmond守護進程來採集 CPU、內存、磁盤利用率、I/O負載、網絡流量情況等方面的數據。然後彙總到gmetad守護進程下,使用rrdtool存儲數據,然後將歷史數據以曲線方式通過PHP頁面呈現。

ganglia自帶了很多監控項,詳細的比較詳細,等後面搭建成功後,可以從截圖中看出。ganglia相關的PDF書和資料還是較少的。

2.應用範圍

Ganglia是一個集羣監控工具,由UC Berkeley創建並開源。Ganglia的中文意思是神經中樞,現在支持多部分操作系統(包括linux、unix、windows),可支持2000個節點的網絡監控(當然這不是上限,只是一個大集羣使用的範例)。

3.基本結構

Ganglia底層使用RRDTool獲得數據,Ganglia主要分爲兩個進程組件:

gmetad(ganglia metadata deamon)
gmond(ganglia monitor deamon)

其中,gmond運行在集羣每個節點上,收集RRDTool產生的數據;gmetad運行在監控服務器上,收集每個gmond的數據。Ganglia還提供了一個PHP實現的web front end,一般使用Apache2作爲其運行環境,通過Web Front可以看到直觀的各種集羣數據圖表。

4.層次圖

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

 一個node就是一個需要監控的節點,一般是個主機,用IP表示。每個node上運行一個gmond進程用來採集數據,並提交給gmetad。

一個cluster由多個node組成,就是一個集羣,我們可以給集羣定義名字。一個集羣可以選一個node運行gmetad進程,彙總/拉取gmond提交的數據,並部署web front,將gmetad採集的數據用圖表展示出來。

一個grid由多個cluster組成,是一個更高層面的概念,我們可以給grid定義名字。grid中可以定義一個頂級的gmetad進程,彙總/拉取多個gmond、子gmetad提交的數據,部署web front,將頂級gmetad採集的數據用圖表展示出來。

顯然,這種方式非常靈活,可以實現多種結構的數據監控。由下圖,我們可以清晰的看出這種層次化的結構,和不同的部署方式。
圖一:
在這裏插入圖片描述

圖二:
在這裏插入圖片描述

5.運行模式

Ganglia的收集數據工作可以工作在單播(unicast)或多播(multicast)模式下,默認爲多播模式。

單播:發送自己收集到的監控數據到特定的一臺或幾臺機器上,可以跨網段。

多播:發送自己收集到的監控數據到同一網段內所有的機器上,同時收集同一網段內的所有機器發送過來的監控數據。因爲是以廣播包的形式發送,因此需要同一網段內。但同一網段內,又可以定義不同的發送通道。

6.三大組件

6.1gmond

gmond類似於傳統監控系統中的代理,需要安裝在每臺主機上,負責和操作系統交互以獲得需要關注的指標數據。

gmond再內部採用模塊化設計,採用基於C語言編寫、根據操作系統定製的插件進行監控。gmond爲指標提供了大部分標準插件,而且可以增加更多的用C、C++或Python等語言編寫的插件來支持新的指標。此外,內置的gmetric工具可以用來報告用任何語言編譯的自定義指標數據。

gmond根據自身本地配置文件定義的調度方案進行輪詢。監聽數據時使用簡單的監聽/通告協議,通過XDR在集羣內的主機之間共享。這些通告默認使用多播,而集羣是由共享同一多播地址的主機所構成的。當然gmond也可以使用單播,將數據都匯聚到同一臺中心節點。

因爲每臺gmond主機將指標數據多播到集羣內的其他主機,每臺gmond主機也記錄了集羣內其他主機的指標數據。遠程輪詢器通過默認的8649端口,向集羣內任意節點請求獲得該集羣XML格式的所有數據。

如果服務器主機過多,因爲只要輪詢集羣中任意節點就能獲取所有集羣內其他主機的性能指標數據,所以我們可以將衆多的主機劃分到不同的組裏面,這樣一來,收集數據的工作量將得到大大的減輕。

6.2gmetad

主要作用就是整合所有信息。

gmetad是一個簡單的輪詢器,對網絡中每個集羣進行輪詢,並將每臺主機上返回的所有指標數據寫入各個集羣對應的輪詢數據庫。輪詢器對集羣的“輪詢”只需要打開一個用於讀取的套接字,連接到目標gmond節點的8649端口即可,通過遠程非常容易實現。

gmetad還有一些其他特性,如可以從其他的gmetad中輪詢數據,gmetad通過tcp端口8651偵聽遠程gmetad連接,並且向授權主機提供XML格式的網格狀態。從而構成一種聯合層次結構。gmetad具有交互式查詢功能,外部監控系統可以通過TCP 8652端口用簡單文本協議進行輪詢。gmetad也可以通過配置gmetad將指標數據轉送到諸如Graphite外部系統發送數據。

gmetad默認將指標數據直接寫入文件系統上的RRD文件,在有I/O限制的大型裝置中,rrdcached充當gmetad和RRD文件之間的緩存。

6.3gweb

ganglia可視化工具。顯示ganglia收集的主機各項指標。

gweb允許在圖標中通過點擊-拖拽改變時間週期,包含從不同文本格式(CSV,JSON等)中便捷提供數據的工具,顯示完整、使用的URL接口,使用戶可以通過預知的URL將感興趣的圖表嵌入其他程序。

gweb是一種PHP程序,因爲需要與輪詢器創建的RRD數據庫交互,所以gweb通常安裝在和gmetad相同的物理硬件上。

7.相關鏈接

7.1官網:

ganglia的官網:http://ganglia.info 下載鏈接:http://ganglia.info/?page_id=66

7.2書籍:

Ganglia權威指南書籍:
http://www.51niux.com/?id=83
http://www.51niux.com/?id=84
http://www.51niux.com/?id=85

好了,聰明如你,知道了ganglia大致情況,是不是很歡喜 _

還有其他問題的可以在評論區留言或者掃碼加博主獲取資源或者提問。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章