Ganglia集羣監控系統搭建

前段時間自己用兩臺工作站搭建了一個MPI的運行環境,那如何直觀的看到每個節點的負載情況呢,於是就想到了用Ganglia搭建一個集羣檢測系統,相對比較簡單,下面詳細介紹一下過程

1、Ganglia概述

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

Ganglia監控的三大組件:gmond,gmetad和ganlia-web(網頁接口) 。 
1:gmond:是一個守護進程,需要安裝在每臺主機上,負責和操作系統交互以獲得需要關注的指標數據,運行在每一個需要監測的節點上,收集監測統計 。 
2:gmetad:也是一個守護進程,集羣數據收集節點,安裝在中心節點上,使用Hadoop的NameNode作爲該集羣數據收集節點。主要作用就是整合所有信息。定期檢查所有的gmond,拉取數據,並將他們的指標存儲在RRD(Round Robin Database 存儲格式,數據等於放在數據庫中)存儲引擎中。他可以查詢多個集羣並聚合指標。他也被用於生成用戶界面的web前端。 
3:ganglia-web:可視化工具,顯示ganglia收集的主機各項指標。安裝在有gmetad運行的機器上,讀取RRD文件( gweb是一種PHP程序,因爲需要與輪詢器創建的RRD數據庫交互,所以gweb通常安裝在和gmetad相同的物理硬件上)。

Ganglia分爲服務器端和客戶端,其中gmetad是服務器端,gmond是客戶端。服務器端只有一個,而被監控服務器均安裝客戶端;
首先配置好源(我用的是Centos7.0版本linux系統),比如epel,centos-base等需要提前配置好,不懂的哥們可以網上查一下,比較簡單,這裏就不再贅述了。如果已經Hadoop集羣管理環境,那麼就不用安裝了,因爲Hadoop中已經集成了Ganglia。

由於我這裏只有兩臺工作站,而且只是簡單的用網線進行直連,服務器名和IP分別爲:

Ganglia服務器  master(192.168.10.250)

Ganglia客戶機 slave(192.168.10.252)

對於服務器需要安裝 ganglia-gmetad ganglia-web  ganglia-gmond

客戶機只需要安裝ganglia-gmond軟件包

Linux用yum進行安裝比較簡單,分別在客戶機、服務器上安裝相對應的包,安裝完成後需要對相應的文件進行配置,具體如下

gmetad.conf 配置監控哪些機器的文件。 

ganglia 服務器端

httpd.conf服務器端
gmond.conf 配置受監控機器文件

對於服務器端gmetad.conf 的配置如下

文件內容如下

其中data_source可以如上方式寫,也可以寫成一個,如:data_source "Master" 192.168.10.250:8650 192.168.10.252:8651,兩者的不同之處在於,(Ganglia會把所有東西放在一個Grid裏面,也就是一個網格。大的集羣,不分組。但是真實的服務器集羣有各種功能,每個羣分管不同的事務,全放一起就太亂了。也不好識別,所以需要分組使用。引自:https://blog.csdn.net/wang1459818864/article/details/38677771)。個人認爲在節點不多的情況下,分組是必要的,如果是一個很大的集羣,那確實沒有必要,主要是太麻煩。其中要說明的是IP地址冒號後面的那個數字是端口號,需要分組的時候每個數據源的端口號一定要不一樣,這裏我的數據源有兩個,所以就有兩個端口號。

下面還需要配置服務器端的ganglia.conf文件

改成如下形式

httpd.conf文件的配置

配置如下

還有最後一個服務器端的文件gmond.conf

主要是修改以下幾個地方

注意此處的name一定要與前面gmetad.conf 文件中的相同,同理在配置slave時也是一樣的。

這三處的port即端口號一定是與IP地址冒號後面的端口號一樣,否則回來在網頁上是登陸不進去的,master的端口是8650。

下面來配置slave上的gmetad.conf 文件

如配置master一樣配置就好了,這裏就不多說了。

下面要分別在master和slave上面開啓服務,具體命令如下:

服務器端運行命令

service gmetad start

service gmond start

service httpd start

service gmetad status

客戶機運行命令

service gmetad status

設置開機自啓

chkconfig gmetad on

chkconfig gmond on

systemctl enable httpd.service

這樣就設置完成了,最後可以通過瀏覽器進行登陸,登陸方法爲:

http://IP/ganglia

即可看到每個節點的運行狀態。

存在問題:

安裝完成後可能瀏覽器登陸出現如下問題:

http://192.168.10.250/ganglia

There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error

#查了導致整個報錯的原因是linux集羣位關閉selinux
#我們可以使用setenforce 命令設置臨時關閉selinux,命令如下
setenforce 0

#也可以一勞永逸的改變配置文件徹底關閉selinux,執行下面的命令修改配置
vi /etc/selinux/config
將SELINUX=enforcing改爲SELINUX=disabled,保存重啓即可

可參見:https://blog.csdn.net/qq_41698979/article/details/83246690

最後赴圖一張,裝一下:

就介紹到這裏,歡迎大家提出寶貴意見。

參考文獻

https://blog.csdn.net/dear_csdn/article/details/76528750​​​​​​​

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