共計 4331 個字符,預計需要花費 11 分鐘才能閱讀完成。
今天就跟大家聊聊有關如何分析 Ganglia 本質及 SparkOnGanglia 的配置,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
前言
Ganglia 是 UC Berkeley 發起的一個開源監視項目,設計用于測量數以千計的節點。每臺計算機都運行一個收集和發送度量數據(如處理器速度、內存使用量等)的名為 gmond 的守護進程。它將從操作系統和指定主機中收集。接收所有度量數據的主機可以顯示這些數據并且可以將這些數據的精簡表單傳遞到層次結構中。正因為有這種層次結構模式,才使得 Ganglia 可以實現良好的擴展。gmond 帶來的系統負載非常少,這使得它成為在集群中各臺計算機上運行的一段代碼,而不會影響用戶性能。
一 Ganglia 組件
Ganglia 監控套件包括三個主要部分:gmond,gmetad,和網頁接口,通常被稱為 ganglia-web。
Gmond : 是一個守護進程,他運行在每一個需要監測的節點上,收集監測統計,發送和接受在同一個組播或單播通道上的統計信息 如果他是一個發送者 (mute=no) 他會收集基本指標,比如系統負載(load_one),CPU 利用率。他同時也會發送用戶通過添加 C /Python 模塊來自定義的指標。如果他是一個接收者(deaf=no)他會聚合所有從別的主機上發來的指標,并把它們都保存在內存緩沖區中。
Gmetad: 也是一個守護進程,他定期檢查 gmonds,從那里拉取數據,并將他們的指標存儲在 RRD 存儲引擎中。他可以查詢多個集群并聚合指標。他也被用于生成用戶界面的 web 前端。
Ganglia-web : 顧名思義,他應該安裝在有 gmetad 運行的機器上,以便讀取 RRD 文件。集群是主機和度量數據的邏輯分組,比如數據庫服務器,網頁服務器,生產,測試,QA 等,他們都是完全分開的,你需要為每個集群運行單獨的 gmond 實例。
一般來說集群中每個節點需要一個接收的 gmond,每個網站需要一個 gmetad。
二 安裝依賴
注:建議全程使用超級用戶安裝, 本例安裝環境 centos6.6
1.#yum install –y gcc gcc-c++ libpng freetype zlib libdbi apr* libxml2-devel pkg-config glib pixman pango pango-devel freetye-devel fontconfig cairo cairo-devel libart_lgpl libart_lgpl-devel pcre* rrdtool*
三 安裝 expat 依賴
1. #cd ~
2.#wget http://jaist.dl.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz
3.#tar -xf expat-2.1.0.tar.gz cd expat-2.1.0 ./configure –prefix=/usr/local/expat make make install cd ..
對于 64 位操作系統,需要手動的拷貝下動態鏈接庫到 lib64 下
1.#mkdir /usr/local/expat/lib64 cp -a /usr/local/expat/lib/* /usr/local/expat/lib64/
四 安裝 confuse
1.#wget http://ftp.twaren.net/Unix/NonGNU//confuse/confuse-2.7.tar.gz
2.#tar -xf confuse-2.7.tar.gz cd confuse-2.7 ./configure CFLAGS=-fPIC –disable-nls –prefix=/usr/local/confuse make make install cd ..
64bit 機器需要拷貝動態鏈接庫:
1.#mkdir -p /usr/local/confuse/lib64 cp -a -f /usr/local/confuse/lib/* /usr/local/confuse/lib64/
五 安裝 ganglia
1.#wget http://jaist.dl.sourceforge.net/project/ganglia/ganglia%20monitoring%20core/3.6.0/ganglia-3.6.0.tar.gz
2.#tar -xf ganglia-3.6.0.tar.gz cd ganglia-3.6.0 ./configure –with-gmetad –enable-gexec –with-libconfuse=/usr/local/confuse –with-libexpat=/usr/local/expat –prefix=/usr/local/ganglia –sysconfdir=/etc/ganglia make make install cd ..
六 服務端配置。
1.#mkdir -p /var/lib/ganglia/rrds mkdir -p /var/lib/ganglia/dwoo chown -R root:root /var/lib/ganglia
修改 /etc/ganglia/gmetad.conf 文件
1.data_source glo master(master 映射要監控的主機 Ip, 在本例中只監控一臺機器即 master。如非必要不用填端口,默認 8649,
這里的 glo 表示的是集群的名稱,后面的內容是這個集群中所包含的主機信息,也就是要監控的主機。)
2.setuid_username root
添加自啟動腳本
1.#cp -f ganglia-3.6.0/gmetad/gmetad.init /etc/init.d/gmetad cp -f /usr/local/ganglia/sbin/gmetad /usr/sbin/gmetad chkconfig –add gmetad
啟動 gmetad 服務
1.#service gmetad start
看見 Starting GANGLIA gmetad: [OK]就代表運行正常了。通過 telnet localhost 8651 驗證 gmetad 是否正常
七 客戶端配置(gmond 節點)
本機安裝如下:
1.#cp -f ganglia-3.6.0/gmond/gmond.init /etc/init.d/gmond cp -f /usr/local/ganglia/sbin/gmond /usr/sbin/gmond chkconfig –add gmond gmond –default_config /etc/ganglia/gmond.conf
對于生成的默認配置文件 /etc/ganglia/gmond.conf 需要做適當的修改
globals {
user = root /* 運行 Ganglia 的用戶 */
host_dmax = 120 /*secs */
send_metadata_interval = 15 /* 發送數據的時間間隔 */
}
cluster {
name = glo /* 集群名稱 */
owner = root /* 運行 Ganglia 的用戶 */
}
udp_send_channel {
# mcast_join = 239.2.11.71 /* 注釋掉組播 */
host = 192.168.1.108/* 發送給安裝 gmetad 的機器 */
}
udp_recv_channel {#接受 UDP 包配置
# mcast_join = 239.2.11.71
# bind = 239.2.11.71
}
其中 name 是將要在服務端進行的分組,是服務端的數據源。接下來開啟服務
1.#service gmond start
看見 Starting GANGLIA gmetad: [OK]代表啟動成功。如果有失敗,可以講 gmond.conf 中的 debug 從 0 改為 100,看更多的日志,然后進行排查。
八 服務端的 WEB 配置
PHP 程序需要依賴 Apache 來運行,因此需要安裝如下依賴
1.# yum -y install php httpd
2.# service httpd start // 啟動 httpd 服務
九 安裝 ganglia web
1.#cd /root
2.#wget http://jaist.dl.sourceforge.net/project/ganglia/ganglia-web/3.5.10/ganglia-web-3.5.10.tar.gz
3.#tar -xf ganglia-web-3.5.10.tar.gz cd ganglia-web-3.5.10 make install cd ..
這樣 在 /var/www/html/ 下 生成了 ganglia 目錄
注:
Ganglia 訪問失敗:
There was an error collecting ganglia data (127.0.0.1:8652): fsockopen error: Permission denied
解決:
需要關閉 selinux:vi /etc/selinux/config,把 SELINUX=enforcing 改成 SELINUX=disable;需要重啟機器。
可以使用命令 setenforce 0 來關閉 selinux 而不需要重啟,刷新頁面,即可訪問。但此方法只是一權宜之計。要想永久修改 selinux 設置,還是要使用第一種方法。
重啟 httpd 服務器即可看到效果
1.#service httpd restart
使用 http://master/ganglia 查看對應的 ganglia 信息。(注:master 為運行 gmetad 的主機的 hostname)
十 SparkOnGanglia 中配置(前提為編譯好帶有 ganglia 組件的 SPARK)
(本例 spark 版本 1.5.1)
在 $SPARK_HOME/conf/metrics.properties 添加
*.sink.ganglia. >
*.sink.ganglia.host=master
*.sink.ganglia.port=8649
*.sink.ganglia.period=2
*.sink.ganglia.unit=seconds
*.sink.ganglia.ttl=1
*.sink.ganglia.mode=unicast
然后在 ganglia web 中查看 Metric 項
看完上述內容,你們對如何分析 Ganglia 本質及 SparkOnGanglia 的配置有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。