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???????
總結
以上是生活随笔為你收集整理的Ganglia集群监控系统搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 管道
- 下一篇: linux系统脚本安装失败,ubuntu