1. 程式人生 > >Ganglia在CentOS7_x86_64上的yum安裝與配置 可以使用有效果

Ganglia在CentOS7_x86_64上的yum安裝與配置 可以使用有效果

Ganglia在CentOS7_x86_64上的yum安裝與配置

0 前記:

yum安裝Ganglia比起make install 安裝Ganglia方式要簡單很多,因為yum方式安裝不用自己去下載編譯安裝各依賴包。 
下面我介紹Ganglia在CentOS7_x86_64上的一個最簡單的yum安裝與配置的例子,只有1個Hadoop叢集: 
Hadoop cluster:Hadoop叢集,1個name node,20個data node(使用HadoopNameNode作為該叢集資料收集節點)

1 Ganglia安裝

1.1中心節點的安裝

  • epel包的安裝:yum install -y epel-release(解決不能yum安裝某些安裝包的問題)
  • gmetad的安裝:yum install -y ganglia-gmetad ganglia-devel
  • gmond的安裝:yum install -y ganglia-gmond
  • rrdtool的安裝:yum install -y rrdtool
  • httpd伺服器的安裝:yum install -y httpd
  • ganglia-web及php安裝:yum install -y ganglia-web php

1.2 被監測節點的安裝

  • epel包的安裝:yum install -y epel-release(解決不能yum安裝某些安裝包的問題)
  • gmond的安裝:yum install -y gmond(提示找不到,感覺應該換成上面那個yum install -y ganglia-gmond)

2 Ganglia配置

2.1 中心節點(HadoopNameNode)的配置 
2.1.1 安裝目錄說明

  • ganglia配置檔案目錄:/etc/ganglia
  • rrd資料庫存放目錄:/var/lib/ganglia/rrds
  • ganglia-web安裝目錄:/usr/share/ganglia
  • ganglia-web配置目錄:/etc/httpd/conf.d/ganglia.conf

2.1.2 相關配置檔案修改 
將ganglia-web的站點目錄連線到httpd主站點目錄

$  ln -s /usr/share/ganglia /var/www/html
  • 1

修改httpd主站點目錄下ganglia站點目錄的訪問許可權 
將ganglia站點目錄訪問許可權改為apache:apache,否則會報錯

$  chown -R apache:apache /var/www/html/ganglia
$  chmod -R 755 /var/www/html/ganglia
  • 1
  • 2

修改rrd資料庫存放目錄訪問許可權 
將rrd資料庫存放目錄訪問許可權改為nobody:nobody,否則會報錯

$  chown -R nobody:nobody /var/lib/ganglia/rrds
  • 1

修改ganglia-web的訪問許可權: 
修改/etc/httpd/conf.d/ganglia.conf

Alias /ganglia /usr/share/ganglia
<Location /ganglia> 
 Require all granted
 #Require ip 10.1.2.3
 #Require host example.org
</Location>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

修改dwoo下面的許可權

chmod 777 /var/lib/ganglia/dwoo/compiled
chmod 777 /var/lib/ganglia/dwoo/ cache
  • 1
  • 2

配置/etc/ganglia/gmetad.conf

data_source  "hadoopcluster" 192.168.26.139:8649(注意是所有節點都加上,如master:8649 slave0x:8649)

setuid_username nobody
  • 1
  • 2
  • 3

配置/etc/ganglia/gmond.conf

cluster { 
  name = "hadoop cluster"
  ... 
} 
udp_send_channel { 
  # the host who gather this cluster's monitoring data and send these data   to gmetad node
  #註釋掉多播模式的,以下出現這個都要註釋掉
 #mcast_join = 239.2.11.71
 #新增單播模式的
 host = 192.168.26.139  
 port = 8649 
} 
udp_recv_channel { 
  port = 8649 
} 
tcp_accept_channel { 
  port = 8649 
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

2.2 Hadoop cluster被監測節點的配置 
配置/etc/ganglia/gmond.conf

cluster { 
  name = "hadoop cluster"
  ... 
} 
udp_send_channel { 
  # the host who gather this cluster's monitoring data and send these data   to gmetad node
 host = 192.168.26.139  
 port = 8649 
} 
udp_recv_channel { 
  port = 8649 
} 
tcp_accept_channel { 
  port = 8649 
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

3 Ganglia啟動

3.1 中心節點的啟動 
start httpd, gmetad, gmond

$ systemctl start httpd.service
$ systemctl start gmetad.service
$ systemctl start gmond.service
$ systemctl enable httpd.service
$ systemctl enable gmetad.service
$ systemctl enable gmond.service
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.2 被監測節點的啟動 
start gmond

$ systemctl start gmond.service
$ systemctl enable gmond.service
  • 1
  • 2

3.3 訪問網頁 
瀏覽器訪問 {namenode的ip}/ganglia即可 
效果如圖

4 可能會遇到的相關錯誤

  • 以除錯模式啟動gmetad:gmetad-d 9
  • 檢視gmetad收集到的XML檔案:telnet 192.168.52.105 8649 
    如果提示沒有telneyum install telnet-server 安裝 telnet服務 
    yum install telnet.* 安裝 telnet客戶端

4.1 如果出現錯誤:

There was an error collecting ganglia data (127.0.0.1:8652):fsockopen error: Permission denied
  • 1
  • 可能原因1:SELINUX配置問題 
    關閉selinux,vi /etc/selinux/config,把SELINUX=enforcing改成SELINUX=disable;該方法需要重啟機器。 
    可以使用命令setenforce 0來關閉selinux而不需要重啟,重新整理頁面,即可訪問;不過此法只是權宜之計,如果想永久修改selinux設定,還是要使用第一種方法
  • 可能原因2:rrds目錄的訪問許可權未正確配置 
    給/var/lib/ganglia/rrds目錄賦予nobody:nobody的可訪問許可權

4.2 如果出現錯誤:/ganglia無法訪問,但同時,httpd server可以正常訪問,則說明是/ganglia站點的訪問許可權或相關目錄的許可權配置有問題

  • 可能原因1:/etc/httpd/conf.d/ganglia.conf配置檔案未修改正確

    註釋掉其他內容,新增“Allow from all”

  • 可能原因2:/var/www/html/ganglia目錄沒有賦予正確的訪問許可權

chown -R apache:apache /var/www/html/ganglia 
chmod -R 755 /var/www/html/ganglia