天天看點

監控系統之ganglia服務

監控系統之ganglia服務

  Ganglia是一個開源叢集監視項目,設計用于測量數以千計的節點,ganglia的核心有gmond,gmetad.web前端,主要用來監控系統性能,包括:cpu,mem,硬碟使用率,i/o負載,網絡流量監控,通過曲線顯示每個節點工作狀态。基本原理為:叢集内的節點通過運作的gmond收集釋出節點的狀态資訊,gmetad周期性的輪詢gmond收集到的資訊,資料傳格式采用xml壓縮格式進行傳輸,然後存入到rrd資料庫,通過web伺服器就可以對其進行查詢結果展示。

材料準備:

ganglia-3.4.0.tar.gz    ganglia-web-3.4.2.tar.gz  rrdtool-devel-1.3.8-6.el6.x86_64.rpmlibconfuse-devel-2.6-3.el6.x86_64.rpm libconfuse-2.6-3.el6.x86_64.rpm

步驟:

第一步:(ganglia服務的安裝)

#yum install -y rpm-build      rpm-build 負責将源碼編譯成二進制檔案

#yum install -y libart_lgpl-devel python-devellibconfuse-devel pcre-devel expat-devel rrdtool-devel apr-devel libtoolautoconf    ##解決安裝anglia的依賴性

# yum install -ylibconfuse-devel-2.6-3.el6.x86_64.rpm libconfuse-2.6-3.el6.x86_64.rpm

# yum install -yrrdtool-devel-1.3.8-6.el6.x86_64.rpm

#rpmbuild -tb ganglia-3.4.0.tar.gz  ###對這兩個源碼檔案進行編譯為二進制檔案

#rpmbuild -tb ganglia-web-3.4.2.tar.gz

#cd rpmbuild/RPMS/noarch/

# rpm -ivhganglia-web-3.4.2-1.noarch.rpm  ## 安裝web展示界面

#(前提先解決相關的依賴性yum install -y php php-gd)

#cd rpmbuild/RPMS/x86_64/

#rpm -ivh  *

#scp  libganglia-3.4.0-1.x86_64.rpm ganglia-gmond-modules-python-3.4.0-1.x86_64.rpm    ganglia-gmond-3.4.0-1.x86_64.rpm    libconfuse-devel-2.6-3.el6.x86_64.rpm  libconfuse-2.6-3.el6.x86_64.rpm   172.25.45.5: -->用戶端主機ip

#cd/etc/ganglia/        ##編輯主配置檔案

# vimgmetad.conf

 44   data_source "liumin cluster"localhost

# vimgmond.conf

     24  name = "liumin cluster"

#/etc/init.d/gmondstart  ---> # /etc/init.d/gmetad start-----> # /etc/init.d/httpd restart

用戶端:  -->安裝資料采集gmond

#rpm-ivh ganglia-gmond-3.4.0-1.x86_64.rpm ganglia-gmond-modules-python-3.4.0-1.x86_64.rpm  libconfuse-2.6-3.el6.x86_64.rpmlibconfuse-devel-2.6-3.el6.x86_64.rpm libganglia-3.4.0-1.x86_64.rpm 

#vim   /etc/ganglia/gmond.conf  ###配置檔案,使它能把資料傳給伺服器端gmetad

      24  name = "liumin cluster"

##/etc/init.d/gmond   start  -->netstat  -antlpe ##檢視gmond端口打開情況

#Firefox   ---> 172.25.45.20/gweb  ---->檢視ganglia的顯示界面;

監控系統之ganglia服務
監控系統之ganglia服務

#gmetad收集到的資料全放在/var/lib/ganglia/rrds/liumincluster裡面的各個ip檔案裡面 并且ganglia可以實作将同一網段的主機的資訊收集過來,前提是這些主機裝了gmond采集服務,并且設定好gmond.conf中的name;gmetad就會輪詢采集到這些主機的資料存放到前述的路徑中的檔案夾。

監控系統之ganglia服務

第二步:(內建Nagios報告Ganglia采集的名額)也就是将ganglia與nagios進行結合起來,将ganglia采集到的資料通過nagios進行顯示。

#tar  zxf ganglia-3.4.0.tar.gz

#cp  /ganglia-3.4.0/contrib/check_ganglia.py   /usr/local/nagios/libexec/

#cd  /usr/local/nagios/libexec/

#chown  nagios.nagios check_ganglia.py

#vim   check_ganglia.py      #更改ganglia配置檔案,使告警标準與nagios标準一緻

 89if critical > warning:

 90   ifvalue >= critical:

 91    print "CHECKGANGLIA CRITICAL: %s is %.2f" % (metric, value)

 92    sys.exit(2)

 93  elif value >= warning:

 94    print "CHECKGANGLIA WARNING: %s is %.2f" % (metric, value)

 95    sys.exit(1)

 96  else:

 97    print "CHECKGANGLIA OK: %s is %.2f" % (metric, value)

 98    sys.exit(0)

 99else:

100  if critical >= value:

101     print "CHECKGANGLIA CRITICAL: %s is%.2f" % (metric, value)

102    sys.exit(2)

103  elif warning >= value:

104    print "CHECKGANGLIA WARNING: %s is %.2f" % (metric, value)

105    sys.exit(1)

106  else:

107    print "CHECKGANGLIA OK: %s is %.2f" % (metric, value)

108    sys.exit(0)

注意:python文法格式,對齊的一行就是一個語句塊。

#cd  /var/lib/ganglia/rrds/liumin\cluster/server5.example.com/    #ganglia服務存放采集到主機名為server5.example.com的主機資訊資料的地方,采用環形資料庫存放資料。

#/usr/local/nagios/libexec/check_ganglia.py  -h server5.example.com   -mdisk_free_percent_rootfs  -w 20  -c 10        ##驗證有沒有取道到遠端主機的disk資料

編輯nagios服務的配置檔案,使得nagios能夠得到ganglia采集的名額,并且顯示出來

#vim  template.cfg             ###編輯模闆

192 define service {

193        use                     generic-service    ##使用通用模闆,

194        name                   ganglia-service     ##模闆别名

195        hostgroup_name    ganglia-servers   

196        service_groups      ganglia-metrics

197        }

#vimcommand.cfg

228 define command{

229        command_name   check_ganglia

230        command_line    $USER1$/check_ganglia.py  -h $HOSTADDRESS$  -m  $ARG1$ -w  $ARG2$  -c $ARG3$

231        }

#vimhosts.cfg

 48define host {

 49        use                  linux-server

 50        host_name    server5.example.com

 51        address      172.25.45.5

 52}

 71define hostgroup{

 72        hostgroup_name    ganglia-servers

 73        alias             ganglia-servers

 74        members        server5.example.com   

 75        }

#vim  services.cfg

135 define servicegroup {

136        servicegroup_name      ganglia-metrics

137        alias                 Ganglia_Metrics

138 }

139

140 define service{

141        use                    ganglia-service

142        service_description        根分區空閑百分比

143        check_command     check_ganglia!disk_free_percent_rootfs!20!10

144        }

145

146 define service{

147        use          ganglia-service

148        service_description       記憶體空閑

149        check_command      check_ganglia!mem_free!50000!30000

150        }

#/usr/local/nagios/bin/nagios   -v   /usr/local/nagios/etc/nagios.cfg           ##進行錯誤檢查

#/etc/init.d/nagios    reload       重新倒入配置

#Firefox    172.25.45.20/nagios    檢視nagios将ganglia采集server5.example.com的資料顯示出來

監控系統之ganglia服務

繼續閱讀